注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
ビルドは、Foundry でデータセットの新しいバージョンを計算するために使用されるメカニズムです。ビルドは、計算のオーケストレーションと調整を提供し、適切な入力データが読み込まれ、出力データが適切な場所に書き込まれることを確認します。
ビルドはジョブで構成され、それぞれが共有ロジックで定義された作業単位であり、1つ以上の出力データセットを計算します。ジョブが複数の出力データセットを定義する場合、それらは常に一緒に更新され、データセットの一部だけをビルドせずに完全なジョブを実行することはできません。ジョブ仕様、またはJobSpecは、ジョブがどのように構築されるべきかを定義したものです。データエンジニアがコードリポジトリで新しい変換コードをコミットするなど、Foundry のデータ変換ロジックに変更が加えられたときに JobSpec が発行されます。
ビルドを実行すると、出力データセットのセットが一度だけ計算されます。データをシステム全体で流れるようにするために、スケジュールが使用されて、ビルドが時間をかけて実行されます。
Foundry でビルドを探索するには、ビルドアプリケーションを使用してください。
ジョブは、入力データセットのデータから1つ以上の出力データセットの新しいバージョンを計算するものをカプセル化しています。JobSpecは、入力データセットの依存関係と、ジョブの一部として実行されるべきロジックを詳細に説明することで、ジョブの構築方法を定義します。
入力データセットの依存関係は、InputSpecsのセットとして宣言され、それぞれが特定の入力データセットを指定します。InputSpecs は、データセットから読み取るデータのサブセットをビューの観点から指定します。
Foundry でジョブとして表現できるロジックの種類は多岐にわたり、以下に示すものに限定されません。
ある時点でのジョブは、常に以下の状態のいずれかになります。
WAITING
:ジョブの初期状態。ジョブは依存するジョブの完了を待っており、まだ起動されていません。RUN_PENDING
:ジョブは実行待ちですが、実行環境がまだステータスを確認していません。RUNNING
:ジョブが起動され、現在計算中です。ABORT_PENDING
:ジョブが中止されましたが、実行環境が中止された状態をまだ確認していません。ABORTED
:ジョブは、ユーザーの要求により、または依存するジョブが失敗した結果として中止されました。FAILED
:ジョブは起動されましたが、計算が失敗しました。COMPLETED
:ジョブは起動され、計算が正常に終了しました。ビルドが実行されると、提出されたビルドを検証し、データの一貫性を確保し、新しい出力を生成するために必要なジョブのみが実行されるように、いくつかのステップが実行されます。
まず、ビルドでは以下の手順が行われます。
上記の手順が完了すると、ビルド内のジョブが実行されます。お互いに依存しないジョブは並行して実行されます。ジョブがジョブの状態を経ると、全体的なビルドの状態がそれに応じて更新されます。
ビルド内のジョブが失敗しても、以前に完了したジョブは出力データセットにデータを書き込んでいる可能性があります。
出力データセットは、ビルドの解決ステップが入力データセットと JobSpec 内のロジックが前回の出力データセットがビルドされた時以降に変更されていないことを判断した場合、新鮮と見なされます。出力データセットが新鮮である場合、それは後続のビルドで再計算されません。
ビルドシステムのデフォルトの古さの動作を上書きするには、強制ビルドを実行して、すでに最新であるかどうかに関係なく、ビルドの一部としてすべてのデータセットを再計算します。
Foundry のビルドでは、データパイプライン上での共同作業ワークフローをサポートするために、ブランチングが実装されています。ブランチングについて詳しく知りたい場合は、以下を参照してください。