我可能有点过头了,但是提交这个查询,希望有人有一些经验,将大型(11.2GB)选项卡分隔的文本文件(2.2GB tar.gz文件)导入到MySQL 5.5.41或PostgreSQL 9.3.6中。由于这是空间数据(纬度、经度和海拔),因此需要对这些字段进行双精度测量。
我在Ubuntu14.04上安装了MySQL和PostgreSQL,使用phpMyAdmin和phpPGAdmin与服务器交互。然而,我意识到命令行的交互可能会更好。
我读过一点东西,似乎有一种方法可以分割MySQL (SQLDumpSplitter2 - http://www.rusiczki.net/2007/01/24/sql-dump-file-splitter/)的数据。
任何建议或备选方案都非常感谢。
谢谢保罗
发布于 2015-03-17 18:49:43
对于PostgreSQL,我建议使用pgloader。
pgloader将不能导入的行保留在单独的文本文件中,因此您可以查看错误所在,修复错误,并完成数据导入。当COPY遇到一个它没有预料到的行时,它就会崩溃,对于非常大的文件来说,这种情况可能会发生好几次。
pgloader也可以设置为并行加载数据,但我不确定如果您只是加载一个表,它会有多大的帮助。
对于MySQL,标准LOAD DATA LOCAL INFILE的速度与您将要获得的速度一样快(据我所知)。它为无法导入的每一行显示一个warning,因此您可以回头查看该数据。
除此之外,11.2 GB也不算太糟。确保删除要导入的表中的所有现有索引,然后重新创建索引。
我已经将大小相当的文本文件导入到这两个数据库中,没有问题。加载数据和创建索引可能需要几个小时,所以只需一夜之间就可以了。
https://dba.stackexchange.com/questions/94120
复制相似问题