始める無料で始める

DAG を定義する

前の演習では、ETL プロセスの 3 つのステップを適用しました。

  • 抽出(Extract):PostgreSQL の film テーブルを pandas に抽出する。
  • 変換(Transform)film DataFrame の rental_rate 列を分割する。
  • 読み込み(Load)film DataFrame を PostgreSQL のデータウェアハウスに読み込む。

関数 extract_film_to_pandas()transform_rental_rate()load_dataframe_to_film() はワークスペースにすでに定義されています。この演習では、これらを使ってスケジュール実行される Airflow のパイプラインを構築します。etl タスクは、wait_for_table タスクが元テーブルの準備完了を知らせた後に実行されます。

この演習はコースの一部です

データエンジニアリング入門

コースを見る

演習の手順

  • 演習の説明で定義されている関数を使って、etl() タスクを完成させてください。
  • 正しい依存関係を設定してください。etl タスクは wait_for_table の完了を待つ必要がある点に注意してください。
  • 最後の行はサンプル実行です。etl.function() はタスクの背後にあるプレーンな Python 関数を呼び出すため、ここではコンソール上で一度だけパイプラインが実行されます。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define the ETL task
@task(task_id="etl_film")
def etl():
    film_df = ____()
    film_df = ____(____)
    ____(____)

# Add the task to the DAG
@dag(dag_id="etl",
     start_date=datetime(2024, 1, 1),
     schedule="0 0 * * *")
def etl_dag():
    wait_for_table = EmptyOperator(task_id="wait_for_table")
    wait_for_table >> ____

etl_dag()

# Sample run
etl.function()
コードを編集して実行