第6章. データフローのデザインパターン
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
生データから ビジネス価値を作成することで、事実に基づいた意思決定プロセスが可能になる。第5章のデータ価値設計パターンは、このスマートなプロセスを作成するのに役立つ。しかし、データエンジニアリング・デザインパターンを探求しているこの段階では、生成されたデータインサイトはあなただけのものである。確かに利点はあるが、それをローカルだけでなくもっと広い範囲に開放することで、さらに多くの利点を作成できると言ったらどうだろうか?
例えば、貴重なデータセットの一つを組織内の他のチームに公開することで、彼らのローカルなユースケースを充実させ、結果として彼らのデータ価値資産を増やすことができるかもしれない。他のチームが自分たちの貴重なデータセットを共有することで、あなたのデータの価値を高めることができる!これはデータ価値パターン・ファミリーのように聞こえるが、適用すべき規則は異なる。だからこそ、データフローデザインパターンとして回収するのだ。
データフローデザインパターンの目的は、データセットを生成するために必要なすべてのステップを設計し、座標化することである。これには、パイプライン内の様々なタスクを連鎖させたり、並列または排他的な実行ブランチを作成したり、あるいは物理的に分離されたパイプラインの依存関係を管理したりするような動作が含まれる。
データフローデザインパターンは2つの異なるレベルで動作する。最初のレベルはデータオーケストレーションで、1つまたは複数のデータパイプラインで機能する。これは、チーム横断的なコラボレーションの問題に取り組みたい場合に特に有効だ。2つ目のレベルはデータ処理レイヤーであり、仕事の環境である。ここでは、データフローデザインパターンが、ビジネスロジックをより分かりやすく整理し、長期にわたって保守しやすくするのに役立つ。
データ・フロー・デザイン・パターンを使えば、どのようにそれを実現できるだろうか?まず、シーケンスパターンを使うと、1つのパイプライン内、あるいは複数のパイプライン間で、タスクやパイプラインの座標を調整することができる。次のセクションでは、他の2種類のパターンを使ってパイプラインを強化する方法を説明する。最初のファンインは、あるステップが他の多くのステップに依存するようなマージ状況を処理する。2つ目のカテゴリーはその逆で、同じタスクから2つ以上のブランチを作成する。最後に、パイプラインの並行性を管理するために活用できるオーケストレーションパターンを発見する。
パターンを見てみたい?さっそく始めよう!
シーケンス
データフローを設計する際に必ず遭遇するパターンの最初のカテゴリーは、ステップのシーケンスに関するものである。これはパイプラインの複雑さ、パフォーマンス、メンテナンスに影響する重要な要素である。例えば、データ処理ジョブは処理したデータセットを複数の場所に書き出す。これをワークフローで1つのユニットとして表現すると、データベースの1つに対してロード部分だけを再生する必要があるときはいつでも、実行全体をリスタートしなければならなくなる。このセクションのパターンは、この問題に対処する方法を示している。
パターンローカル・シーケンサー
このセクションの最初のデザインパターンは、ローカルに(つまり同じパイプラインやデータ処理ジョブの中で)タスクをオーケストレーションするので、おそらく最も簡単なものだろう。 ...