Daten aus strukturierten Quellen extrahieren

ETL und ELT in Python

Jake Roach

Data Engineer

Quellsysteme

In diesem Kurs:

  • CSV-Dateien
  • Parquet-Dateien
  • JSON-Dateien
  • SQL-Datenbanken

Datenquellen sind außerdem:

  • APIs
  • Data Lakes
  • Data Warehouses
  • Web Scraping
  • ... und viele mehr!
ETL und ELT in Python

Parquet-Dateien einlesen

Parquet-Dateien:

  • Open Source, spaltenorientiertes Dateiformat für effiziente Speicherung und Abfrage von Feldern
  • Ähnlich wie die Arbeit mit CSV-Dateien
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 und ELT in Python

Verbindung zu SQL-Datenbanken

  • Daten lassen sich aus SQL-Datenbanken in ein pandas-DataFrame laden
  • Erfordert eine Connection-URI zum Erstellen einer Engine und die Verbindung zur Datenbank
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 und ELT in Python

Modularität

Logik in Funktionen kapseln

  • Erhöht die Lesbarkeit in Pipelines
  • Folgt dem Prinzip „don't repeat yourself"
  • Beschleunigt die Fehlersuche
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 und ELT in Python

Lass uns üben!

ETL und ELT in Python

Preparing Video For Download...