システムテーブルでアカウントアクティビティを監視する
この記事では、Databricksのシステムテーブルの概念を説明し、システムテーブルデータを最大限に活用するために使用できるリソースを紹介します。
システムテーブルとは
システムテーブルは、system
カタログにある、Databricksがホストするアカウントの運用データの分析ストアです。システムテーブルは、アカウント全体の履歴の確認に使用できます。
注:
system.information_schema
のドキュメントについては、情報スキーマを参照してください。
要件
システムテーブルにアクセスするには、ワークスペースでUnity Catalogが有効になっている必要があります。詳細については、「システムテーブルスキーマを有効にする」を参照してください。
システムテーブル GCP プロジェクト番号と ID については、「 Private サービス Connect (PSC) 添付ファイル URI とプロジェクト番号」を参照してください。
利用可能なシステムテーブル
現在、Databricksは次のシステムテーブルをホストしています。
テーブル |
説明 |
場所 |
ストリーミングをサポート |
無料保存期間 |
グローバルまたは地域データを含む |
---|---|---|---|---|---|
監査ログ (パブリック プレビュー) |
Databricksアカウント全体のすべての監査イベントのレコードが含まれます。取得可能な監査イベントの一覧については、「監査ログのリファレンス」を参照してください。 |
|
はい |
365日 |
ワークスペースレベルのイベントの場合はリージョン。アカウントレベルのイベントの場合はグローバル。 |
Table リネージ (パブリック プレビュー) |
Unity Catalogテーブルまたはパス上の各読み取りまたは書き込みイベントのレコードが含まれます。 |
|
はい |
365日 |
リージョン |
Column リネージ (Public Preview) |
Unity Catalogの各読み取りまたは書き込みイベントのレコードが含まれます(ただし、ソースのないイベントは含まれません)。 |
|
はい |
365日 |
リージョン |
アカウント全体のすべての請求対象使用量のレコードが含まれます。各使用量レコードは、リソースの請求対象使用量を1時間ごとに集計したものです。 |
|
はい |
365日 |
グローバル |
|
SKU価格の履歴ログ。SKU価格が変更されるたびにレコードが追加されます。 |
|
いいえ |
N/A |
グローバル |
|
クラスター (パブリック プレビュー) |
任意のクラスターの時間の経過に伴うコンピュート構成の全履歴を含む、ゆっくりと変化するディメンションテーブル。 |
|
はい |
しない |
リージョン |
Node タイムライン (パブリック プレビュー) |
汎用コンピュートリソースおよびジョブコンピュートリソースの使用状況メトリクスを取得します。 |
|
はい |
30日 |
リージョン |
ノードの種類 (パブリック プレビュー) |
現在利用可能なノードタイプと、その基本的なハードウェア情報をキャプチャします。 |
|
いいえ |
N/A |
リージョン |
SQLウェアハウス (パブリック プレビュー) |
任意の SQLウェアハウスの経時的な構成の完全な履歴が含まれています。 |
|
はい |
365日 |
リージョン |
SQLウェアハウス イベント (パブリック プレビュー) |
SQLウェアハウスに関連するイベント(開始、停止、実行、スケールアップ、スケールダウンなど)をキャプチャします。 |
|
はい |
365日 |
リージョン |
アカウントで作成されたすべてのジョブを追跡します。 |
|
はい |
365日 |
リージョン |
|
ジョブ タスク (パブリック プレビュー) |
アカウントで実行されるすべてのジョブタスクを追跡します。 |
|
はい |
365日 |
リージョン |
ジョブ実行タイムライン (パブリック プレビュー) |
ジョブ実行の開始時刻と終了時刻を追跡します。 |
|
はい |
365日 |
リージョン |
ジョブ タスク タイムライン (パブリック プレビュー) |
ジョブ実行タスクに使用される開始時刻と終了時刻、およびコンピュートリソースを追跡します。 |
|
はい |
365日 |
リージョン |
Marketplace ファネル イベント (パブリック プレビュー) |
リスティング用の消費者インプレッションとファネルデータが含まれます。 |
|
はい |
365日 |
リージョン |
Marketplace 登録情報へのアクセス (パブリック プレビュー) |
リスティング上の完了済みリクエストデータやデータ取得イベントの消費者情報が含まれます。 |
|
はい |
365日 |
リージョン |
(パブリック プレビュー)Databricks Assistant に送信されたユーザー メッセージを追跡します。 |
|
いいえ |
365日 |
リージョン |
|
クエリ履歴 (パブリック プレビュー) |
SQLウェアハウスで実行されるすべてのクエリーのレコードをキャプチャします。 |
|
はい |
90日 |
リージョン |
モデルサービング endpoint usage (Public Preview) |
モデルサービング エンドポイントへの各要求とその応答のトークン数をキャプチャします。 このテーブルでエンドポイントの使用状況をキャプチャするには、 配信エンドポイントで使用状況の追跡を有効にする必要があります。 |
|
はい |
90日 |
リージョン |
モデルサービング endpoint data (Public Preview) |
モデルサービングエンドポイントに提供される各外部モデルのメタデータを格納する、ゆっくりと変化するディメンションテーブル。 |
|
はい |
365日 |
リージョン |
課金利用テーブルと価格テーブルは無料でご利用いただけます。 パブリック プレビューのテーブルもプレビュー中は無料で使用できますが、将来的には料金が発生する可能性があります。
注:
アカウントには、上記のもの以外にも、他のシステムテーブルが表示される場合があります。これらのテーブルは現在プライベートプレビュー段階であり、デフォルトでは空になっています。これらのテーブルの使用にご興味がある場合は、Databricksアカウントチームに連絡してください。
システムテーブルスキーマを有効にする
システムテーブルはUnity Catalogによって管理されるため、システムテーブルを有効にしてアクセスするには、アカウントに少なくとも1つのUnity Catalog対応ワークスペースが必要です。システムテーブルには、アカウント内のすべてのワークスペースのデータが含まれますが、Unity Catalog対応のワークスペースからしかアクセスできません。
システムテーブルはスキーマレベルで有効になります。システムスキーマを有効にすると、そのスキーマ内のすべてのテーブルが有効になります。新しいスキーマがリリースされた場合、アカウント管理者は手動でスキーマを有効にする必要があります。
システムテーブルは、アカウント管理者が有効にする必要があります。 システムテーブルを有効にするにはsystem-schemas
Databricks 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
カタログには、システムテーブルがあるaccess
やbilling
などのスキーマが表示されます。
ストリーミングシステムテーブルに関する注意事項
DatabricksはDelta Sharingを使用してシステムテーブルデータを顧客と共有します。Delta Sharingを使用してストリーミングする場合は、次の点に注意してください。
システムテーブルでストリーミングを使用している場合は、
skipChangeCommits
オプションをtrue
に設定します。これにより、システムテーブル内の削除によってストリーミングジョブが中断されないようにします。詳しくは、「更新と削除を無視する」を参照してください。Trigger.AvailableNow
は、Delta Sharingストリーミングではサポートされません。これはTrigger.Once
に変換されます。
ストリーミングジョブでトリガーを使用していて、そのジョブが最新のシステムテーブルバージョンに対応していないことがわかった場合は、スケジュール設定しているそのジョブの頻度を増やすことを推奨します。