Postgresql 将固定宽度的数据放入postgres

Postgresql 将固定宽度的数据放入postgres,postgresql,upload,load,fixed-width,Postgresql,Upload,Load,Fixed Width,正在寻找将固定宽度数据加载到postgres表中的好方法。我这样做是因为sas和python而不是postgres。我想没有本地方法。这些文件只有几GB。我看到的一种方法由于某些原因(可能是内存问题)在我的文件上不起作用。在这里,您将作为一个大列加载,然后解析到表中。我可以使用psycopy2,但由于内存问题,我宁愿不使用。任何有效的想法或工具。pgloader是否工作正常,或者是否存在本机方法 感谢在PostgreSQL中没有方便的内置方法来摄取固定宽度的表格数据。我建议使用Pentaho

正在寻找将固定宽度数据加载到postgres表中的好方法。我这样做是因为sas和python而不是postgres。我想没有本地方法。这些文件只有几GB。我看到的一种方法由于某些原因(可能是内存问题)在我的文件上不起作用。在这里,您将作为一个大列加载,然后解析到表中。我可以使用psycopy2,但由于内存问题,我宁愿不使用。任何有效的想法或工具。pgloader是否工作正常,或者是否存在本机方法


感谢

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


或者,您通常可以使用Python和
psycopg2
模块编写一个简单的脚本,逐行加载固定宽度的数据并将其发送到PostgreSQL
psycopg2
通过
COPY\u from
COPY
命令的支持大大提高了效率。我没有在快速搜索中找到一个方便的Python固定宽度文件读取器,但我确信它们已经存在了。您可以使用任何您喜欢的语言—Perl的
DBI
DBD::Pg
也可以,而且Perl有数百万个固定宽度的文件读取器模块。

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


或者,您通常可以使用Python和
psycopg2
模块编写一个简单的脚本,逐行加载固定宽度的数据并将其发送到PostgreSQL
psycopg2
通过
COPY\u from
COPY
命令的支持大大提高了效率。我没有在快速搜索中找到一个方便的Python固定宽度文件读取器,但我确信它们已经存在了。您可以使用任何您喜欢的语言—Perl的
DBI
DBD::Pg
也可以使用,而且Perl有数百万个固定宽度的文件读取器模块。

Python Pandas库有一个功能Pandas.read_fwf,非常有效


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

python Pandas库有一个函数Pandas.read\u fwf,非常有用


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

在python中,设计用于将异构数据解包到基于格式字符串的元组中,因此它可以用于读取固定宽度的文本文件。@furins这与psycopg2和
copy_from
结合使用非常方便!我使用结构和迭代器在python的低内存环境(共享主机上的django web应用程序)中批量读取大型、遗留的固定文本转储,设计用于根据格式字符串将异构数据解包到元组,因此它可用于读取固定宽度的文本文件。@furins,与psycopg2和
复制\u结合使用非常方便!我使用结构和迭代器在低内存环境(共享主机上的django web应用程序)中批量读取大型、遗留的固定文本转储