データ統合パイプラインの最適化とビルドパイプラインのデバッグ失敗するジョブのデバッグ

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

失敗するジョブのデバッグ

Foundryでデータ変換コードを作成する際に、ジョブが失敗するケースがあります。それは最初から、あるいはある時間が経過した後のことかもしれません。このページでは、失敗するジョブのデバッグに推奨されるワークフローと、ジョブがなぜ失敗し始めたかを理解するのに役立つFoundryで利用可能なツールを文書化しています。

推奨されるワークフロー

以下のグラフは、変換ジョブの失敗のデバッグに推奨されるワークフローを示しています。

ジョブのデバッグ

  • [1] 下記のようにジョブ比較を使用します。
  • [2] ジョブレポートをナビゲートして Actions > Rerun as Debug job > 前回成功したビルドのモジュールバージョンを選択することで、特定のモジュールバージョンでビルドをテストできます。
  • [3] OOMエラーのトラブルシューティング.
  • [4] リポジトリのアップグレード.
  • [5] ジョブレポートに移動して Logs > _driver.log > Download を選択することで、ジョブのドライバーログをダウンロードできます。

ジョブの比較

ジョブ比較ツールは、現在のジョブと前回の成功したジョブの実行を比較することができます。変更の調査やビルド問題のトラブルシューティングに役立ちます。出力トランザクションを持つ任意のジョブのビルドレポートページからBuildsアプリケーションでアクセスできます。ジョブ比較ツールにアクセスするには、任意のジョブ行の "Compare" ボタンをクリックします:

ジョブ比較ツールを開く

比較の概要

このタブでは、ジョブ中に発生した変更の概要を提供します。任意のデータセットをクリックすると、新しいタブが開き、DatasetアプリのCompareツールでトランザクションの変更を探索します。リポジトリをクリックすると、ブラウザがジョブが発生したコミット時のソースリポジトリにリダイレクトされ、このジョブの出力に関連付けられたファイルだけでなく、リポジトリ全体を探索できます。

ジョブ比較の概要

入力の変更

このタブは、入力データセットの変更の高レベルの概観を提供し、メタデータ、スキーマ、統計の変更を強調表示します。データセットが注目すべき行の変更を持っている場合、その行を選択すると、それらの変更の概要が展開します。詳細な変更を探索するために、任意のデータセットを選択すると、さらなる比較のためにDatasetアプリにリダイレクトされます。

ジョブ比較の入力

コードの変更

コードの変更は、このジョブの実行と前回の成功した実行の間のコードでの変更を強調表示します。出力が定義されているファイルで、さらに詳細な情報を提供するために、ソースリポジトリにコミット時にリダイレクトするボタンが提供されます(ソースがコードリポジトリである場合のみ利用可能)。コードの差分は、コードリポジトリまたはCode Workbookを基にした任意のジョブで利用可能です。

ジョブ比較のコード

ビルドのハング

ビルドがハングしている場合は、上記のワークフローに従います。これがこのジョブを初めて実行する場合、ユーザーコードが原因でビルドがハングしている可能性が最も高いです。

失敗したジョブとの重要な違いの一つは、ビルドがキャンセルされるとドライバーログが失われることです。ビルドをキャンセルする前にストリームドライバーログをダウンロードします。ダウンロードするには、Logs > _driver.log > Download を選択します。また、Spark詳細Executors > Snapshot で実行中のビルドのスナップショットを取ることもできます。これらにより、ビルドがキャンセルされた後にハングしているビルドをトラブルシューティングできます。

AIエラー強化器 (AIP)

AIPがスタックに有効になっている場合、AI error enhancer widget は、起こり得る問題をよりよく理解し、解決するために、失敗したジョブの詳細ビューを補完します。

AI error enhancer in Job Tracker のアニメーションスクリーンショット