この記事では、Databricks レイクハウス監視について説明します。 データを監視する利点について説明し、Databricks レイクハウス監視のコンポーネントと使用状況の概要を示します。
Databricks レイクハウス監視を使用すると、アカウント内のすべてのテーブルにおいてデータの統計プロパティと品質を監視できます。 これを使用して、モデルの入力や予測を含む、推論テーブルを監視することで、機械学習モデルとモデルサービス エンドポイントのパフォーマンスを追跡することもできます。 この図は、Databricks のデータと ML パイプラインを介したデータのフローと、監視によりデータ品質とモデル パフォーマンスを継続的に追跡する方法を示しています。
              
              
            
Databricks レイクハウス監視を使用する理由
データから有用な分析情報を引き出すには、データの品質が自身を持てるものである必要があります。 データを監視することにより、データの品質と一貫性を経時的に追跡し確認するのに役立つ定量的な測定値が得られます。 テーブルのデータ分散または対応するモデルのパフォーマンスの変化を検出すると、Databricks Lakehouse Monitoring によって作成されたテーブルで変更をキャプチャしてアラートを生成でき、原因の特定に役立ちます。
Databricks レイクハウス監視は、次のような質問に答えるのに役立ちます。
- データの整合性はどのように見え、時間の経過とともにどのように変化しますか? たとえば、現在のデータの null 値またはゼロ値の割合は何であり、増加していますか?
 - データの統計的分布はどのように見え、時間の経過とともにどのように変化しますか? たとえば、数値列の 90 パーセンタイルは何ですか? または、カテゴリ列の値の分布はどうなっていて、昨日との違いはどうですか?
 - 現在のデータと既知のベースラインの間、またはデータの連続する時間枠の間に誤差がありますか?
 - データのサブセットまたはスライスの統計的分布またはドリフトはどのように見えますか?
 - ML モデルの入力と予測は、時間の経過と共にどのように変化しますか?
 - モデルのパフォーマンスは時間の経過とともにどのような傾向を示していますか? モデル バージョン A のパフォーマンスはバージョン B よりも優れていますか?
 
さらに、Databricks レイクハウス監視を使用すると、観察の時間の細分性を制御し、カスタム メトリックを設定できます。
必要条件
Databricks レイクハウス監視を使用するには、次が必要です:
- ワークスペースが Unity Catalog に対して有効になっている必要があり、Databricks SQL にアクセスできる必要があります。
 - 監視では Delta テーブルのみがサポートされ、テーブルはマネージド テーブル、外部テーブル、ビュー、具体化されたビュー、ストリーミング テーブルのいずれかである必要があります。
 - 具体化されたビューで作成されたモニターは、増分処理をサポートしていません。
 - すべてのリージョンがサポートされているわけではありません。 リージョンのサポートについては、テーブル AI と機械学習機能の可用性に関する列「Lakehouse の監視」を参照してください。
 - 時系列または推論分析モードを使用して作成されたモニターは、過去 30 日間のメトリックのみを計算します。 これを調整する必要がある場合は、Databricks アカウント チームにお問い合わせください。
 - Azure Private Link またはファイアウォールを有効にしている場合は、追加の構成手順が必要です。 
- ネットワーク接続構成 (NCC) を設定します。 「手順 2: NCC をワークスペースにアタッチする」を参照してください。
 - ソース テーブルを含むストレージ アカウントとメタストアのストレージ アカウントの両方に接続するように Azure Private Link を設定します。
 
 
メモ
Databricks Lakehouse Monitoring はジョブにサーバーレス コンピューティングを使用しますが、サーバーレス コンピューティングに対してアカウントを有効にする必要はありません。 レイクハウス監視費用の追跡については、「レイクハウス監視費用の表示」を参照してください。
Databricks でのレイクハウス監視のしくみ
Databricks でテーブルを監視するには、テーブルにアタッチされたモニターを作成します。 機械学習モデルのパフォーマンスを監視するには、モデルの入力と対応する予測を保持する推論テーブルにモニターをアタッチします。
Databricks レイクハウス監視には、時系列、スナップショット、推論という種類の分析が用意されています。
| プロファイルの種類 | 説明 | 
|---|---|
| 時系列 | タイムスタンプ列に基づく時系列データセットを含むテーブルに使用します。 監視は、時系列の時間ベースのウィンドウ全体でデータ品質メトリックを計算します。 | 
| 推論 | モデルの要求ログを含むテーブルに使用します。 各行は要求であり、タイムスタンプ、モデル入力、対応する予測、および (省略可能な) グラウンド トゥルース ラベルの列が含まれます。 監視は、要求ログの時間ベースのウィンドウ間でモデルのパフォーマンスとデータ品質のメトリックを比較します。 | 
| スナップショット | その他すべての型のテーブルに使用します。 監視では、テーブル内のすべてのデータに対するデータ品質メトリックが計算されます。 テーブル全体が、更新のたびに処理されます。 | 
このセクションでは、Databricks レイクハウス監視で使用される入力テーブルと、それが生成するメトリック テーブルについて簡単に説明します。 この図は、入力テーブル、メトリック テーブル、モニター、ダッシュボードの間のリレーションシップを示しています。
              
              
            
