Archiviare dati JSON in Postgres

Introduzione ai database NoSQL

Jake Roach

Data Engineer

Inserire e copiare record JSON in Postgres con INSERT INTO e COPY

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

Popola una tabella con il contenuto di un file usando COPY ... FROM

COPY students FROM 'students.csv' DELIMITER ',' CSV, HEADER;
Introduzione ai database NoSQL

Convertire dati tabellari in JSON

Una tabella con dati tabellari e una tabella che mostra la prima tabella in formato JSON dopo l'uso della funzione row_to_json.

Funzione row_to_json

  • Converte una riga in JSON
  • Usala con la funzione row() e passa i nomi delle colonne
SELECT
    row_to_json(row(
        school,
        age,
        address
    ))
FROM students;
Introduzione ai database NoSQL

Estrarre chiavi da JSON

Due tabelle: una con una singola colonna di tipo JSON di Postgres e un'altra con l'output della funzione json_object_keys.

Funzione json_object_keys

  • Estrae le chiavi da una colonna di tipo JSON
SELECT
    json_object_keys(parent_meta)
FROM students;
  • Abbinala a DISTINCT per trovare tutte le chiavi uniche
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM students;
Introduzione ai database NoSQL

Riepilogo

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

Esercitiamoci!

Introduzione ai database NoSQL

Preparing Video For Download...