我的公司每月都会获得一组包含银行帐户信息的CSV文件,我需要将其导入数据库.其中一些文件可能非常大.例如,一个是大约33MB和大约65,000行.
现在我有一个symfony/Doctrine应用程序(PHP),它读取这些CSV文件并将它们导入数据库.我的数据库有大约35个不同的表,在导入过程中,我将这些行拆分为组成对象并将它们插入到数据库中.这一切都很漂亮,除了它很慢(每行大约需要四分之一秒)并且它使用了大量的内存.
内存使用非常糟糕,我必须拆分我的CSV文件.一个20,000行的文件几乎没有进入.当它接近结束时,我的内存使用率为95%.导入该65,000行文件根本不可能.
我发现symfony是构建应用程序的特殊框架,我通常不会考虑使用其他任何东西,但在这种情况下,我愿意以性能的名义将所有的先入之见抛到窗外.我没有承诺任何特定的语言,DBMS或任何东西.
Stack Overflow不喜欢主观问题,因此我将尽量使其成为非主观的:对于那些不仅仅有意见但有经验导入大型CSV文件的人,您使用了哪些工具/实践过去那已经成功了吗?
例如,您是否只使用Django的ORM/OOP并且您没有遇到任何问题?或者您是否将整个CSV文件读入内存并准备一些大量的INSERT声明?
同样,我不仅仅是一个意见,而是一些过去实际上对你有用的东西.
编辑:我不只是将85列CSV电子表格导入一个85列数据库表.我正在将数据规范化并将其放入几十个不同的表中.出于这个原因,我不能只使用LOAD DATA INFILE(我正在使用MySQL)或任何其他只读取CSV文件的DBMS功能.
此外,我不能使用任何Microsoft特定的解决方案.
AT&T WP7手机被锁定到第三方应用程序.这是否意味着在开发过程中我将无法将我的应用程序从Visual Studio部署到设备?
在PostgreSQL 9 + PostGIS 1.5中,有没有办法创建"通用"GEOGRAPHY列?我指的是一个接受POINT以及POLYGON,LINESTRING等的专栏.到目前为止,我只在互联网上看过像GEOGRAPHY(POINT,4326)这样的专栏.
如果那是不可能的,那么你将如何设计(从数据库的角度来看)一个链接到随机地理对象(点,多边形,等等)的实体?我应该为每种我想支持的地理对象创建3个,4个,5个不同的表吗?(1个POINT对象表,1个POLYGON对象表等)?
提前致谢.
罗曼
我是一个GitHub回购项目的提交者.我有一个小团队的开发人员,他们无法读取或承诺该回购.我想设置一个他们可以提交的git服务器,它是GitHub repo的克隆.当他们提交时,我会审查它们,有时会进行编辑,然后推送到GitHub仓库.
我的问题是,因为我有时会改变他们的提交,将GitHub的更改提取回我的克隆服务器的最佳工作流程是什么,这样每个人的历史都不会搞砸?
编辑:澄清,我不一定意味着将编辑提交.但我可能需要删除/拒绝一些提交的提交(并且可能会创建新的提交它们).这将如何影响我下游的开发人员?
这个真的踢我的背后.我有一个表单,由应用程序的主要形式生成并拥有,用于搜索记录.表单放在一个停靠的TableLayoutPanel中,结合了Absolute和Percentage大小的行/列,这样我的标签在数据输入和结果控件增长时保持相同的大小.我们谈论的是20个控件.
问题是,虽然TableLayoutPanel是填充停靠的,并且所有子控件也都是填充停靠的,但是当我抓住窗口边缘并拖动时,表单内的任何内容都没有调整大小.一切都在设计师中调整得很好,但在实际应用中却没有.
我确实使用了我的Google-fu,并发现了这个问题,这个问题指向了这篇MSKB文章.我创建了一个派生的FlowLayoutPanel和一个带有线程调用的派生TableLayoutPanel并将它们放入,但它仍然无法正常工作.这是发生这种情况的唯一形式,另一种形式也有一些非常深的嵌套(它使用TabControl和TableLayoutPanel来布局数据输入控件,但没有RB).
其他相关信息:
我在这里撕扯我的头发.救命!
编辑:以下是一些显示设计器和应用程序中的布局行为的请求图片:

以"嵌套"开头的控件直接来自内置面板控件,它们唯一的更改是重写OnSizeChanged()以异步调用基本方法(KB文章中的解决方法).正如我之前所说,它也不适用于内置面板.从最后两个窗口可以看出,mainLayout TLP即使停靠在设计器的窗口中也不会增长.
我希望当用户点击图像thumbnil然后图像弹出就像在这里点击这样
plesase告诉我最简单的方法,因为我是Web开发的新手.请帮帮我,我在等你的回复.
我的XML模式文件中有一组复杂的类型.基本上我有一堆"响应"对象.每个响应对象遵循相同的通用格式,但是以更具体的方式.所以,例如:
<xsd:simpleType name="Transition">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:complexType name="ResponseBlock"/>
<xsd:complexType name="Response">
<xsd:complexContent>
<xsd:sequence>
<xsd:element name="transition" type="dto:Transition"/>
<xsd:element name="data" type="dto:ResponseBlock"/>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
我希望有一个"子类",其中"transition"和"ResponseBlock"被每个类型的有效"子类"替换.即我已经通过限制/扩展派生它们并希望将它们包含在一个响应中,它本身是通过限制派生的:
<xsd:simpleType name="IDTransition">
<xsd:restriction base="dto:Transition">
<xsd:enumeration value="NEXT_PAGE"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="IDResponseBlock">
<xsd:complexContent>
<xsd:extension base="dto:ResponseBlock">
<xsd:sequence>
<xsd:element type="xsd:int" name="userID"/>
<xsd:element type="xsd:string" name="userName"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IDResponse">
<xsd:complexContent>
<xsd:restriction base="Response">
<xsd:sequence>
<xsd:element name="transition" type="dto:IDTransition"/>
<xsd:element name="data" type="dto:IDResponseBlock"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
这样,使用JAXB,我可以生成一个完全面向对象的继承结构.但它似乎没有编译; Eclipse显示错误:
derivation-ok-restriction.5.4.2:类型'IDResponse'的错误.该类型的颗粒不是对碱的颗粒的有效限制.rcase-Recurse.2:粒子之间没有完整的功能映射.
有关如何实现这一目标的任何想法?
我正在使用JSLint工具来确保我的JavaScript是"严格的".
我收到以下错误但不明白如何解决它:
The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype
Run Code Online (Sandbox Code Playgroud)
对于以下代码:
for (var i in keypairs) {
...
}
Run Code Online (Sandbox Code Playgroud)
任何人都有任何想法如何解决它的JavaScript"严格",并且不会被JSLint标记
c# ×2
javascript ×2
csv ×1
datagridview ×1
dvcs ×1
geography ×1
git ×1
github ×1
html ×1
import ×1
jaxb ×1
jquery ×1
jslint ×1
mouseevent ×1
phpunit ×1
postgis ×1
postgresql ×1
restriction ×1
winforms ×1
xml ×1
xsd ×1