主テーブルとベースライン テーブル
監視対象のテーブル ("主テーブル" と呼ばれる) に加えて、必要に応じて、誤差を測定するための参照として使用するベースライン テーブル、または時間の経過に伴う値の変化を指定できます。 ベースライン テーブルは、データの外観のサンプルがある場合に役立ちます。 その後、予想されるデータ値と分布に対してドリフトが計算されるという考え方です。
ベースライン テーブルには、統計分布、個々の列分布、欠損値、その他の特性に関して、入力データの期待される品質を反映したデータセットが含まれている必要があります。 監視対象テーブルのスキーマと一致している必要があります。 例外は、時系列または推論プロファイルで使用されるテーブルのタイムスタンプ列です。 主テーブルまたはベースライン テーブルに列がない場合、監視ではベストエフォート ヒューリスティックを使用して出力メトリックを計算します。
スナップショット プロファイルを使用するモニターの場合、ベースライン テーブルには、分布が許容される品質基準を表すデータのスナップショットが含まれている必要があります。 たとえば、成績分布データでは、基準計画を、成績が均等に配布された以前のクラスに設定する場合があります。
時系列プロファイルを使用するモニターの場合、ベースライン テーブルには、データ分布が許容される品質基準を表す時間枠を表すデータが含まれている必要があります。 たとえば、気象データでは、ベースラインを週、月、または年に設定して、気温が予想される通常の温度に近い場合などです。
推論プロファイルを使用するモニターの場合、ベースラインに適した選択肢は、監視対象のモデルのトレーニングまたは検証に使用されたデータです。 このようにして、モデルがトレーニングおよび検証された内容に対してデータがドリフトしたときに、ユーザーにアラートを送信できます。 このテーブルには、プライマリ テーブルと同じ機能列が含まれている必要があります。また、データが一貫して集計されるように、プライマリ テーブルの InferenceLog に指定されたのと同じ model_id_col が必要です。 モデルの評価に使用されるテストまたは検証セットを使用して、同等のモデル品質メトリックを確保するのが理想的です。
メトリック テーブルとダッシュボード
テーブル モニターは、2 つのメトリック テーブルとダッシュボードを作成します。 メトリック値は、テーブル全体、およびモニターの作成時に指定した時間枠とデータ サブセット (または "スライス") に対して計算されます。 さらに、推論分析では、モデル ID ごとにメトリックが計算されます。 メトリック テーブルの詳細については、「メトリック テーブルの監視」を参照してください。
- プロファイル メトリック テーブルには、概要統計が含まれています。 「プロファイル メトリックテーブルのスキーマ」を参照してください。
 - 誤差メトリック テーブルには、時間の経過に伴うデータのドリフトに関連する統計情報が含まれています。 ベースライン テーブルが指定されている場合、基準値に対するドリフトも監視されます。 「ドリフト メトリック テーブルのスキーマ」を参照してください。
 
メトリック テーブルは Delta テーブルであり、指定した Unity Catalog スキーマに格納されます。 Databricks UI を使用してこれらのテーブルを表示し、Databricks SQL を使用してクエリを実行し、それらに基づいてダッシュボードとアラートを作成できます。
Databricks では、モニターの結果を視覚化して表示するのに役立つダッシュボードがモニターごとに自動的に作成されます。 ダッシュボードは完全にカスタマイズ可能です。 「ダッシュボード」を参照してください。
Databricks でレイクハウス監視の使用を開始する
開始するには、次の記事を参照してください:
- Databricks UI を使用してモニターを作成します。
 - API を使用してモニターを作成する。
 - メトリック テーブルの監視について理解します。
 - モニター ダッシュボードを操作します。
 - モニターに基づいて SQL アラートを作成します。
 - カスタム メトリックを使用します。
 - エンドポイントを提供するカスタム モデルを監視します。
 - 分類モデルの公平性と偏りを監視します。
 - Databricks レイクハウス監視 API のリファレンス資料を参照してください。
 - ノートブックの例。