Зберігання даних JSON у Postgres

Вступ до NoSQL

Jake Roach

Data Engineer

INSERT INTO та COPY JSON‑записів у Postgres

INSERT INTO students (school, age, address, parent_meta) VALUES (
    'GP',
    18,
    'U',
    '{\"guardian\": \"mother\", ...  \"P2\": \"at_home\"}}'
);

Заповніть таблицю вмістом файла за допомогою COPY ... FROM

COPY students FROM 'students.csv' DELIMITER ',' CSV, HEADER;
Вступ до NoSQL

Перетворення табличних даних у формат JSON

Таблиця з табличними даними та таблиця, що показує першу у форматі JSON після застосування функції row_to_json.

Функція row_to_json

  • Перетворює рядок на JSON
  • Використовуйте з функцією row() і передайте назви стовпців
SELECT
    row_to_json(row(
        school,
        age,
        address
    ))
FROM students;
Вступ до NoSQL

Витяг ключів із JSON

Дві таблиці: одна з одним стовпцем типу Postgres JSON і ще одна з результатом функції json_object_keys.

Функція json_object_keys

  • Витягує ключі зі стовпця типу JSON
SELECT
    json_object_keys(parent_meta)
FROM students;
  • Поєднайте з DISTINCT, щоб знайти всі унікальні ключі
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM students;
Вступ до NoSQL

Підсумок

SELECT
    row_to_json(row(
        <column-1>,
        <column-2>,
        ...
    ))
FROM <table-name>;
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM <table-name>;
Вступ до NoSQL

Давайте потренуємось!

Вступ до NoSQL

Preparing Video For Download...