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

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

システムテーブルとは

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

注:

system.information_schemaのドキュメントについては、情報スキーマを参照してください。

要件

利用可能なシステムテーブル

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

テーブル

説明

場所

ストリーミングをサポート

無料保存期間

グローバルまたは地域データを含む

監査ログ (パブリック プレビュー)

Databricksアカウント全体のすべての監査イベントのレコードが含まれます。取得可能な監査イベントの一覧については、「監査ログのリファレンス」を参照してください。

system.access.audit

はい

365日

ワークスペースレベルのイベントの場合はリージョン。アカウントレベルのイベントの場合はグローバル。

Table リネージ (パブリック プレビュー)

Unity Catalogテーブルまたはパス上の各読み取りまたは書き込みイベントのレコードが含まれます。

system.access.table_lineage

はい

365日

リージョン

Column リネージ (Public Preview)

Unity Catalogの各読み取りまたは書き込みイベントのレコードが含まれます(ただし、ソースのないイベントは含まれません)。

system.access.column_lineage

はい

365日

リージョン

請求対象となる使用量

アカウント全体のすべての請求対象使用量のレコードが含まれます。各使用量レコードは、リソースの請求対象使用量を1時間ごとに集計したものです。

system.billing.usage

はい

365日

グローバル

価格プラン

SKU価格の履歴ログ。SKU価格が変更されるたびにレコードが追加されます。

system.billing.list_prices

いいえ

N/A

グローバル

クラスター (パブリック プレビュー)

任意のクラスターの時間の経過に伴うコンピュート構成の全履歴を含む、ゆっくりと変化するディメンションテーブル。

system.compute.clusters

はい

しない

リージョン

Node タイムライン (パブリック プレビュー)

汎用コンピュートリソースおよびジョブコンピュートリソースの使用状況メトリクスを取得します。

system.compute.node_timeline

はい

30日

リージョン

ノードの種類 (パブリック プレビュー)

現在利用可能なノードタイプと、その基本的なハードウェア情報をキャプチャします。

system.compute.node_types

いいえ

N/A

リージョン

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日

リージョン

Marketplace ファネル イベント (パブリック プレビュー)

リスティング用の消費者インプレッションとファネルデータが含まれます。

system.marketplace.listing_

funnel_events

はい

365日

リージョン

Marketplace 登録情報へのアクセス (パブリック プレビュー)

リスティング上の完了済みリクエストデータデータ取得イベントの消費者情報が含まれます。

system.marketplace.listing_

access_events

はい

365日

リージョン

Databricks Assistantイベント

(パブリック プレビュー)Databricks Assistant に送信されたユーザー メッセージを追跡します。

system.access.assistant_events

いいえ

365日

リージョン

クエリ履歴 (パブリック プレビュー)

SQLウェアハウスで実行されるすべてのクエリーのレコードをキャプチャします。

system.query.history

はい

90日

リージョン

モデルサービング endpoint usage (Public Preview)

モデルサービング エンドポイントへの各要求とその応答のトークン数をキャプチャします。 このテーブルでエンドポイントの使用状況をキャプチャするには、 配信エンドポイントで使用状況の追跡を有効にする必要があります

system.serving.endpoint_usage

はい

90日

リージョン

モデルサービング endpoint data (Public Preview)

モデルサービングエンドポイントに提供される各外部モデルのメタデータを格納する、ゆっくりと変化するディメンションテーブル。

system.serving.served_entities

はい

365日

リージョン

課金利用テーブルと価格テーブルは無料でご利用いただけます。 パブリック プレビューのテーブルもプレビュー中は無料で使用できますが、将来的には料金が発生する可能性があります。

注:

アカウントには、上記のもの以外にも、他のシステムテーブルが表示される場合があります。これらのテーブルは現在プライベートプレビュー段階であり、デフォルトでは空になっています。これらのテーブルの使用にご興味がある場合は、Databricksアカウントチームに連絡してください。

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

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

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

システムテーブルは、アカウント管理者が有効にする必要があります。 システムテーブルを有効にするにはsystem-schemasDatabricks CLIのコマンドを使用するか、SystemSchemas API.

注:

billingスキーマはデフォルトで有効になっています。その他のスキーマは手動で有効にする必要があります。

  • アカウントで利用可能かつ有効になっているスキーマを表示するには、システムスキーマ一覧表示APIを使用します。スキーマの状態は以下のいずれかです。

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

    • state: EnableCompleted: システムスキーマが有効になっており、カタログエクスプローラーに表示されます。

  • systemカタログにスキーマを追加するには、システムスキーマ有効化APIを使用します。

  • systemカタログからスキーマを削除するには、システムスキーマ無効化APIを使用します。

システムテーブルへのアクセス権を付与する

システムテーブルへのアクセスは、 Unity Catalogによって管理されます。 デフォルトでは、これらのシステムスキーマにアクセスできるユーザーはいません。 アクセス権を付与するには、メタストア管理者とアカウント管理者の両方であるユーザーが、システム スキーマに対する USE 権限と SELECT 権限を付与する必要があります。 「Unity Catalog での特権の管理」を参照してください。

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

注:

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

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

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

システムテーブルには Unity Catalog ワークスペースからのみアクセスできますが、テーブルにはアカウント内の非Unity Catalog ワークスペースの運用データも含まれています。

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

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

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

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

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

ストリーミングシステムテーブルに関する注意事項

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

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

  • Trigger.AvailableNow は、Delta Sharingストリーミングではサポートされません。これはTrigger.Onceに変換されます。

ストリーミングジョブでトリガーを使用していて、そのジョブが最新のシステムテーブルバージョンに対応していないことがわかった場合は、スケジュール設定しているそのジョブの頻度を増やすことを推奨します。

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

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

既知の問題

  • 現在、リアルタイムモニタリングはサポートされていません。データは終日にわたって更新されます。最近のイベントのログが表示されない場合は、後でもう一度確認してください。