Gegevens ophalen uit gestructureerde bronnen

ETL en ELT in Python

Jake Roach

Data Engineer

Bronssystemen

In deze course:

  • CSV-bestanden
  • Parquet-bestanden
  • JSON-bestanden
  • SQL-databases

Data komt ook uit:

  • API's
  • Data lakes
  • Data warehouses
  • Webscraping
  • ... en nog veel meer!
ETL en ELT in Python

Parquet-bestanden lezen

Parquet-bestanden:

  • Open-source, kolomgeoriënteerd bestandsformaat voor efficiënt opslaan en ophalen
  • Lijkt op werken met CSV-bestanden
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 en ELT in Python

Verbinden met SQL-databases

  • Data kun je uit SQL-databases in een pandas DataFrame laden
  • Vereist een connection URI om een engine te maken en te verbinden
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 en ELT in Python

Modulariteit

Logica opsplitsen in functies

  • Verbetert de leesbaarheid van een pipeline
  • Volgt het principe "don't repeat yourself"
  • Versnelt troubleshooting
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 en ELT in Python

Laten we oefenen!

ETL en ELT in Python

Preparing Video For Download...