次の方法で共有


システム テーブルを使用してアカウント アクティビティを監視する

この記事では、Azure Databricks のシステム テーブルの概念について説明し、システム テーブルのデータを最大限に活用するために使用できるリソースについて説明します。

システム テーブルとは?

システム テーブルは、system カタログで見つかるアカウントの運用データの、Azure Databricks がホストする分析ストアです。 システム テーブルは、アカウント全体の履歴監視に使用できます。

Note

system.information_schema のドキュメントについては、「情報スキーマ」をご覧ください。

要件

  • システム テーブルにアクセスするには、ワークスペースは、Unity Catalog に対して有効にする必要があります。 詳細については、「システム テーブル スキーマを有効にする」を参照してください。

  • システム テーブルは、以下のリージョンでは利用できません。

    • Azure 中国の地域
    • Azure Government リージョン
    • インド西部
    • スイス西部

使用できるシステム テーブルはどれですか?

現在、Azure Databricks は次のシステム テーブルをホストしています。

テーブル 説明 場所 ストリーミングをサポート 無料保持期間 グローバル データまたはリージョン データを含める
監査ログ (パブリック プレビュー) リージョン内のワークスペースからのすべての監査イベントのレコードが含まれます。 利用可能な監査イベントの一覧については、「診断ログ リファレンス」を参照してください。 system.access.audit はい 365 日 ワークスペースレベルのイベントのリージョン。 アカウントレベルのイベントのグローバル。
テーブル系列 (パブリック プレビュー) Unity Catalog テーブルまたはパスの読み取り/書き込みイベントごとに 1 つのレコードが含まれています。 system.access.table_lineage はい 365 日 地域
列の系列 (パブリック プレビュー) Unity Catalog 列の読み取りまたは書き込みイベントごとにレコードが含まれています (ただし、ソースを含まないイベントは含まれません)。 system.access.column_lineage はい 365 日 地域
課金対象使用状況 アカウント全体が課金対象のすべての使用状況のレコードが含まれています。 system.billing.usage はい 365 日 グローバル
料金 SKU 価格の履歴ログ。 レコードは、SKU 価格が変更されるたびに追加されます。 system.billing.list_prices いいえ 無制限 グローバル
クラスター (パブリック プレビュー) 任意のクラスターの時間の経過に伴うコンピューティング構成の全履歴を含む、ゆっくりと変化するディメンジョン テーブル。 system.compute.clusters はい 該当なし 地域
ノードのタイムライン (パブリック プレビュー) 汎用コンピューティング リソースとジョブ コンピューティング リソースの使用率メトリックをキャプチャします。 system.compute.node_timeline はい 30 日 地域
ノードの種類 (パブリック プレビュー) 現在使用可能なノードの種類と基本的なハードウェア情報を取得します。 system.compute.node_types いいえ 該当なし 地域
SQL ウェアハウス (パブリック プレビュー) すべての SQL ウェアハウスの構成の一定期間にわたる完全な履歴が含まれます。 system.compute.warehouses はい 365 日 地域
SQL ウェアハウス イベント (パブリック プレビュー) SQL ウェアハウスに関連するイベントをキャプチャします。 たとえば、開始、停止、実行、スケールアップ、スケールダウンです。 system.compute.warehouse_events はい 365 日 地域
ジョブ (パブリック プレビュー) アカウントで作成されたすべてのジョブを追跡します。 system.lakeflow.jobs はい 365 日 地域
ジョブ タスク (パブリック プレビュー) アカウントで実行されるすべてのジョブ タスクを追跡します。 system.lakeflow.job_tasks はい 365 日 地域
ジョブ実行タイムライン (パブリック プレビュー) ジョブ実行の開始時刻と終了時刻を追跡します。 system.lakeflow.

job_run_timeline
はい 365 日 地域
ジョブ タスクのタイムライン (パブリック プレビュー) ジョブ タスクの実行の開始時刻と終了時刻、およびその実行に使用されるコンピューティング リソースを追跡します。 system.lakeflow.

