Comprendre les données JSON dans Postgres

Introduction à NoSQL

Jake Roach

Data Engineer

JSON et JSONB dans Postgres

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

JSON

  • Stocke les données au format JSON
  • Paires clé‑valeur, tableaux, objets imbriqués

$$

JSONB

  • Données stockées en binaire
  • Semblable à BSON dans MongoDB
  • Stockage et lecture plus efficaces
  • Permet un indexage supplémentaire
Introduction à NoSQL

Pourquoi des données semi-structurées dans Postgres ?

Une table Postgres contenant une colonne de type JSON.

Introduction à NoSQL

Interroger des données JSON avec Postgres

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

$$

  • row_to_json, json_to_record
  • Opérateurs ->, ->>, #>, #>>
  • json_extract_path, json_extract_path_text

Nous pourrons aussi :

  • Insérer des enregistrements au format JSON dans une table Postgres
  • Tabulaire vers JSON, JSON vers tabulaire
  • Extraire des enregistrements individuels d'objets JSON
Introduction à NoSQL

Exécuter des requêtes avec sqlalchemy et pandas

import sqlalchemy
import pandas as pd
# Créer une connexion
db_engine = sqlalchemy.create_engine(
    "postgresql+psycopg2://<user>:<password>@<host>:5432/<database>"
)
# Écrire une requête
query = "SELECT * FROM table_name;"
# Exécuter la requête et afficher le résultat
results = pd.read_sql(query, db_engine)
Introduction à NoSQL

Passons à la pratique !

Introduction à NoSQL

Preparing Video For Download...