システムテーブルでアカウントアクティビティを監視する
この記事では、Databricksのシステムテーブルの概念を説明し、システムテーブルデータを最大限に活用するために使用できるリソースを紹介します。
システムテーブルとは
システムテーブルは、system
カタログにある、Databricksがホストするアカウントの運用データの分析ストアです。システムテーブルは、アカウント全体の履歴の確認に使用できます。
system.information_schema
のドキュメンテーションについては、情報スキーマを参照してください。
必要条件
-
システムテーブルにアクセスするには、ワークスペースが Unity Catalogに対して有効になっている必要があります。 詳細については、「 システムテーブル スキーマを有効にする」を参照してください。
-
システムテーブルはAWS GovCloudリージョンでは使用できません。
どのシステムテーブルを使用できますか?
現在、Databricksは次のシステムテーブルをホストしています。
TABLE | 説明 | 場所 | ストリーミングをサポート | 無料保存期間 | グローバルまたは地域データを含む |
---|---|---|---|---|---|
監査ログ (パブリック プレビュー) | リージョン内のワークスペースからのすべての監査イベントのレコードが含まれます。 使用可能な監査イベントの一覧については、「 監査ログのリファレンス」を参照してください。 |
| あり | 365日 | ワークスペースレベルのイベントの場合はリージョン。アカウントレベルのイベントの場合はグローバル。 |
Table リネージ (パブリック プレビュー) | Unity Catalogテーブルまたはパス上の各読み取りまたは書き込みイベントのレコードが含まれます。 |
| あり | 365日 | リージョン |
Column リネージ (Public Preview) | Unity Catalogの各読み取りまたは書き込みイベントのレコードが含まれます(ただし、ソースのないイベントは含まれません)。 |
| あり | 365日 | リージョン |
アカウント全体のすべての請求対象使用量のレコードが含まれます。 |
| あり | 365日 | グローバル | |
SKU価格の履歴ログ。SKU価格が変更されるたびにレコードが追加されます。 |
| いいえ | 無制限 | グローバル | |
クラスター (パブリック プレビュー) | 任意のクラスターの時間の経過に伴うコンピュート構成の全履歴を含む、ゆっくりと変化するディメンションテーブル。 |
| あり | 365日 | リージョン |
Node タイムライン (パブリック プレビュー) | 汎用コンピュートリソースおよびジョブコンピュートリソースの使用状況メトリクスを取得します。 |
| あり | 30日 | リージョン |
ノードの種類 (パブリック プレビュー) | 現在利用可能なノードタイプと、その基本的なハードウェア情報をキャプチャします。 |
| いいえ | N/A | リージョン |
SQLウェアハウス (パブリック プレビュー) | 任意の SQLウェアハウスの経時的な構成の完全な履歴が含まれています。 |
| あり | 365日 | リージョン |
SQLウェアハウス イベント (パブリック プレビュー) | SQLウェアハウスに関連するイベントをキャプチャします。例えば、スタート、ストップ、実行、スケールアップ、スケールダウンなど。 |
| あり | 365日 | リージョン |
ジョブ (パブリック プレビュー) | アカウントで作成されたすべてのジョブを追跡します。 |
| あり | 365日 | リージョン |
ジョブ タスク (パブリック プレビュー) | アカウントで実行されるすべてのジョブタスクを追跡します。 |
| あり | 365日 | リージョン |
ジョブ実行タイムライン (パブリック プレビュー) | ジョブ実行の開始時刻と終了時刻を追跡します。 |
| あり | 365日 | リージョン |
ジョブ タスク タイムライン (パブリック プレビュー) | ジョブタスクの実行に使用される開始時刻と終了時刻、およびコンピュートリソースを追跡します。 |
| あり | 365日 | リージョン |
Marketplace ファネル イベント (パブリック プレビュー) | リスティング用の消費者インプレッションとファネルデータが含まれます。 |
| あり | 365日 | リージョン |
Marketplace 登録情報へのアクセス (パブリック プレビュー) | リスティング上の完了済み リクエストデータ や データ取得 イベントの消費者情報が含まれます。 |
| あり | 365日 | リージョン |
予測的最適化 (Public Preview) | 予測的最適化機能の操作履歴を追跡します。 |
| いいえ | 180日 | リージョン |
Databricks Assistant イベント (パブリック プレビュー) | Databricks Assistantに送信されたユーザーメッセージを追跡します。 |
| いいえ | 365日 | リージョン |
クエリ履歴 (パブリック プレビュー) | SQLウェアハウスとサーバレス コンピュートで実行されたすべてのクエリのレコードをキャプチャします。ノートブックとジョブの場合。 |
| いいえ | 90日 | リージョン |
クリーンルームイベント (パブリックプレビュー) | クリーンルームに関連するイベントをキャプチャします。 |
| あり | 365日 | リージョン |
モデルサービング endpoint usage (Public Preview) | モデルサービング エンドポイントへの各要求とその応答のトークン数をキャプチャします。 このテーブルでエンドポイントの使用状況をキャプチャするには、 配信エンドポイントで使用状況の追跡を有効にする必要があります。 |
| あり | 90日 | リージョン |
モデルサービング endpoint data (Public Preview) | モデルサービングエンドポイントに提供される各基盤モデルのメタデータを格納する、ゆっくりと変化するディメンションテーブル。 |
| あり | 365日 | リージョン |
ネットワーク アクセス イベント (パブリック プレビュー) | アカウントからのインターネットアクセスが拒否されるたびにイベントを記録するテーブル。 |
| あり | 365日 | リージョン |
課金利用テーブルと価格テーブルは無料でご利用いただけます。 パブリック プレビューのテーブルもプレビュー中は無料で使用できますが、将来的には料金が発生する可能性があります。
アカウントには、上記のシステムテーブル以外にもシステムテーブルが表示される場合があります。 これらのテーブルは現在プライベート プレビュー段階であり、デフォルトによって空です。 これらのテーブルの使用に関心がある場合は、Databricks アカウント チームにお問い合わせください。
システムテーブル リレーションシップ
次のエンティティ関係図は、現在使用可能なシステムテーブルが相互にどのように関連しているかを示しています。 この図は、各テーブルのプライマリ・キーと外部キーを示しています。
システムテーブルスキーマの有効化
システムテーブルはUnity Catalogによって管理されるため、システムテーブルを有効にしてアクセスするには、アカウントに少なくとも1つのUnity Catalog対応ワークスペースが必要です。システムテーブルには、アカウント内のすべてのワークスペースのデータが含まれますが、Unity Catalog対応のワークスペースからしかアクセスできません。
システムテーブルはスキーマレベルで有効になります。システムスキーマを有効にすると、そのスキーマ内のすべてのテーブルが有効になります。新しいスキーマがリリースされた場合、アカウント管理者は手動でスキーマを有効にする必要があります。
システムテーブルは、アカウント管理者が有効にする必要があります。 システムテーブルを有効にするにはsystem-schemas
Databricks CLIコマンドを使用するか、SystemSchemas API.
billing
スキーマはデフォルトで有効になっています。その他のスキーマは手動で有効にする必要があります。
使用可能なシステムスキーマのリスト
次の CLI コマンドを使用して、アカウント内のすべてのシステムスキーマを一覧表示します。
databricks system-schemas list METASTORE_ID
list
コマンドは、アカウント内の使用可能なシステムスキーマを記述するオブジェクトの配列を返します。例えば:
{
"schema": "access",
"state": "AVAILABLE"
}
state: AVAILABLE
: システム スキーマは使用可能ですが、まだ有効になっていません。state: ENABLED COMPLETE
: システムスキーマを有効にし、カタログエクスプローラーに表示されています。
システムスキーマの有効化
次の CLI コマンドを使用して、システムスキーマを有効にします。
databricks system-schemas enable METASTORE_ID SCHEMA_NAME
システムスキーマの無効化
次の CLI コマンドを使用して、システムスキーマを無効にします。
databricks system-schemas disable METASTORE_ID SCHEMA_NAME
システムテーブルへのアクセス権の付与
システムテーブルへのアクセスは、 Unity Catalogによって管理されます。 デフォルトでは、これらのシステムスキーマにアクセスできるユーザーはいません。 アクセス権を付与するには、メタストア管理者とアカウント管理者の両方であるユーザーが、システム スキーマに対する USE
権限と SELECT
権限を付与する必要があります。 「Unity Catalog での特権の管理」を参照してください。
システムテーブルは読み取り専用で、変更できません。
アカウントが 2023 年 11 月 8 日以降に作成された場合、デフォルトではメタストア管理者がいない可能性があります。 詳しくは、「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
に変換されます。
ストリーミングジョブでトリガーを使用していて、そのジョブが最新のシステムテーブルバージョンに対応していないことがわかった場合は、スケジュール設定しているそのジョブの頻度を増やすことを推奨します。
Read incremental changes from ストリーミング システムテーブル
spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")
既知の問題
-
現在、リアルタイムモニタリングはサポートされていません。データは終日にわたって更新されます。最近のイベントのログが表示されない場合は、後でもう一度確認してください。
-
__internal_logging
システムテーブルスキーマは、外部モデルとプロビジョニングされたスループットワークロードの AI Gateway 対応推論テーブルを使用したペイロードロギングをサポートするために使用されます。このスキーマはアカウント管理者に表示されますが、有効にすることはできず、顧客のワークフローには使用しないでください。 -
ワークスペースで顧客管理VPCを使用している場合、ログが保存されているS3バケットへのアクセスが拒否される可能性があります。その場合は、 VPC エンドポイントポリシー を更新して、リージョンのシステムテーブルデータが保存されている S3 バケットへのアクセスを許可する必要があります。 リージョン別バケット名のリストについては、「ストレージバケットアドレステーブル」の 「 システムテーブル」バケット 列を参照してください。
-
システムスキーマ
system.operational_data
およびsystem.lineage
は非推奨であり、内容は空のテーブルになります。