Extragerea datelor din surse structurate

ETL și ELT în Python

Jake Roach

Data Engineer

Sisteme sursă

În acest curs:

  • Fișiere CSV
  • Fișiere Parquet
  • Fișiere JSON
  • Baze de date SQL

Datele mai provin și din:

  • API-uri
  • Data lakes
  • Depozite de date
  • Web scraping
  • ... și multe altele!
ETL și ELT în Python

Citirea fișierelor parquet

Fișiere Parquet:

  • Format open source, orientat pe coloane, conceput pentru stocarea și extragerea eficientă a câmpurilor
  • Similar cu lucrul cu fișiere 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 și ELT în Python

Conectarea la baze de date SQL

  • Datele pot fi extrase din baze de date SQL într-un DataFrame pandas
  • Necesită un URI de conexiune pentru a crea un engine și a te conecta la baza de date
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 și ELT în Python

Modularitate

Separarea logicii în funcții

  • Crește lizibilitatea pipeline-ului
  • Respectă principiul „nu te repeta"
  • Accelerează depanarea
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 și ELT în Python

Hai să exersăm!

ETL și ELT în Python

Preparing Video For Download...