固定宽度数据到postgres

时间:2014-01-01 21:01:25

标签: postgresql upload load fixed-width

寻找将FIXED-Width数据加载到postgres表中的好方法。我这样做是sas和python而不是postgres。我想没有一种原生方法。这些文件是几GB。我看到的一种方法由于某种原因(可能是内存问题)无法在我的文件上工作。在那里,您将加载为一个大型列,然后解析为表。我可以使用psycopy2但是因为内存问题而不是。任何有效的想法或工具。 pgloader是否运行良好或是否有本机方法?

http://www.postgresonline.com/journal/index.php?/archives/157-Import-fixed-width-data-into-PostgreSQL-with-just-PSQL.html

由于

2 个答案:

答案 0 :(得分:4)

在PostgreSQL中没有方便的内置方法来摄取固定宽度的表格数据。我建议使用像Pentaho Kettle或Talend Studio这样的工具来进行数据加载,因为它们擅长使用许多不同的文件格式。我不记得pg_bulkload是否支持固定宽度,但怀疑不是。

或者,您通常可以使用Python和psycopg2模块编写一个简单的脚本,逐行加载固定宽度数据并将其发送到PostgreSQL。 psycopg2通过COPYcopy_from命令的支持使得效率大大提高。我没有找到一个方便的固定宽度文件阅读器的Python快速搜索,但我敢肯定他们在那里。你可以使用你喜欢的任何语言 - Perl的DBIDBD::Pg也可以这样做,并且Perl有数百万个固定宽度的文件阅读器模块。

答案 1 :(得分:0)

Python Pandas 库有一个很好用的函数 pandas.read_fwf。

可以使用python读取数据,然后写入Postgres数据库。

相关问题