フェーズ9:設計可観測性戦略
このフェーズでは、優れた運用とプロアクティブな問題解決を確保するための可観測性とモニタリング戦略を設計します。
Databricks 、プラットフォームの動作、ワークロードのパフォーマンス、データ品質、モデルサービングを監視する組み込みの可観測性機能を提供します。 運用上の知見とモニタリングのコストおよび複雑さのバランスをとるように可観測性戦略を設計します。
デザインシステムテーブル戦略
システムテーブルは、Databricksがホストする、お客様のアカウントの運用データを格納する分析用ストアです。これらは、アカウント全体の使用状況、パフォーマンス、コスト、セキュリティ、およびコンプライアンス モニタリングに関する履歴の観察可能性を提供します。
システムテーブルの機能
- 課金と使用状況 :ワークスペース全体のコスト、DBU消費量、使用パターンを監視します。
- 監査ログ :ワークスペースのアクティビティ、アクセスパターン、コンプライアンスイベントを追跡します。
- クエリ履歴 :クエリのパフォーマンス、実行パターン、および最適化の機会を分析します。
- ジョブ実行 : ジョブの実行履歴、成功率、失敗パターンを監視します。
- データリネージ :データの依存関係を追跡し、スキーマ変更の影響を理解する。
- クラスター イベント : クラスターの作成、終了、リソースの使用状況を監視します。
システムテーブルの使用例
- コスト最適化 :高コストなクエリ、利用率の低いリソース、およびコスト削減の機会を特定します。
- セキュリティモニタリング : アクセスパターンを監査し、異常を特定し、コンプライアンスを強制します。
- パフォーマンス分析 :クエリパターンを分析し、ボトルネックを特定し、ワークロードを最適化します。
- キャパシティプランニング :過去の使用傾向に基づいて、必要なリソースを予測します。
- データガバナンス : データリネージを追跡し、アクセスパターンを監視し、コンプライアンスを確保します。
システムテーブルのベストプラクティス
- 包括的な使用状況データを収集するために、すべてのメタストアでシステムテーブルを有効にしてください。
- システムテーブルに基づいてダッシュボードとアラートを作成し、プロアクティブなモニタリングを実現します。
- システムテーブルを定期的に照会し、最適化の機会を特定する。
- システムテーブルと監査ログを組み合わせることで、包括的なガバナンスレポートを作成できます。
- 運用モニタリングのキー メトリクスとしきい値を文書化します。
- システムテーブルを使用して、未使用のリソースを特定し、コストを削減します。
モニタリングクエリの例
- クラスターコスト別の最も高価なクエリの上位 10 位。
- ワークスペース別およびユーザー別の失敗したジョブ。
- 24時間以上稼働している未使用のクラスター。
- 最も頻繁にアクセスされるテーブルとボリューム。
- 重要な本番運用テーブルのデータリネージ。
システムテーブルの詳細なドキュメントとクエリ例については、 「システムテーブルを使用したアカウントアクティビティの監視」を参照してください。
ジョブとパイプラインモニタリング戦略の設計
ジョブとパイプラインの実行状況を監視し、データパイプラインが正常に実行されていることを確認するとともに、障害を迅速に特定します。ワークロードの重要度、SLA、運用要件に基づいてモニタリング戦略を設計します。
ジョブモニタリングパターン
- 警告アラート : 重大なジョブの失敗に対する電子メール通知または Webhook を構成します。
- 傾向分析 : ワークフローとパイプラインモニタリングページを使用して、ジョブ実行履歴を追跡し、パターンを特定します。
- 異常検出 : SQLアラートを設定して、ジョブ期間の異常または繰り返される失敗を監視します。
- SLAモニタリング : クリティカルなジョブの SLA と、ジョブが予想される実行時間を超えた場合のアラートを定義します。
- 依存関係の追跡 :ジョブの依存関係と、下流のワークロードに影響を与える上流の障害を監視します。
パイプラインモニタリングの考慮事項
- LakeFlow Spark宣言型パイプラインの可観測性 : パイプラインの実行ステータス、データ品質の期待、リネージを監視します。
- 増分処理 :チェックポイント情報と増分処理メトリクスを追跡します。
- データの鮮度 :パイプラインの遅延を監視し、データがSLA(サービスレベル契約)で定められた期間内に到着することを保証する。
- エラー処理 :再試行戦略と、失敗したレコードのためのデッドレターキューを設計する。
ジョブモニタリングのベストプラクティス
- 重大なジョブの失敗に対する電子メール通知または Webhook を構成します。
- システムテーブル(
system.workflow.job_runs、system.workflow.task_runs)を使用してジョブを監視します。 - ジョブ期間の異常または繰り返される失敗を監視するためにSQLアラートを設定します。
- ビジネス要件に基づいて重要なジョブの SLA を定義します。
- 一般的な障害シナリオに対応するため、ランブックの自動化を実装する。
- ジョブのパフォーマンス傾向を定期的に確認し、実行速度の遅いジョブを最適化します。
ジョブモニタリング設定の詳細については、 「 LakeFlowジョブのモニタリングと可観測性」を参照してください。
LakeFlow Spark宣言型パイプラインの可観測性については、 「パイプラインの監視」を参照してください。
Sparkパフォーマンスモニタリング戦略の設計
Sparkジョブのパフォーマンスを監視して、スキュー、スピル、長時間実行タスク、メモリや I/O の問題などのボトルネックを特定します。 コンピュートのタイプとパフォーマンス要件に基づいて、 Sparkモニタリングのアプローチを設計します。
サーバレスおよびSQLウェアハウスのクエリプロファイル
サーバレス コンピュートとSQLウェアハウスの場合、クエリ プロファイルを使用してクエリのパフォーマンスを分析し、最適化します。 クエリプロファイルは、詳細な実行計画、ステージレベルのメトリクス、および最適化に関する推奨事項を提供します。
クエリプロファイル機能
- ステージレベルのメトリクスを使用して、クエリ実行プランを視覚化します。
- コストのかかる操作(例えば、ソート、結合、集計など)を特定する。
- データの偏りやパーティションの不均衡を分析する。
- クエリ最適化ツールからの最適化推奨事項を確認してください。
- クエリの実行結果を比較する。
クエリプロファイルのベストプラクティス
- 処理速度の遅いクエリのクエリプロファイルを確認し、最適化の機会を特定してください。
- 実行時間が長い、あるいはデータに偏りがあるステージに重点を置く。
- パーティションプルーニングやブロードキャスト結合などの推奨される最適化を実装してください。
- 最適化後のクエリパフォーマンスを監視し、改善度を測定します。
クラシックコンピュート用のSpark UI
クラシック コンピュート クラスターの場合、 Spark UIを使用してパフォーマンスのボトルネックとリソース制約を特定します。 Spark UIエグゼキューター、ステージ、タスク、ストレージに関する詳細なメトリクスを提供します。
Spark UIの機能
- ステージ実行時間とタスク配分を監視する。
- タスク所要時間のばらつきを分析することで、データの偏りを特定する。
- メモリ使用量を追跡し、メトリクスを流出させます。
- エグゼキューター メトリクス (CPU、メモリ、ディスク I/O など) を確認します。
- シャッフル読み取り/書き込みパターンを分析します。
Spark UI のベストプラクティス
- ログを長期保存するには、クラウド ストレージへのクラスター ログ配信を有効にします。
- クラスター メトリクス (CPU、メモリ、ディスク I/O など) を監視して、リソース制約を特定します。
- Sparkのイベントログを確認して、処理の遅いジョブのトラブルシューティングを行い、設定を最適化してください。
- メモリ負荷を軽減するために、シャッフルやスピルが多いステージに注力しましょう。
- タスクの偏りを軽減するために、パーティションサイズを最適化してください。
クエリプロファイルのドキュメントについては、 「クエリプロファイル」を参照してください。
Spark UI のトラブルシューティングに関するガイダンスについては、 Apache Spark の概要を参照してください。
データ品質モニタリング戦略の設計
データ品質モニタリングにより、本番運用テーブルが品質基準を満たしていることを確認し、時間の経過に伴うデータのドリフトを特定します。 テーブルの重要性、データの鮮度要件、規制上のコンプライアンスのニーズに基づいて、データ品質モニタリング戦略を設計します。
レイクハウスのモニタリング機能
- 時系列モニター : 時系列データを含むテーブルの時間ベースのウィンドウ全体でデータ品質メトリクスを追跡します。
- スナップショット モニター : ある時点のすべてのデータに対してデータ品質メトリクスを計算します。
- 統計的プロファイリング :列の統計情報(最小値、最大値、平均値、標準偏差、欠損値の数など)を監視します。
- データドリフト検出 :時間の経過に伴うデータ分布の変化を特定します。
- 異常検出 : データ品質メトリクスの予期せぬ変化に対するアラート。
データ品質モニタリングのパターン
- ゴールドレイヤー モニタリング : ビジネスに不可欠なすべてのゴールドレイヤー テーブルのモニターを作成します。
- シルバーレイヤーの検証 : シルバーレイヤー テーブルのスキーマ コンプライアンスとデータ品質を監視します。
- ブロンズレイヤーチェック :データ取り込みの完全性を検証し、コンプライアンスをフォーマットします。
- リアルタイムアラート :データ品質違反や異常に関するアラートを設定します。
- データの鮮度モニタリング : パイプラインの遅延を監視し、データがSLAウィンドウ内に到着することを確認します。
データ品質モニタリングのベスト プラクティス
- 重要な本番運用テーブル (特にゴールドレイヤー テーブル) のモニターを作成します。
- 時系列データを含むテーブルには、時系列モニターを使用して品質傾向を追跡してください。
- 時間ディメンションのないテーブルには、スナップショットモニターを使用してください。
- データ品質違反や異常に関するアラートを設定する。
- パイプラインが予定通りに稼働していることを確認するために、データの鮮度を監視してください。
- データ品質の閾値とエスカレーション手順を文書化する。
レイクハウスモニタリングの包括的なドキュメントについては、 「データ品質モニタリング」を参照してください。
デザインモデルモニタリング戦略
デプロイされたMLモデルを監視して、パフォーマンス、健全性を追跡し、メトリクスをリクエストします。 モデルの重要性、 SLA要件、コンプライアンスのニーズに基づいてモデルのモニタリング戦略を設計します。
モデルサービングの可観測性機能
- エンドポイントの状態 :エンドポイントの可用性と健全性の状態を監視します。
- 呼び出しメトリクス :リクエスト数、レイテンシ、スループットを追跡します。
- 推論テーブル :予測値を記録し、時間の経過に伴うモデルの動作を分析します。
- モデルバージョンの追跡 :モデルバージョンの使用状況とデプロイ履歴を監視します。
- エラー監視 : エラー率と障害パターンを追跡します。
モデルモニタリングパターン
- リアルタイムアラート :高遅延やエラー率などの異常事態に対するアラートを設定します。
- SLAモニタリング :本番運用モデルのレイテンシーと可用性のSLAを定義します。
- 推論分析 :推論表を使用して予測分布を分析し、ドリフトを検出します。
- A/Bテスト :モデルのバージョン間でパフォーマンスを監視し、改善点を検証します。
- ロールバック手順 :パフォーマンスしきい値に基づいて、自動ロールバックのトリガーを定義します。
モデルモニタリングのベストプラクティス
- エンドポイントの状態と呼び出しメトリクスを監視して、パフォーマンスの問題を特定します。
- レイテンシーを追跡し、 SLAコンプライアンスを確保するためにスループットをリクエストします。
- 推論テーブルを使用して予測を記録し、モデルの動作を分析します。
- 高遅延や高エラー率などの異常事態に対するアラートを設定します。
- モデルバージョンの利用状況を監視し、デプロイとロールバックを追跡します。
- モデルのパフォーマンス基準値と許容閾値を文書化する。
モデルサービングの可観測性に関するドキュメントについては、 「モデルの品質とエンドポイントの状態を監視する」を参照してください。
サードパーティモニタリング統合戦略を設計する
Databricks外部モニタリング ソリューションと統合して、インフラストラクチャ全体にわたる一元的な監視を実現します。 既存のモニタリング ツール、運用要件、チームの専門知識に基づいて統合戦略を設計します。
サードパーティ統合パターン
- 一元的なモニタリング : Databricksメトリクスとログを一元的なモニタリング プラットフォームに転送します。
- マルチクラウドの可観測性 : クラウドに依存しないツールを使用して、複数のクラウドにわたるDatabricks監視します。
- カスタムダッシュボード :Databricksと外部システムのメトリクスを組み合わせた統合ダッシュボードを構築します。
- アラート統合 :Databricksのアラートを既存のインシデント管理システムにルーティングします。
- コンプライアンス レポート : コンプライアンスと監査要件のログを集約します。
統合オプション
-
Datadog : Datadog 統合を使用してクラスター メトリクス、ジョブ実行、アプリケーション ログを監視します。
-
Prometheus : 時系列モニタリングとアラートのためにクラスター メトリクスを Prometheus にエクスポートします。
-
AWS CloudWatch : クラスターログとメトリクスを CloudWatch に転送して一元監視します。
-
AWS CloudTrail :監査ログをCloudTrailと統合して、コンプライアンス追跡に活用します。
サードパーティ統合のベストプラクティス
- 利用可能な場合は、標準的な統合機能(例えば、Datadog、Prometheus)を使用してください。
- ログを長期保存のため、集中ログプラットフォームに転送します。
- 根本原因分析のために、Databricksのメトリクスとインフラストラクチャのメトリクスを関連付けます。
- Databricksと外部システム全体で一貫したタグ付けを実装する。
- アラートのルーティングおよびエスカレーション手順を定期的にテストしてください。
可観測性に関する推奨事項
推奨
- 包括的な使用状況データを収集するために、すべてのメタストアでシステムテーブルを有効にしてください。
- コスト、パフォーマンス、セキュリティのモニタリングのためにシステムテーブルに基づいてダッシュボードを作成します。
- 重大な障害に対してアラートを使用してジョブとパイプラインモニタリングを設定します。
- パフォーマンスのトラブルシューティングのために、Sparkのモニタリング(クエリプロファイル、Spark UI)を有効にしてください。
- 重要な本番運用テーブル (ゴールドレイヤー) 用のレイクハウスモニタリングを作成します。
- モデルサービングエンドポイントのレイテンシ、スループット、エラー率を監視します。
- サードパーティのモニタリング ソリューションと統合して一元的な監視を実現します。
- 重要なワークロードに対するSLA(サービスレベル契約)とアラートしきい値を定義する。
- 一般的な運用シナリオに関する運用手順書を作成する。
要件に基づいて評価する
- モニタリングの粒度と運用上のオーバーヘッドおよびコストのバランスをとります。
- 一元的なモニタリングが必要な場合にのみ、サードパーティの統合を検討してください。
- SLA要件に基づいて、中断アラートとバッチモニタリングを評価します。
- 大規模なテーブルのデータ品質モニタリング コスト (ストレージ、コンピュートなど) を考慮してください。
- アラート疲労をテストするには、まず控えめな閾値から始め、時間をかけて調整していく。
第9相の結果
フェーズ9を完了すると、以下のものが得られます。
- 主要なモニタリング クエリとダッシュボードで定義されたシステム テーブル戦略。
- 重大な障害に対してアラートを使用して構成されたジョブとパイプラインモニタリング。
- Sparkパフォーマンスモニタリングアプローチの設計 (クエリプロファイル、 Spark UI )。
- 重要なテーブルに対するレイクハウスモニタリングで定義されたデータ品質モニタリング戦略。
- MLエンドポイント向けに設計されたモデルモニタリング戦略。
- サードパーティのモニタリング統合アプローチが定義されています (該当する場合)。
- 重要なワークロードに関するSLA(サービスレベル契約)とアラートしきい値を文書化しました。
- 一般的なモニタリング シナリオ用に作成された運用ランブック。
次のフェーズ :フェーズ 10: 高可用性とディザスタリカバリの設計
実装ガイダンス : 可観測性戦略を実装するための段階的な手順については、 「システムテーブルによるアカウントアクティビティの監視」およびLakeFlowジョブの監視と可観測性」を参照してください。