This product is not supported for your selected
Datadog site. (
).
概要
Databricks インテグレーションは、Datadog を Databricks ワークスペースに接続し、メタデータとテーブルレベルのメトリクスを同期します。これを使用して、データの鮮度を監視し、異常を検出し、データスタック全体のリネージをトレースします。
注: 以下の手順は Quality Monitoring 用です。Jobs Monitoring については、Databricks の Data Observability: Jobs Monitoring を有効にする を参照してください。
前提条件
Databricks ワークスペースで IP によるネットワークアクセス制限を行っている場合は、Datadog Webhook の IP を許可リストに追加してください。IP のリストについては、webhooks セクション ( IP ranges list) を参照してください。
Databricks でアカウントをセットアップする
ステップ 1 - Databricks インテグレーションタイルを接続する
Datadog インテグレーションタイルを使用して、Databricks インテグレーションドキュメント のインストール手順を完了します。サービスプリンシパルのアプリケーション ID をメモし、後で参照できるよう安全な場所に保存してください。
注: Quality Monitoring にはワークスペース管理者の権限は必要ありません。
インテグレーションを構成する際、Data Observability トグルをオンにします。
Save Databricks Workspace をクリックします。
ステップ 2 - アクセス権を付与する
Databricks で SQL Editor を開き、以下のコマンドを実行します。<application_id> が表示される箇所ではすべて、サービスプリンシパルの表示名ではなく、アプリケーション (クライアント) ID を使用してください。
まず、リネージのためにシステムスキーマへのアクセス権を付与します。
GRANT USE CATALOG ON CATALOG system TO `<application_id>`;
GRANT USE SCHEMA ON CATALOG system TO `<application_id>`;
GRANT SELECT ON CATALOG system TO `<application_id>`;
これらの権限は、クエリ履歴システムテーブル (system.query.history) を含む system カタログ全体を対象としています。Datadog はこのテーブルからクエリ履歴を読み取り、テーブル間のリネージを構築し、それらに対して実行されているクエリの可視性を提供します。そのテーブル内のクエリテキストを読み取るには、サービスプリンシパルにも ステップ 3 で説明されているグループメンバーシップが必要です。
次に、監視対象データのスコープに対して読み取り専用アクセス権を付与します。
よりシンプルなセットアップには、カタログへのフルアクセスオプションを使用してください。これにより、権限を更新することなく、将来作成されるテーブルも自動的に含まれます。
GRANT USE CATALOG ON CATALOG <catalog_name> TO `<application_id>`;
GRANT USE SCHEMA ON CATALOG <catalog_name> TO `<application_id>`;
GRANT SELECT ON CATALOG <catalog_name> TO `<application_id>`;
最小権限でのアクセスが必要な場合、またはデータの一部のみを監視する必要がある場合は、特定のテーブルオプションを使用してください。新しいテーブルを追加する際は、権限を更新する必要があります。
GRANT USE CATALOG ON CATALOG <catalog_name> TO `<application_id>`;
GRANT USE SCHEMA ON SCHEMA <catalog_name>.<schema_name> TO `<application_id>`;
GRANT SELECT ON TABLE <catalog_name>.<schema_name>.<table_name> TO `<application_id>`;
これらの権限は、以下の理由で必要です。
GRANT USE CATALOG は、カタログ内を移動してスキーマを検出するために必要です。GRANT USE SCHEMAは、テーブルを列挙してスキーマレベルの健全性を監視するために必要です。GRANT SELECTは、カスタム SQL やディストリビューションチェックなどのデータ品質監視に必要です。
ステップ 3 - クエリテキストへのアクセス権を付与する
Databricks は、アカウント管理者または databricks_pii_access アカウントレベルグループのメンバーではないプリンシパルに対して、SQL クエリテキストをマスクします。マスクされたプリンシパルの場合、クエリテキストは <Redacted> の statement_text 列、Query History API、List Queries API、および SQL ステートメントテキストをキャプチャする監査ログイベントにおいて、system.query.history として返されます。
クエリテキストを読み取る以下の機能を使用するには、サービスプリンシパルを databricks_pii_access に追加してください。
- データリネージ: Databricks クエリ履歴からクエリテキストをパースすることで補完されます。
- Databricks サーバーレスジョブ監視: Datadog Agent がクラスター上で実行されない サーバーレスコンピューティング で実行されるジョブを監視します。
- SQL ウェアハウスとクエリの監視: SQL ウェアハウスで実行されているクエリの視覚化、および Datadog によって生成された最適化の推奨事項。
鮮度、行数、列統計などのテーブルレベルのメトリクスは、クエリテキストではなくテーブルデータとメタデータを読み取るため、このメンバーシップがなくても機能します。
ステップ 2 の system カタログ権限に加えて、グループメンバーシップが必要です。グループには属しているものの、SELECT が CATALOG system にないプリンシパルは、クエリ履歴を読み取ることができません。
グループを作成し、サービスプリンシパルを追加するには、以下の手順を実行します。
databricks_pii_access グループはデフォルトでは Databricks アカウントに存在せず、ワークスペース管理者が自動的にメンバーになることもありません。大文字と小文字を区別する正確な名前 databricks_pii_access で作成してください。- SCIM または外部 ID プロバイダーでグループを管理していない場合は、Account Console > User Management > Groups > Add Group に移動します。
- SCIM または外部 ID プロバイダーでグループを管理している場合は、代わりにそこでグループを作成してください。
- ステップ 1 のサービスプリンシパルをグループに追加します。
詳細については、アカウントレベルのグループの管理 に関する Databricks のドキュメントを参照してください。
次のステップ
インテグレーションを設定すると、Datadog はバックグラウンドでメタデータと列レベルのリネージの同期を開始します。初期同期には、Databricks デプロイメントのサイズに応じて数時間かかる場合があります。
初期同期が完了したら、Data Observability モニター を作成して、鮮度、行数、列レベルのメトリクス、およびカスタム SQL メトリクスに関するアラートの通知を開始します。
参考資料