ETL と ELT パイプライン入門

Python で学ぶ ETL と ELT

Jake Roach

Data Engineer

$$

ビジネスインテリジェンス、機械学習、AI の図。

Python で学ぶ ETL と ELT

データパイプライン

…は、ソースからデスティネーションへデータを移動し、その途中のどこかで変換します。

$$

データパイプラインのソースとデスティネーション。

Python で学ぶ ETL と ELT

ETL

  • 抽出・変換・格納
  • 伝統的なパイプライン設計パターン
  • ソースは表形式/非表形式どちらも可
  • Python と pandas を活用

$$

$$

$$

$$

ELT

  • 抽出・格納・変換
  • より新しいパターン
  • データウェアハウスで実施
  • 主に表形式データ
Python で学ぶ ETL と ELT

Extract, transform, load (ETL)

def load(data_frame, target_table):
    # SQL へデータをロードする独自の Python ロジック
    data_frame.to_sql(name=target_table, con=POSTGRES_CONNECTION)
    print(f"Loading data to the {target_table} table")

# では、データパイプラインを実行します
extracted_data = extract(file_name="raw_data.csv")
transformed_data = transform(data_frame=extracted_data)
load(data_frame=transformed_data, target_table="cleaned_data")
Extracting data from raw_data.csv
Transforming data to remove 'null' records
Loading data to the cleaned_data table
Python で学ぶ ETL と ELT

Extract, load, transform (ELT)

...
def transform(source_table, target_table):
    data_warehouse.run_sql("""
        CREATE TABLE {target_table} AS
          SELECT
              <field-name>, <field-name>, ...
          FROM {source_table};
    """)

# ETL パイプラインと同様に、extract、load、transform を呼び出します
extracted_data = extract(file_name="raw_data.csv")
load(data_frame=extracted_data, table_name="raw_data")
transform(source_table="raw_data", target_table="cleaned_data")
Python で学ぶ ETL と ELT

この後に見る内容

$$

このコースで後ほど扱うトピックを示す図。

Python で学ぶ ETL と ELT

練習しましょう!

Python で学ぶ ETL と ELT

Preparing Video For Download...