注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このドキュメントでは、パイプラインの健全性を監視するためのヘルスチェック設定のベストプラクティスを紹介します。これらのガイドラインに従うことで、データが取り込まれ、ビルドされ、出力されることを確認するための、堅牢で効果的な監視を実現できるはずです。
これらのベストプラクティスでは、データセット内のコンテンツの品質、正確性、妥当性の確保については扱いません。これらを確保するには、パイプライン内で実施する適切な検証を判断できるよう、パイプラインについてより詳細で機能面に踏み込んだ知識が必要です。
また、これらのガイドラインは、ヘルスチェックの設定でよくある次のような落とし穴を避けるのにも役立つはずです。
これらのガイドラインは、次の項目を理解していることを前提としています。
解決済みスケジュールは、スケジュールに関わるさまざまなデータセットにロールを割り当てるための概念モデルです。スケジュールによってビルドできるために関わるデータセットもあります。つまり、これらはスケジュールのデータセット選択に含まれます。また、ビルドに必要な入力として関わるデータセットもあります。データセットのロールに応じて、異なるヘルスチェックが推奨されます。
このドキュメントでスケジュールの入力、中間、出力に言及する場合は、解決済みスケジュールを指します。これは、Data Lineage アプリケーションでのスケジュール設定とは異なります。
データセットは、スケジュール内で次のいずれかのロールを持ちます。
具体例として、スケジュールが次のデータセットをビルドする場合を考えます。

この場合、スケジュールを次のように分けることができます。

スケジュールの入力、出力、中間が何かを判断するには、Data Lineage でスケジュールを開くのが最も簡単です。Data Lineage でサイドバーからスケジュールを選択すると、スケジュールの色分けが適用され、スケジュールが何をビルドしようとするかを把握しやすくなります。
データの古さについて少し補足します。実際には、すでに最新のデータセットもあり、それらを再計算するとリソースの無駄になるため、スケジュールがこのグラフ内のすべてをビルドすることはほとんどありません。ただし、スケジュールを解決するとは、スケジュールが処理しうるすべてのものを特定することだと理解しておくことが重要です。
スケジュールは対象を指定して定義され、通常、対象は出力と同じです。ただし、対象と出力が異なる場合もあります。

output_c をビルドするスケジュールは、常に output_d もビルドする必要があります。これは、B、C、D の間のトランスフォームが、複数の出力を持つトランスフォームであるためです。
したがって、output_c を対象とするスケジュールでは、output_c と output_d の両方が出力になります。これは、output_d がスケジュールによってビルドされるデータセットであり、スケジュール内のほかのデータセットでは使用されないためです。

データセットがスケジュールの「対象」として定義されていても、スケジュール内のほかのデータセットで使用される場合は、「出力」データセットではなく「中間」データセットと見なされます。
この例では、dataset_c はスケジュールの「対象」ですが、「出力」とは見なされません。

以下のステップバイステップガイドは、ジョブステータスチェックとスケジュールステータスチェックの違い、およびデータ鮮度チェックと最終更新からの経過時間チェックの違いを理解していることを前提としています。これらのチェックの違いがわからない場合は、ヘルスチェックの種類を参照してください。
スケジュールは、パイプラインを適切に表現する単位です。監視の単位として推奨されるため、監視の質は設定するスケジュールの質に左右されます。ヘルスチェックの設定を始める前に時間を取り、スケジュールがこちらで説明するベストプラクティスに従っていることを確認してください。
パイプラインのすべての解決済み入力にチェックを設定してください。パイプラインが失敗した場合、根本原因を突き止められることが重要です。入力の鮮度低下やスキーマの破壊的変更は発生するものです。入力にチェックを設定すると、これらを検出しやすくなります。注:現時点では、特定のデータセットに設定できる同じ種類のチェックは1個だけです。設定しようとしたチェックがすでに存在する場合は、そのチェックをフォローするだけで構いません。
パイプラインのすべての解決済み出力にチェックを設定してください(これらはスケジュールによってビルドされますが、同じスケジュール内のほかのデータセットでは使用されないことを思い出してください)。
必要に応じて、別のアプリケーションでユーザーが直接または同期を通じて利用する重要な中間データセットにチェックを設定します。
上記で説明したベストプラクティスを、すぐに参照できるように次のテーブルにまとめています。
| スキーマ | TSLU | データ鮮度 | 同期鮮度 | 同期ステータス | |
|---|---|---|---|---|---|
| 入力 | ✓ (追加を許可) | ||||
| 中間 | |||||
| 出力 | ✓(完全一致) | ✓ | |||
| ユーザー向けデータセット* | ✓(完全一致) | ✓ | |||
| 同期されるデータセット* | ✓(完全一致) | ✓ | ✓ | ✓ |
[*] 入力、中間、出力のいずれのデータセットでも該当する場合があります。ユーザー向けデータセットとは、Contour などのアプリでユーザーが直接利用するデータセットです。