JSON-gegevens opslaan in Postgres

Introductie tot NoSQL

Jake Roach

Data Engineer

JSON-records invoegen en kopiëren naar Postgres met INSERT INTO en COPY

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

Vul een tabel met een bestand via COPY ... FROM

COPY students FROM 'students.csv' DELIMITER ',' CSV, HEADER;
Introductie tot NoSQL

Tabeldata omzetten naar JSON

Een tabel met tabelgegevens en een tabel die de eerste tabel in JSON toont na het gebruik van de functie row_to_json.

Functie row_to_json

  • Zet een rij om naar JSON
  • Gebruik met de functie row() en geef kolomnamen door
SELECT
    row_to_json(row(
        school,
        age,
        address
    ))
FROM students;
Introductie tot NoSQL

Sleutels uit JSON halen

Twee tabellen: één met een enkele kolom van het Postgres-type JSON, en één met de output van de functie json_object_keys.

Functie json_object_keys

  • Haalt sleutels op uit een kolom van het type JSON
SELECT
    json_object_keys(parent_meta)
FROM students;
  • Combineer met DISTINCT om alle unieke sleutels te vinden
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM students;
Introductie tot NoSQL

Samenvatting

SELECT
    row_to_json(row(
        <column-1>,
        <column-2>,
        ...
    ))
FROM <table-name>;
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM <table-name>;
Introductie tot NoSQL

Laten we oefenen!

Introductie tot NoSQL

Preparing Video For Download...