Przechowywanie danych JSON w Postgres

Wprowadzenie do NoSQL

Jake Roach

Data Engineer

INSERT INTO i COPY – dodawanie rekordów JSON do Postgres

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

Wypełnianie tabeli zawartością pliku za pomocą COPY ... FROM

COPY students FROM 'students.csv' DELIMITER ',' CSV, HEADER;
Wprowadzenie do NoSQL

Konwersja danych tabelarycznych do formatu JSON

Tabela z danymi tabelarycznymi oraz tabela przedstawiająca tę samą tabelę w formacie JSON po zastosowaniu funkcji row_to_json.

row_to_json – funkcja

  • Konwertuje wiersz do formatu JSON
  • Używana z funkcją row() – przekazuje nazwy kolumn
SELECT
    row_to_json(row(
        school,
        age,
        address
    ))
FROM students;
Wprowadzenie do NoSQL

Wyodrębnianie kluczy z JSON

Dwie tabele: jedna z pojedynczą kolumną typu JSON w Postgres, druga zawierająca wynik funkcji json_object_keys.

json_object_keys – funkcja

  • Wyodrębnia klucze z kolumny typu JSON
SELECT
    json_object_keys(parent_meta)
FROM students;
  • W połączeniu z DISTINCT zwraca wszystkie unikalne klucze
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM students;
Wprowadzenie do NoSQL

Podsumowanie

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

Czas na ćwiczenia!

Wprowadzenie do NoSQL

Preparing Video For Download...