【发布时间】:2016-12-23 11:39:41
【问题描述】:
我有 51 个大型 HDF5 表,每个表都有足够的(行为良好的)数据,我什至无法将其中一个完全加载到内存中。为了让我的团队其他成员的生活更轻松,我需要将这些数据传输到 PostgreSQL 数据库中(并删除 HDF5 表)。然而,这说起来容易做起来难,主要是因为这些障碍:
-
pandas.read_hdf()仍然有一个不稳定的chunksizekwag:SO Question; Open github issue -
pandas.DataFrame.to_sql()非常缓慢且效率低下:Open github issue(请参阅问题页面底部的我的帖子) - PostgreSQL 没有本地或第三方数据包装器来处理 HDF5:PostgreSQL wiki article
- HDF5 ODBC 驱动程序仍处于初期阶段:HDF5 ODBC blog
基本上从 HDF5 -> Pandas -> PostgreSQL 开始,需要通过大量的猴子补丁来克服障碍 1 和 2。而且似乎没有直接的方法可以直接从 HDF5 -> PostgreSQL 出发。除非我错过了什么。
也许你们中的一个优秀用户可以暗示我缺少的东西,你创建的一些拼凑以克服有助于我的事业的类似问题,或者任何建议或建议......
【问题讨论】:
-
请问您想从 HDF5 迁移到 PostgreSQL 的原因是否是 HDF5 不支持 PostgreSQL 支持的复杂查询?根据我的经验,HDF5 在简单查询(例如,查询时间序列数据的时间范围的数据)方面比 PostgreSQL 快得多。
-
没有。 PostgreSQL 是我当时工作的公司的存储平台。他们有围绕从 PostgreSQL 读取而构建的工具,并且不想重新调整他们的流程。我使用 HDF5 的唯一原因是速度。但我需要将数据传输到 PostgreSQL。
标签: postgresql pandas hdf5 large-data