Extrakce dat ze strukturovaných zdrojů

ETL a ELT v Pythonu

Jake Roach

Data Engineer

Zdrojové systémy

V tomto kurzu:

  • Soubory CSV
  • Soubory Parquet
  • Soubory JSON
  • Databáze SQL

Data pocházejí také z:

  • API
  • Datová jezera
  • Datové sklady
  • Web scraping
  • ... a mnoho dalšího!
ETL a ELT v Pythonu

Čtení souborů Parquet

Soubory Parquet:

  • Otevřený sloupcově orientovaný formát navržený pro efektivní ukládání a načítání dat
  • Práce podobná jako u souborů 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 a ELT v Pythonu

Připojení k databázím SQL

  • Data lze načíst z databází SQL do pandas DataFrame
  • Vyžaduje connection URI pro vytvoření engine a připojení k databázi
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 a ELT v Pythonu

Modularita

Oddělení logiky do funkcí

  • Zvyšuje čitelnost pipeline
  • Dodržuje princip „neopakuj se"
  • Usnadňuje řešení problémů
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 a ELT v Pythonu

Pojďme procvičovat!

ETL a ELT v Pythonu

Preparing Video For Download...