Magasins de données NoSQL non tabulaires

Introduction à NoSQL

Jake Roach

Data Engineer

Bases de données de documents

Définition : Un outil de stockage NoSQL qui conserve les données dans un format souple et semi-structuré, composé de paires clé-valeur, clé-tableau et clé-objet (semblable à JSON).

$$

$$

Logo JSON de Postgres.

{
    "title": "Python for Data Analysis",
    "price": 53.99,
    "topics": [
        "Data Science",
        "Data Analytics",
        ...
    ],
    "author": {
        "first": "William"
        ...
    }
}
Introduction à NoSQL

Interroger des données JSON avec Postgres JSON

Données JSON en surbrillance stockées dans une table Postgres.

SELECT
    books -> 'title' AS title,
    books -> 'price' AS price
FROM data_science_resources
WHERE 
    books -> 'author' ->> 'last' = 'Viafore';

Ce qui produit le résultat suivant :

Résultat d'une requête JSON Postgres.

Introduction à NoSQL

Se connecter à une base de données Postgres

import sqlalchemy

# Create a connection string, and an engine
connection_string = "postgresql+psycopg2://<user>:<password>@<host>:<port>/<database>"
db_engine = sqlalchemy.create_engine(connection_string)

Pour créer une connexion à une base Postgres :

  • Former une chaîne de connexion
  • Créer un moteur avec sqlalchemy.create_engine
  • La variable db_engine sera créée avant l'exercice
Introduction à NoSQL

Rédiger et exécuter des requêtes JSON Postgres

import pandas as pd

# Build the query
query = """
    SELECT
        books -> 'title' AS title,
        books -> 'price' AS price
    FROM data_science_resources;
"""

# Execute the query
result = pd.read_sql(query, db_engine)
print(result)

Pour écrire et exécuter une requête :

  • Construire la requête dans une chaîne
  • Transmettre query et db_engine à la fonction pd.read_sql()
  • Afficher le DataFrame obtenu
Introduction à NoSQL

Autres magasins de données NoSQL non tabulaires

Clé-valeur
{
    "name": "Jane Doe",
    "age": 25,
    "email": "[email protected]"
}

$$

Logo Redis.

Graphe

Image d'une base de données orientée graphe.

Introduction à NoSQL

Passons à la pratique !

Introduction à NoSQL

Preparing Video For Download...