注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
パイプラインの問題を迅速にデバッグして解決する能力は、パイプラインの保守作業の中核をなすものです。これにより、組織の重要なワークフローにデータを供給する本番パイプラインの信頼性と有用性を維持できます。
このページでは、パイプライン保守担当者としてオンコール当番中にヘルスチェックの失敗通知を受け取った際の、標準作業手順書(SOP)の土台として使用できるフレームワークを紹介します。
このページでは、さまざまな Foundry ツールやワークフローに精通していることを前提としています。関連するセクションにリンクを記載します。
また、パイプライン保守チームが、パイプラインで繰り返し発生する問題についてインシデントログやその他のドキュメントを記録していることも前提としています。これはベストプラクティスであり、現在そのようなドキュメントがない場合は作成してください。
必ず、次の3つの質問を順番に検討することから始めます。
パイプラインのドキュメントを読んでください。この問題は以前に解決されたことがあるかもしれません。また、影響を軽減する際に行ってはいけないことについての警告があるかもしれません。たとえば、一部のビルドは非常に多くのリソースを消費し、利用が集中する時間帯には環境のパフォーマンスに影響する可能性があります。このような詳細は、チーム全体に向けて十分に文書化しておく必要があります。
問題の影響を軽減する試みの後、パイプライン保守担当者はさらに深く調査し、根本原因を理解して対処する必要があります。デバッグ時に問題の分類が役立つのは、根本原因を特定しやすくなるためです。特に重要なのは、自分で問題を修正できるのか、それとも別のチームに連絡する必要があるのかを迅速に判断できることです。
問題には3つのカテゴリーがあります。

上記で強調した手順の詳細は次のとおりです。
特定: 上記の手順を進める際は、何に問題があるのかを非常に正確に特定することが重要です。次のような質問に答えます。
これにより、上流の問題やプラットフォームの問題について、必要に応じてほかのチームと効果的に情報を共有でき、解決までの時間を短縮できます。また、プラットフォームでのデバッグスキルの向上にもつながります。
対処:
[任意]下流のユーザーへの連絡: 上記の図には記載されていない手順として、問題を分類し、根本原因をさらに特定した後に、パイプラインの下流の利用者に通知することが適切な場合があります。これは、問題の影響、範囲、継続時間、およびパイプラインのユースケースによって異なります。
回避策: 別のチームやユーザーによる修正に時間がかかる場合は、中期的な回避策を実施し、パイプラインの正常な部分が下流の利用者のために引き続き実行されるようにすると役立つことがあります。具体的な暫定対応は、問題とユーザーのニーズによって異なります。たとえば、次の方法があります。
パイプライン保守担当者が直面する最もよくある問題は、監視しているパイプライン内で何らかの変更が生じたことによる意図しない結果です。また、このカテゴリーでは、パイプライン保守担当者が最も大きな裁量を持ち、別のチームに頼らずに直接問題を修正できます。
具体的な手順は次のとおりです。
パイプライン内のどこから問題が生じているのかを、できる限り正確に突き止めます。たとえば、スケジュール、データセット、トランザクション、コードの変更などを特定してみます。
以前の正常な実行と現在の問題のある状態を比較し、何が変わったのかを特定します。 質問のチェックリストを頭に入れておくと役立つことがあります。以下に、質問の例と、答えを見つけるために役立つツールの例を示します。
上記の質問の一部に答えるために使用する Foundry のツールに詳しくない場合は、以下のリストに、調査でよく使われるパターンの例を示しています。このリストはすべての可能性を網羅するものではなく、調査を始めるためのガイドです。
ジョブ/ビルドが通常より遅くなっていますか?
Builds アプリケーションでは、特定のデータセットのジョブを比較できます。ビルド概要の右上にある進行状況の詳細の切り替えを使うと、ビルドの進行状況をキュー待機時間と計算時間に分けて確認できます。
スケジュールのメトリクスでは、スケジュールの過去の実行に加え、実行を比較するためのメトリクスとグラフを確認できます。
データセットのサイズに変更はありますか?トランスフォームが処理するデータ量は増えていますか?
データセットプレビュー:どの Foundry データセットでも、履歴タブと比較タブでデータセットの履歴の概要を確認でき、過去のトランザクションと比較して変更内容の概要を把握できます。
Contourでは、履歴ビューにアクセスして、概要ボードを使って行数を比較できます。また、データが追加/作成された日付を表す列がある場合は、グラフを作成して、追加日ごとの行数を比較できます。
Spark の詳細:任意のジョブで Spark の詳細ボタン(下記参照)をクリックすると、タスク数メトリクスなど、パイプライン内のデータ量が増えているかどうかを判断するのに役立つ情報を確認できます。
パイプライン内のコードは変更されていますか?
Python や Java など、ライブラリのインポートをサポートする言語を使用している場合、トランスフォームでインポートされたライブラリ内でコードが変更されることがあります。トランスフォームに変更が見られない場合は、ライブラリ関数のロジックに変更がなかったか確認することを検討してください。
スケジュールは変更されていますか?
確認できる症状だけでは問題が何か判断できない場合は、ほかのジョブ、ビルド、または関連するプラットフォームコンポーネントで同様の症状が発生していないか確認することが、調査を進めるうえで役立ちます。
特に、次の質問への答えを確認してください。
Builds アプリケーションを使ってプラットフォーム全体のジョブ履歴を絞り込むと、上記の質問への答えを見つけるのに役立ちます。
パイプラインの問題をすばやくデバッグして解決する能力は、パイプラインの保守担当者の業務の中核をなすものです。これにより、組織の重要なワークフローにデータを供給する本番パイプラインの信頼性と有用性を維持できます。このページで説明したガイドラインに沿って調査しても問題を特定できない場合は、Palantir の担当者にお問い合わせください。