Extraire des données non tabulaires

ETL et ELT en Python

Jake Roach

Data Engineer

Extraire des données non tabulaires

Pipeline ETL avec le composant d'extraction mis en évidence.

ETL et ELT en Python

Types de données non tabulaires

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

  • Texte
  • Audio
  • Image
  • Vidéo
  • Spatial
  • IoT

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

Utiliser des APIs et des données JSON

API (Application Programming Interface)

  • Logiciel au-dessus des sources de données
  • Évite l'accès direct à la base de données

$$

Data engineer utilisant une API pour interagir avec une base de données.

JSON (JavaScript Object Notation)

  • Paires clé-valeur
  • Pas de schéma fixe
  • Aspect similaire aux 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 au 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...