Warning

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

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

Foundry でデータ変換コードを作成する際には、ジョブが開始時または途中で失敗するケースに遭遇することがあります。このページでは、失敗するジョブのデバッグ用の推奨ワークフローと、ジョブがなぜ失敗し始めたのかを理解するのに役立つ Foundry のツールについて説明しています。

推奨されるワークフロー

以下のグラフは、トランスフォームジョブの失敗をデバッグするための推奨ワークフローを示しています。

ジョブのデバッグ

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

ジョブの比較

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

Job Comparison Tool の開始

比較の概要

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

Job Comparison の概要

入力の変更

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

Job Comparison の入力

コードの変更

コードの変更では、このジョブの実行と前回成功した実行の間でコードに何か変更があったかを強調表示します。詳細については、ソースリポジトリにリダイレクトするボタンが提供されています(ソースが Code Repositories の場合のみ利用可能)。コードの差分は、コードリポジトリまたは Code Workbook を基にした任意のジョブで利用できます。

Job Comparison のコード

ビルドのハングアップ

ビルドがハングアップした場合は、上記のワークフローに従ってください。これが初めてのジョブの実行であれば、ビルドがハングアップしているのはユーザーコードが原因である可能性が高いです。

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

AI エラー強化機能(AIP)

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

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