在 Windows 10 上将 JSON 文件导入 Postgresql 11

Importing a JSON file into Postgresql 11 on Windows 10

我有一个 JSON 文件,C:\sensors1802091904.json。此数据文件与 PostgreSQL 安装位于同一本地驱动器上。

这是 JSON 的示例:

[
{"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""},
{"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""},
{"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""}
]

Data 属性 值是一个 JSON 对象,包含一个观察值以及有关传感器的数据。

我想将文件的内容加载到 PostgreSQL 11 table。我想将数据 属性 值加载到 JSON 列类型中。如果可能的话,我想将 EventIdTimestamp 之类的元属性加载到它们自己的列中,但我可以稍后再弄清楚。

我找到了 示例,但它没有产生我们寻求的结果。 JSON 的整个块最终都在一个字段中。我们需要将每个 JSON 对象 {"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""} 插入到它自己的行中。

这是迄今为止最成功的尝试:

XXX =# \set content `type C:\sensors1802091904.json`
XXX =# create table t2 ( j jsonb );
XXX =# insert into t2 values (:'content');
XXX =# select * from t2;

如何在 Windows 10 上将 JSON 文件加载到 PostgreSQL 11 中?

如果您已成功遵循该示例,那么您距离将 jsonb 数组扩展为几个简单的 jsonb 仅一步之遥:

CREATE TABLE T (j jsonb);
INSERT INTO T SELECT jsonb_array_elements(j)::jsonb FROM T2