Extraction de données depuis des sources structurées

ETL et ELT en Python

Jake Roach

Data Engineer

Systèmes sources

Dans ce cours :

  • Fichiers CSV
  • Fichiers Parquet
  • Fichiers JSON
  • Bases de données SQL

Les données proviennent aussi de :

  • API
  • Lacs de données
  • Entrepôts de données
  • Web scraping
  • ... et bien plus encore !
ETL et ELT en Python

Lecture de fichiers Parquet

Fichiers Parquet :

  • Format de fichier open source, orienté colonnes, conçu pour stocker et lire efficacement les champs
  • Similaire à l’utilisation de fichiers CSV
import pandas as pd

# Read the parquet file into memory
raw_stock_data = pd.read_parquet("raw_stock_data.parquet", engine="fastparquet")
1 https://www.databricks.com/glossary/what-is-parquet
ETL et ELT en Python

Connexion aux bases SQL

  • Les données peuvent être extraites de bases SQL dans un DataFrame pandas
  • Nécessite un URI de connexion pour créer un moteur et se connecter à la base
import sqlalchemy
import pandas as pd

# Connection URI: schema_identifier://username:password@host:port/db
connection_uri = "postgresql+psycopg2://repl:password@localhost:5432/market"
db_engine = sqlalchemy.create_engine(connection_uri)
# Query the SQL database
raw_stock_data = pd.read_sql("SELECT * FROM raw_stock_data LIMIT 10", db_engine)
ETL et ELT en Python

Modularité

Séparer la logique en fonctions

  • Améliore la lisibilité du pipeline
  • Suit le principe « ne vous répétez pas »
  • Accélère le dépannage
def extract_from_sql(connection_uri, query):
    # Create an engine, query data and return DataFrame
    db_engine = sqlalchemy.create_engine(connection_uri)
    return pd.read_sql(query, db_engine)

extract_from_sql("postgresql+psycopg2://.../market", "SELECT ... LIMIT 10;")
ETL et ELT en Python

Passons à la pratique !

ETL et ELT en Python

Preparing Video For Download...