Extraction de données non tabulaires

ETL et ELT en Python

Jake Roach

Data Engineer

Extraction de données non tabulaires

Pipeline ETL avec le composant d'extraction en surbrillance.

ETL et ELT en Python

Types de données non tabulaires

La plupart des données produites et consommées sont non structurées

  • Texte
  • Audio
  • Image
  • Vidéo
  • Spatiales
  • IdO

Sources de données non structurées subissant une transformation.

1 https://mitsloan.mit.edu/ideas-made-to-matter/tapping-power-unstructured-data
ETL et ELT en Python

Travailler avec des API et des données JSON

API (Application Programming Interface)

  • Logiciel au-dessus des sources de données
  • Évite l'interaction directe avec la base de données

$$

Ingénieur·e de données utilisant une API pour interagir avec une base de données.

JSON (JavaScript Object Notation)

  • Paires clé-valeur
  • Aucun schéma fixe
  • Rappelle les dictionnaires
{
    "key": "value",
    ...
    "open": 0.121875
}
ETL et ELT en Python

Lire des fichiers JSON avec pandas

{
    "timestamps": [863703000, 863789400, ...],
    "open": [0.121875, 0.098438, ...],
    "close": [...],
    "volume": [...]
}

Utilisez la fonction .read_json()

# Lire un fichier JSON du format ci-dessus
raw_stock_data = pd.read_json("raw_stock_data.json", orient="columns")
1 https://pandas.pydata.org/docs/reference/api/pandas.read_json.html
ETL et ELT en Python

Données JSON imbriquées ou non structurées

Les données ne sont pas toujours prêtes pour un DataFrame

  • Objets imbriqués
  • « Schéma » variable
{
    "863703000": {
        "volume": 1443120000,
        "price": {
            "close": 0.09791,
            "open": 0.12187
        }
    }, 
    "863789400": {
        ...
    }, ...
}
ETL et ELT en Python

Lire des fichiers JSON avec json

import json

with open("raw_stock_data.json", "r") as file:
    # Charger le fichier dans un dictionnaire
    raw_stock_data = json.load(file)

# Confirmer le type de la variable raw_stock_data
print(type(raw_stock_data))
<class 'dict'>
ETL et ELT en Python

Passons à la pratique !

ETL et ELT en Python

Preparing Video For Download...