JSON-Daten in Postgres verstehen

Einführung in NoSQL

Jake Roach

Data Engineer

JSON und JSONB in Postgres

{
    'guardian': 'mother',
    'status': 'A',
    'educations': [4, 4],
    'jobs': {
        'P1': 'teacher',
        'P2': 'at_home'
    }
}
CREATE TABLE students
    <column-name> JSON,
    <column-bame> JSONB
;

JSON

  • Daten im JSON-Format speichern
  • Schlüssel-Wert-Paare, Arrays, verschachtelte Objekte

$$

JSONB

  • Daten werden binär gespeichert
  • Ähnlich wie BSON in MongoDB
  • Effizientere Speicherung und Abfrage
  • Zusätzliche Indizes möglich
Einführung in NoSQL

Warum halbstrukturierte Daten in Postgres?

Eine Postgres-Tabelle mit einer Spalte vom Typ JSON.

Einführung in NoSQL

JSON-Daten mit Postgres abfragen

SELECT
    address,
    famsize,
    ...
FROM students
[WHERE | GROUP BY | ORDER BY];

$$

  • row_to_json, json_to_record
  • Operatoren ->, ->>, #>, #>>
  • json_extract_path, json_extract_path_text

Wir werden außerdem können:

  • JSON-Datensätze in eine Postgres-Tabelle einfügen
  • Tabellarisch zu JSON, JSON zu tabellarisch
  • Einzelne Werte aus JSON-Objekten extrahieren
Einführung in NoSQL

Abfragen mit sqlalchemy und pandas ausführen

import sqlalchemy
import pandas as pd
# Verbindung erstellen
db_engine = sqlalchemy.create_engine(
    "postgresql+psycopg2://<user>:<password>@<host>:5432/<database>"
)
# Abfrage schreiben
query = "SELECT * FROM table_name;"
# Abfrage ausführen, Ergebnisse anzeigen
results = pd.read_sql(query, db_engine)
Einführung in NoSQL

Lass uns üben!

Einführung in NoSQL

Preparing Video For Download...