将 .json 文件数据加载到 Postgres for Rails 5 API

Posted

技术标签:

【中文标题】将 .json 文件数据加载到 Postgres for Rails 5 API【英文标题】:Load .json file data to Postgres for Rails 5 API 【发布时间】:2017-03-10 02:58:20 【问题描述】:

最终目标是将 160 万条记录摄取到 Postgres 中,以便在我的 Rails 5 API 应用程序中发现。我有 45 个 .json 文件,每个文件都包含一个 json 对象数组。每个文件都有 2k 到 30k 个对象。文件大小范围从 6MB 到 188MB。我尝试使用 seed.db 文件并以这种方式读取文件,但内存利用率太高。然后我使用 yajl gem 将文件视为流,但在较大的文件中,一段时间后我会收到网络错误,因为写入每个对象的过程需要长达一个小时。

有没有一种更有效的方式,在内存方面,通过 seed.db 或 Rails 本身的其他机制来处理大文件?

是否有专门用于处理将带有对象数组的 json 文件摄取到 Postgres 中的工具?我看到了 pgfutter,但我无法在我的 Mac 上初始化该工具。

【问题讨论】:

是的,您可以使用seeds.rb,或迁移,或几种不同的方式。您能否提供更多关于您的 json 数据文件的结构以及它们与您应用中的模型之间的关系的详细信息? 【参考方案1】:

通过使用 Sqlize 将 json 文件转换为 SQL 查询解决了这个问题。从那里很容易。

【讨论】:

以上是关于将 .json 文件数据加载到 Postgres for Rails 5 API的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pandas .to_sql 将 JSON 列写入 Postgres

如何将 postgres 数据库转换为 JSON 文件?

无法使用 JDBCSinkConnector 将数据从 Kafka 主题加载到 Postgres

将数据从 postgres 传输到 json 的问题

将大量数据从 DataFlow 加载到外部 postgres 数据库的最佳方法是啥?

Confluent Kafka Sink Connector 未将数据加载到 Postgres 表