Импорт файла JSON в Postgresql 11 в Windows 10 - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть файл JSON, C:\sensors\201802091904.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.Я хотел бы загрузить значение свойства Data в тип столбца JSON.Если возможно, я бы хотел загрузить мета-свойства, такие как EventId и Timestamp, в их собственные столбцы, но я могу это выяснить позже.

Я нашел этот примерно это не дало результатов, к которым мы стремимся.Весь кусок JSON заканчивается в одном поле.Нам нужен каждый объект JSON {"Data": " ** collection of property-value pairs ** }} ", "EventId": "", "Timestamp": ""}, вставленный в его собственную строку.

Вот самая успешная попытка на данный момент:

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

Как загрузить файл JSON в PostgreSQL 11 в Windows 10?

1 Ответ

0 голосов
/ 10 февраля 2019

Если вы успешно последовали примеру, вы в 1 шаге от расширения массива jsonb до нескольких простых jsonb:

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