job_task_run_timeline
はい 365 日 地域
マーケットプレース ファネル イベント (パブリック プレビュー) 登録情報のコンシューマーの印象とファネルデータが含まれます。 system.marketplace.listing_

funnel_events
はい 365 日 地域
マーケットプレース登録情報へのアクセス (パブリック プレビュー) リスティング上の完了したデータ要求またはデータ取得イベントのコンシューマー情報が含まれています。 system.marketplace.listing_

access_events
はい 365 日 地域
予測最適化 (パブリック プレビュー) 予測最適化機能の操作履歴を追跡します。 system.storage.predictive_

optimization_operations_history
いいえ 180 日 地域
Databricks アシスタント イベント (パブリック プレビュー) Databricks アシスタントに送信されたユーザー メッセージを追跡します。 system.access.assistant_events いいえ 365 日 地域
Query History (パブリック プレビュー) SQL ウェアハウスで実行されるすべてのクエリのレコードをキャプチャします。 system.query.history はい 90 日間 地域
クリーン ルーム イベント (パブリック プレビュー) クリーン ルームに関連するイベントをキャプチャします。 system.access.clean_room_events はい 365 日 地域
エンドポイントの使用を提供するモデル (パブリック プレビュー) エンドポイントとその応答を提供するモデルに対する各要求のトークン数をキャプチャします。 この表のエンドポイントの使用状況をキャプチャするには、サービス エンドポイント 有効な使用状況の追跡を行う必要があります system.serving.endpoint_usage. はい 90 日間 地域
エンドポイント データを提供するモデル (パブリック プレビュー) モデルサービングエンドポイントにおいて、提供される各外部モデルのメタデータを格納する緩やかに変化するディメンションテーブル。 system.serving.served_entities はい 365 日 地域
ネットワーク アクセス イベント (パブリック プレビュー) アカウントからインターネット アクセスが拒否されるたびにイベントを記録するテーブル。 system.access.outbound_network はい 365 日 地域

請求対象の使用量と価格テーブルは無料で使用できます。 パブリック プレビューのテーブルもプレビュー期間中は無料で使用できますが、今後料金が発生する可能性があります。

Note

上記のシステム テーブル以外にも他のシステム テーブルも自分のアカウントで閲覧できます。 これらのテーブルは現在プライベート プレビューの段階にあり、既定で空になっています。 これらのテーブルのいずれかを使用する場合、Databricks アカウント チームにお問い合わせください。

システム テーブル スキーマを有効にする

システム テーブルは Unity Catalog によって管理されるため、システム テーブルを有効化してアクセスするには、Unity Catalog が管理するワークスペースがアカウントに少なくとも 1 つ必要です。 システム テーブルには、アカウント内のすべてのワークスペースのデータが含まれますが、アクセスできるのは Unity Catalog 対応ワークスペースのみです。

システム テーブルはスキーマ レベルで有効になります。 システム スキーマを有効にすると、そのスキーマ内のすべてのテーブルが有効になります。 新しいスキーマがリリースされると、アカウント管理者は手動でそのスキーマを有効にする必要があります。

システム テーブルは、アカウント管理者が有効にする必要があります。Databricks CLIsystem-schemas コマンドを使用するか、SystemSchemas APIを使用して、システム テーブルを有効にすることができます。

Note

billing スキーマは既定で有効になっています。 他のスキーマは手動で有効にする必要があります。

使用可能なシステム スキーマを一覧表示する

使用可能なシステム スキーマを一覧表示するには、次の curl コマンドを使用します。

curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"

以下に、GET コマンドの出力例を示します。

{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}

state: AVAILABLE: システム スキーマは使用できますが、まだ有効化されていません。

state: EnableCompleted: システム スキーマは有効化され、Catalog Explorer に表示されます。

