JSON-Daten in Postgres speichern

Einführung in NoSQL

Jake Roach

Data Engineer

JSON-Datensätze mit INSERT INTO und COPY nach Postgres laden

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

Eine Tabelle mit Dateiinhalt befüllen mit COPY ... FROM

COPY students FROM 'students.csv' DELIMITER ',' CSV, HEADER;
Einführung in NoSQL

Tabellendaten in JSON umwandeln

Eine Tabelle mit tabellarischen Daten und daneben eine Tabelle, die nach Verwendung der Funktion row_to_json die erste Tabelle im JSON-Format zeigt.

Funktion row_to_json

  • Wandelt eine Zeile in JSON um
  • Nutze sie mit row() und übergib Spaltennamen
SELECT
    row_to_json(row(
        school,
        age,
        address
    ))
FROM students;
Einführung in NoSQL

Schlüssel aus JSON extrahieren

Zwei Tabellen: eine mit einer einzelnen Spalte vom Typ Postgres JSON, und eine weitere mit der Ausgabe der Funktion json_object_keys.

Funktion json_object_keys

  • Extrahiert Schlüssel aus einer Spalte vom Typ JSON
SELECT
    json_object_keys(parent_meta)
FROM students;
  • Mit DISTINCT kombinieren, um alle eindeutigen Schlüssel zu finden
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM students;
Einführung in NoSQL

Zusammenfassung

SELECT
    row_to_json(row(
        <column-1>,
        <column-2>,
        ...
    ))
FROM <table-name>;
SELECT
    DISTINCT json_object_keys(parent_meta)
FROM <table-name>;
Einführung in NoSQL

Lass uns üben!

Einführung in NoSQL

Preparing Video For Download...