処理の依存関係・スケジュール・失敗時の再実行を管理する(Airflow・Dagster など)。
データの処理は「取り込みが終わったら変換、変換が終わったらテストとダッシュボードの更新」のようにつながっています。オーケストレーターは、この依存関係とスケジュールを管理し、失敗したら再実行し、通知を出す道具です。Airflow・Dagster・Prefect などがあり、クラウドの管理サービスもあります。
DAG(有向非巡回グラフ)は、処理(タスク)を矢印でつないだ図で、「戻る矢印がない」ので必ず終わりがあります。Airflow では Python で DAG を書き、各タスクの再試行の回数・間隔・タイムアウトを設定します。Dagster は「どのテーブル(アセット)がどのテーブルから作られるか」を中心に書くので、データの依存関係とそのまま対応します。
オーケストレーターの中で重い処理をしないのも大事です。実際の計算は DWH や Spark にさせ、オーケストレーターは「指示して、結果を待つ」役に徹します。
面接ではこう答える
オーケストレーターは、取り込みが終わったら変換、変換が終わったらテストとダッシュボードの更新、という処理の依存関係とスケジュールを管理し、失敗したら再試行し、通知を出す道具で、Airflow や Dagster があります。処理のつながりは戻る矢印のない DAG で表します。重い計算は DWH や Spark にさせ、オーケストレーターは指示して結果を待つ役に徹するのが基本です。
Dataとの関わり毎朝のデータが揃うかどうかを支える仕組みで、障害対応のほとんどはここの画面から始まります。