システム スキーマを有効化する

システム スキーマを有効化するには、次の curl コマンドを使用します。

curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

システム スキーマが正常に有効化されている場合は、結果コード 200 が返されます。

システム スキーマを再度有効化しようとすると、"error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists" が返されます。

システム スキーマを無効化する

システム スキーマを無効化するには、次の curl コマンドを使用します。

curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

システム テーブルへのアクセスを許可する

システム テーブルのアクセスは、Unity Catalog で管理されます。 既定では、どのユーザーもこれらのシステムスキーマにアクセスできません。 アクセスを許可するには、メタストア管理者でありアカウント管理者でもあるユーザが、システムスキーマのUSESELECTに権限を与える必要があります。 「Unity Catalog の特権の管理」を参照してください。

システム テーブルは読み取り専用で、変更はできません。

Note

アカウントが 2023 年 11 月 9 日以降に作成された場合、既定ではメタストア管理者がいない可能性があります。 詳細については、「Unity Catalog の設定と管理」を参照してください。

システム テーブルには、アカウント内のすべてのワークスペースのデータが含まれていますか?

システム テーブルには、同じクラウド リージョン内にデプロイされたアカウント内のすべてのワークスペースの運用データが含まれます。 課金システム テーブルには、アカウント全体のデータが含まれています。

システム テーブルには Unity Catalog ワークスペース経由でのみアクセスできますが、テーブルには、アカウント内の Unity Catalog 以外のワークスペースの操作データも含まれます。

システムテーブルのデータはどこに保存されますか?

アカウントのシステム テーブル データは、メタストアと同じリージョンにある Azure Databricks でホストされるストレージ アカウントに格納されます。 データは Delta Sharing を使用して安全に共有されます。

各テーブルには、無料のデータ保持期間があります。 保持期間の延長については、Azure Databricks アカウント チームにお問い合わせください。

システム テーブルはカタログ エクスプローラーのどこにありますか?

アカウント内のシステム テーブルは、system と呼ばれるカタログにあります。これはすべての Unity Catalog メタストアに含まれています。 system カタログには、システム テーブルを含む accessbilling などのスキーマが表示されます。

システム テーブルのストリーミングに関する考慮事項

Azure Databricks は、Delta Sharing を使用してシステム テーブル データを顧客と共有します。 Delta Sharing を使用してストリーミングするときは、次の考慮事項に注意してください。

  • システム テーブルでストリーミングを使っている場合は、skipChangeCommits オプションを true に設定します。 このようにすると、ストリーミング ジョブがシステム テーブル内の削除によって中断されることがなくなります。 「更新と削除を無視する」を参照してください。
  • Delta Sharing ストリーミングでは、Trigger.AvailableNow はサポートされません。 これは、Trigger.Once に変換されます。

ストリーミング ジョブでトリガーを使用し、ジョブが最新のシステム テーブル バージョンに追従していないことがわかった場合、Databricks ではジョブのスケジュール頻度を増やすことをお勧めします。

ストリーミング システム テーブルから増分変更を読み取る

spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")

既知の問題

  • 現在、リアルタイム監視はサポートされていません。 データは 1 日を通して更新されます。 最近のイベントのログが表示されない場合は、後でチェックしてください。

  • システム テーブルを有効にするには、システム テーブル BLOB ストレージ エンドポイントへのネットワーク アクセスを許可することが必要な場合があります。 すべてのリージョンのシステム テーブルのストレージ エンドポイント一覧を表示する方法は、「ストレージ エンドポイントの IP アドレス」をご覧ください。

  • システム スキーマ system.operational_datasystem.lineage は非推奨であり、空のテーブルが含められます。

  • __internal_logging システム テーブル スキーマは、推論テーブルを使用したペイロードのログ記録をサポートするために使用します。 このスキーマはアカウント管理者に表示されますが、有効にすることはできません。顧客のワークフローには使用しないでください。