Extrahera data från strukturerade källor

ETL och ELT i Python

Jake Roach

Data Engineer

Källsystem

I den här kursen:

  • CSV-filer
  • Parquet-filer
  • JSON-filer
  • SQL-databaser

Data hämtas även från:

  • API:er
  • Data lakes
  • Datalager
  • Webbskrapning
  • ... och mycket mer!
ETL och ELT i Python

Läsa in parquet-filer

Parquet-filer:

  • Öppen källkod, kolumnorienterat filformat för effektiv lagring och hämtning av fält
  • Liknar att arbeta med CSV-filer
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 och ELT i Python

Ansluta till SQL-databaser

  • Data kan hämtas från SQL-databaser till en pandas-DataFrame
  • Kräver en anslutnings-URI för att bygga en motor och ansluta till databasen
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 och ELT i Python

Modularitet

Dela upp logik i funktioner

  • Ökar läsbarheten i en pipeline
  • Följer principen "upprepa dig inte"
  • Förenklar felsökning
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 och ELT i Python

Nu kör vi en övning!

ETL och ELT i Python

Preparing Video For Download...