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