Bygga ETL- och ELT-pipelines

ETL och ELT i Python

Jake Roach

Data Engineer

Extrahera data från en CSV-fil

import pandas as pd

# Läs in CSV-filen till en DataFrame
data_frame = pd.read_csv("raw_data.csv")
# Visa de första raderna
data_frame.head()
   name         num_firms   total_income
0  Advertising     58         3892.41
1  Apparel         39         5422.69
...
49 Trucking        35         17324.36

read_csv()

  • Tar en filsökväg, returnerar en DataFrame
  • delimiter, header, engine

$$

.head()

  • Visar de första n raderna i en DataFrame
ETL och ELT i Python

Filtrera en DataFrame

   name         num_firms   total_income
0  Advertising     58         3892.41
1  Apparel         39         5422.69
...
49 Trucking        35         17324.36

         name         num_firms
      1  Apparel         39
      37 Apparel         61

# Först, efter rader
data_frame.loc[data_frame["name"] == "Apparel", :]

# Sedan, efter kolumner
data_frame.loc[:, ["name", "num_firms"]]

.loc

  • Filtrerar en DataFrame
  • : betyder "alla"
ETL och ELT i Python

Skriv en DataFrame till en CSV-fil

# Skriv en DataFrame till en .csv-fil
data_frame.to_csv("cleaned_data.csv")

.to_csv()

  • Tar en path, skapar en DataFrame från filen på den path
  • Kan ta andra parametrar för att anpassa utdata

$$

Andra alternativ, som:

.to_json(), .to_excel(), .to_sql()

ETL och ELT i Python

Köra SQL-frågor

data_warehouse.execute(  # Använd Python-klienter eller andra verktyg för att köra SQL-frågor
    """
    CREATE TABLE total_sales AS 
        SELECT
            ds,
            SUM(sales)
        FROM raw_sales_data
        GROUP BY ds;
    """
)
  • Verktyg som .execute() för att köra SQL-frågor
ETL och ELT i Python

Sätt ihop allt!

# Definiera funktionerna extract(), transform() och load()
...

def transform(data_frame, value):
    return data_frame.loc[data_frame["name"] == value, ["name", "num_firms"]]

# Extrahera först data från en .csv
extracted_data = extract(file_name="raw_data.csv")

# Transformera sedan `extracted_data`
transformed_data = transform(data_frame=extracted_data, value="Apparel")

# Ladda till sist `transformed_data`
load(data_frame=transformed_data, file_name="cleaned_data.csv")
ETL och ELT i Python

Nu kör vi en övning!

ETL och ELT i Python

Preparing Video For Download...