注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

ビルド

ビルドは、Foundry でデータセットの新しいバージョンを計算するための仕組みです。ビルドは計算のオーケストレーションと調整を行い、適切な入力データが読み込まれ、出力データが適切な場所に書き込まれるようにします。

ビルドはジョブで構成されます。各ジョブは、共通のロジックで定義され、1 個以上の出力データセットを計算する作業単位です。ジョブで複数の出力データセットが定義されている場合、それらは常に同時に更新されます。ジョブ全体を実行せずに、一部のデータセットのみをビルドすることはできません。ジョブ仕様、つまり Job Spec は、ジョブの構築方法を定義したものです。データエンジニアがコードリポジトリで新しいトランスフォームのコードをコミットする場合など、Foundry のデータ変換ロジックに変更が加えられると、Job Spec が公開されます。

ビルドを実行すると、一連の出力データセットの計算が 1 回行われます。システム内でデータを継続的に流すために、スケジュールを使用してビルドを継続的に実行します。

Builds アプリケーションを使用して、Foundry のビルドを探索できます。

ジョブと Job Spec

ジョブは、一連の入力データセットのデータから、1 個以上の出力データセットの新しいバージョンを計算する処理をまとめたものです。Job Spec は、入力データセットの依存関係と、ジョブの一部として実行するロジックを詳しく指定することで、ジョブの構築方法を定義します。

入力データセットの依存関係は、一連の InputSpecs として宣言され、それぞれが特定の入力データセットを指定します。InputSpecs は、データセットから読み込むデータのサブセットを、そのビューに基づいて指定します。

Foundry では、次のようなさまざまな種類のロジックをジョブとして表現できます。これらは一部の例です。

  • Data Connection の同期は、外部データソースからデータを読み込む方法を定義します。
  • コードリポジトリで記述するトランスフォームでは、データセットを加工するコードを記述できます。
  • ヘルスチェックは、データセットの特性を検証するために、データセット上で生成されるジョブとして定義されます。
  • 分析アプリケーションでは、データセットを加工するロジックを定義できます。
  • エクスポートは、入力データを Foundry の外部に送信する方法を定義します。

ジョブの状態

ジョブは、常に次のいずれかの状態にあります。

  • WAITING:ジョブの初期状態です。ジョブは依存先のジョブの完了を待っており、まだ呼び出されていません。
  • RUN_PENDING:ジョブは実行待ちですが、実行環境ではまだステータスが確認されていません。
  • RUNNING:ジョブが呼び出され、現在計算が行われています。
  • ABORT_PENDING:ジョブは中止されましたが、実行環境ではまだ中止のステータスが確認されていません。
  • ABORTED:ユーザーの要求、または依存先のジョブの失敗により、ジョブが中止されました。
  • FAILED:ジョブは呼び出されましたが、計算に失敗しました。
  • COMPLETED:ジョブが呼び出され、計算が正常に完了しました。

ビルドのライフサイクル

ビルドを実行すると、送信されたビルドの検証、データの整合性の確保、新しい出力の生成に必要なジョブのみの実行を目的として、いくつかのステップが実施されます。

ビルドの解決

最初のステップとして、ビルドは次の処理を行います。

  • 指定された入力データセットの循環を検出し、循環が存在する場合はビルドを失敗させます。
  • すべての入力データセットが存在することを検証し、各入力データセットに適したスキーマを特定します。
  • 各出力データセットで新しいトランザクションを開始し、アクティブなビルドのみが出力データセットに書き込めるようにします。これはビルドロックと呼ばれます。
  • このビルドへの入力を変更する別のビルドが進行中かどうかを検出します。進行中の場合、ビルドはキューに登録され、別のビルドが完了するまで待機することがあります。

ジョブの実行

上記のステップが完了すると、ビルド内のジョブが実行されます。相互に依存していないジョブは並列で実行されます。ジョブがジョブの状態を遷移するにつれて、ビルド全体の状態もそれに応じて更新されます。

  • ビルド内のジョブが失敗すると、そのジョブに直接依存するすべてのジョブと、そのビルド内の出力データセットのトランザクションが終了されます。オプションとして、依存関係のないすべてのジョブも同時に中止するようにビルドを設定できます。
  • ビルド内のすべてのジョブが完了すると、ビルドは完了したと見なされます。

ビルド内のジョブが失敗しても、それ以前に完了したジョブは、すでに出力データセットにデータを書き込んでいる可能性があります。

鮮度

ビルドの解決ステップで、入力データセットと Job Spec 内で指定されたロジックが、出力データセットの前回のビルド以降に変更されていないと判断された場合、その出力データセットは最新と見なされます。出力データセットが最新の場合、後続のビルドでは再計算されません。

ビルドシステムのデフォルトの鮮度判定による動作をオーバーライドするには、強制 Build を実行できます。これにより、データセットがすでに最新であるかどうかにかかわらず、ビルドの一部としてすべてのデータセットが再計算されます。

個別のジョブのキャンセル

ビルド全体をキャンセルせずに、実行中の個別のジョブをキャンセルできます。Builds アプリケーションでビルドを開き、Build の進行状況セクションでジョブを見つけて選択し、アクションメニューを開いて、ジョブをキャンセルを選択します。

実行中のジョブのアクションメニューに、ジョブをキャンセルの選択肢が表示されています。

ブランチ

Foundry のビルドでは、データパイプラインでの共同作業ワークフローをサポートするために、ブランチが実装されています。ブランチの詳細については、次を参照してください。

ライブログ

ライブログでは、実行中のジョブの状況をリアルタイムで確認できます。これにより、ジョブの進行状況を監視し、ストリームや Compute Module などの長時間実行されるタスクを調査できます。

Builds アプリケーションのライブログ表示。

ライブログには、Builds アプリケーションからアクセスできます。ジョブの表示中に、ログビューアーの右上にあるライブで表示ボタンを選択すると、ライブログの生成が開始されます。有効にしてからインターフェースにライブログが表示されるまで、10 秒程度の遅延が発生することがあります。

Builds アプリケーションのジョブのログビューアーページにある「ライブで表示」の選択肢。

ライブログの主な機能の 1 個として、ログレベルに応じた組み込みの色分けがあります。これにより、警告やエラーを特定し、優先順位を付けやすくなります。

ライブログフィードのさまざまな色分けインジケーターの例。

  • 情報: 青
  • 致命的/エラー: 赤
  • 警告: オレンジ
  • デバッグ/トレース: グレー

また、安全なパラメーターとパラメーターは JSON ブロックとして表示されるため、データを構造化された読みやすい形式で確認できます。

ライブログフィードの「JSON としてフォーマット」の選択肢。

インターフェースの右上にある一時停止を選択すると、いつでもライブログフィードを停止できます。同じ場所から再開することもできます。

ライブログフィードの「一時停止」の選択肢。

ライブログはジョブからリアルタイムでストリーミングされるため、時間範囲の選択は適用されません。