第7章 パイプラインのオーケストレーション パイプラインのオーケストレーション
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
これまでの章では、データ取り込み、データ変換、マシン学習パイプラインのステップなど、データパイプラインのビルドパイプライン( )要素について説明してきた。この章では、これらのブロックやステップを "オーケストレーション "する方法、つまり結びつける方法を説明する。
オーケストレーションは、パイプラインのステップが正しい順序で実行され、ステップ間の依存関係が適切に管理されることを保証する。
第2章でパイプラインのオーケストレーションの課題を紹介したとき、ワークフロー・オーケストレーション・プラットフォーム(ワークフロー管理システム(WMS)、オーケストレーション・プラットフォーム、オーケストレーション・フレームワークとも呼ばれる)の概念も紹介した。この章では、最もポピュラーなフレームワークの1つであるApache Airflowを取り上げる。この章の大部分はAirflowの例に捧げられているが、概念は他のフレームワークにも転用可能である。実際、章の後半でAirflowに代わるものをいくつか紹介する。
最後に、この章の後半では、データインフラ上で複数のパイプラインを協調させるなど、パイプラインオーケストレーションのより高度な概念について説明する。
有向非周期グラフ
第2章でDAGを紹介したが、DAGが何であるかは繰り返し説明する価値がある。 この章では、Apache AirflowでDAGがどのように設計され実装され、データパイプラインのタスクをオーケストレーションするかについて説明する。
パイプラインのステップ(タスク)は常にディレクトリである。つまり、あるタスクまたは複数のタスクから始まり、特定のタスクで終わる。これは実行パスを保証するために必要である。言い換えれば、すべての依存タスクが正常に完了する前にタスクが実行されることがないようにするためである。
パイプライングラフはまた、非循環的でなければならない。つまり、あるタスクが以前に完了したタスクを指すことはできない。つまり、タスクを循環させることはできない。もしそうであれば、パイプラインは無限に走り続けることになる!
図7-1に示す、第2章のDAGの例を思い出してほしい。これはApache Airflowで定義されたDAGである。
図7-1. つのタスクを持つDAG。タスクAが完了すると、タスクBとタスクCが実行される。両者が完了すると、タスクDが実行される。
Airflowにおけるタスクは、SQL文の実行からPythonスクリプトの実行まで、あらゆるものを表すことができる。以下のセクションで説明するように、Airflowではデータパイプラインのタスクを定義、スケジュール、実行し、それらが適切な順序で実行されるようにすることができる。
Apache Airflowのセットアップと概要
Airflowは、2014年にAirbnbのMaxime Beaucheminによって開始されたオープンソースプロジェクトである。 2016年3月にApache Software Foundationのインキュベーター・プログラムに参加した。Airflowは、データエンジニアリングチームが直面する共通の課題である、相互 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access