システムテーブル参照
Databricks は、機密データが公開されたり、デプロイメントが危険にさらされたりする可能性があるため、このデータをプラットフォーム外に移動することはお勧めしません。システムテーブル情報の性質上、エクスポートされたシステムテーブル情報のセキュリティ確保と悪用防止は、お客様の責任であることをご留意ください。
システムテーブルは、Databricksがホストする、お客様のアカウントの運用データの分析用ストアを提供します。これらを使用して、コストの監視、セキュリティ イベントの監査、コンピュートとジョブのパフォーマンスの追跡、データとAIワークロードの観察を行います。
システムテーブルとは
システムテーブルは、systemカタログにあるアカウントの運用データのDatabricksホスト型分析ストアです。システムテーブルは、アカウント全体の履歴オブザーバビリティに使用できます。
情報スキーマ テーブル ( system.information_schema ) は、他のシステム テーブルとは動作が異なります。 情報スキーマを参照してください。
必要条件
-
システムテーブルにアクセスするには、ワークスペースでUnity Catalog有効になっている必要があります。 詳細については、 「システムテーブルを有効にする」を参照してください。
-
システムテーブル GCP プロジェクト番号と ID については、「 Private Service Connect (PSC) 添付ファイル URI とプロジェクト番号」を参照してください。
どのシステムテーブルを使用できますか?
現在、Databricksは次のシステムテーブルをホストしています。
テーブル | 説明 | ストリーミングをサポート | 無料保存期間 | グローバルまたは地域データを含む |
|---|---|---|---|---|
アラート構成(パブリックプレビュー) | 時間の経過に伴うすべてのアラートの構成をキャプチャする、変化の遅いディメンションテーブル。 テーブルパス : | いいえ | 365日 | リージョン |
アラート評価履歴 (パブリック プレビュー) | アラート評価ごとに1行を記録し、評価された状態と通知の配信ステータスを含めます。 テーブルパス : | いいえ | 365日 | リージョン |
監査ログ (パブリック プレビュー) | リージョン内のワークスペースからのすべての監査イベントのレコードが含まれます。 使用可能な監査イベントの一覧については、「 監査ログのリファレンス」を参照してください。 テーブルパス : | あり | 365日 | ワークスペースレベルのイベントの場合はリージョン。アカウントレベルのイベントの場合はグローバル。 |
アカウント全体のすべての請求対象使用量のレコードが含まれます。 テーブルパス : | あり | 365日 | グローバル | |
クリーンルームイベント (パブリックプレビュー) | クリーンルームに関連するイベントをキャプチャします。 テーブルパス : | あり | 365日 | リージョン |
任意のクラスターの時間の経過に伴うコンピュート構成の全履歴を含む、ゆっくりと変化するディメンションテーブル。 | あり | 365日 | リージョン | |
Unity Catalogの各読み取りまたは書き込みイベントのレコードが含まれます(ただし、ソースのないイベントは含まれません)。 テーブルパス : | あり | 365日 | リージョン | |
データ分類結果(パブリックプレビュー) | メタストア内の有効なカタログ全体にわたって、機密データ クラスの列レベルの検出を保存します。 テーブルパス : | いいえ | 13ヶ月 | リージョン |
データ品質モニタリングの結果(パブリック プレビュー) | データ品質モニタリングチェックの結果(鮮度、完全性)およびダウンストリームへの影響を含むインシデント情報を、メタストア内の有効なテーブル全体で保存します。 テーブルパス : | いいえ | 不定 | リージョン |
管理タグ (ベータ) | アカウント内のすべての管理タグ定義(顧客によって作成されたタグおよびシステム生成タグを含む)の、バージョン管理されたレコードが含まれています。 テーブルパス : | いいえ | 365日 | グローバル |
Genie Code イベント(パブリック プレビュー) | Genie Code に送信されたユーザー メッセージを追跡します。 テーブルパス : | いいえ | 365日 | リージョン |
Unity Gatewayの使用状況(パブリックプレビュー) | トークン使用量、レイテンシー、パフォーマンスメトリクス、ルーティング情報など、Unity Gatewayモデルサービスの要求および応答の詳細をキャプチャします。 テーブルパス : | あり | 365日 | リージョン |
Unity Gatewayの外部モデル利用料(ベータ版) | モデルプロバイダーサービスを介して外部モデルにルーティングされたリクエストの推定USD支出を記録します。 テーブルパス : | いいえ | 365日 | リージョン |
ビュー、マテリアライズドビュー、ストリーミングテーブル共有から作成されたデータマテリアライズイベントをキャプチャします。 テーブルパス : | あり | 365日 | ワークスペースレベルのイベントの場合はリージョン。 | |
インスタンスイベント(パブリックプレビュー) | クラシック コンピュート インスタンスの状態遷移をキャプチャします。 テーブルパス : | あり | 365日 | リージョン |
インスタンスプール(パブリックプレビュー) | インスタンスプール構成の履歴全体を含む、変化の緩やかなディメンションテーブル。 テーブルパス : | あり | 365日 | リージョン |
ジョブ実行の開始時刻と終了時刻を追跡します。 テーブルパス : | あり | 365日 | リージョン | |
ジョブタスクの実行に使用される開始時刻と終了時刻、およびコンピュートリソースを追跡します。 テーブルパス : | あり | 365日 | リージョン | |
アカウントで実行されるすべてのジョブタスクを追跡します。 テーブルパス : | あり | 365日 | リージョン | |
アカウントで作成されたすべてのジョブを追跡します。 テーブルパス : | あり | 365日 | リージョン | |
Marketplace ファネル イベント (パブリック プレビュー) | リスティング用の消費者インプレッションとファネルデータが含まれます。 テーブルパス : | あり | 365日 | リージョン |
Marketplace 登録情報へのアクセス (パブリック プレビュー) | リスティング上の完了済み リクエストデータ や データ取得 イベントの消費者情報が含まれます。 テーブルパス : | あり | 365日 | リージョン |
エクスペリメント メタデータの追跡MLflow (パブリック プレビュー) | 各行は、 Databricks管理 MLflow システムで作成されたエクスペリメントを表します。 テーブルパス : | あり | 180日 | リージョン |
MLflow 追跡実行メタデータ (パブリック プレビュー) | 各行は、Databricks で管理される MLflow システムで作成された実行を表します。 テーブルパス : | あり | 180日 | リージョン |
MLflow tracking 実行 メトリクス (パブリック プレビュー) | 特定のモデル トレーニング、評価、またはエージェント開発に関連付けられた MLflow に記録された時系列 メトリクス を保持します。 テーブルパス : | あり | 180日 | リージョン |
モデルサービングエンドポイントのデータ (Public Preview) | モデルサービングエンドポイントに提供される各基盤モデルのメタデータを格納する、変化の遅いディメンションテーブル。 テーブルパス : | あり | 365日 | リージョン |
モデルサービングエンドポイントの使用量 (Public Preview) | モデルサービング エンドポイントへの各要求とその応答のトークン数をキャプチャします。 このテーブルでエンドポイントの使用状況をキャプチャするには、 配信エンドポイントで使用状況の追跡を有効にする必要があります。 テーブルパス : | あり | 90日 | リージョン |
ネットワーク アクセス イベント (受信) (パブリック プレビュー) | ワークスペースへのインバウンド アクセスがイングレス ポリシーによって拒否されるたびにイベントを記録するテーブル。 テーブルパス : | あり | 30日 | リージョン |
ネットワーク アクセス イベント (送信) (パブリック プレビュー) | アカウントからの発信インターネット アクセスが拒否されるたびにイベントを記録するテーブル。 テーブルパス : | あり | 365日 | リージョン |
汎用コンピュートリソースおよびジョブコンピュートリソースの使用状況メトリクスを取得します。 テーブルパス : | あり | 90日 | リージョン | |
現在利用可能なノードタイプと、その基本的なハードウェア情報をキャプチャします。 テーブルパス : | いいえ | 不定 | リージョン | |
パイプラインイベント(ベータ版) | お使いのリージョンにおけるLakeFlow Pipelinesのイベントログエントリ(ライフサイクルの移行、フローの進捗状況、データ品質メトリクス、エラーなど)を記録します。 テーブルパス : | あり | 365日 | リージョン |
パイプライン更新タイムライン(パブリック プレビュー) | パイプラインの更新に使用される開始時間と終了時間、およびコンピュート リソースを追跡します。 テーブルパス : | あり | 365日 | リージョン |
パイプライン (パブリック プレビュー) | アカウントで作成されたすべてのパイプラインを追跡します。 テーブルパス : | あり | 365日 | リージョン |
自動アップグレード (パブリック プレビュー) | Unity Catalog マネージドテーブルに対して自動アップグレードによって実行される機能有効化操作の履歴を追跡します。 テーブルパス : | いいえ | 180日 | リージョン |
予測的最適化 (Public Preview) | 予測的最適化機能の操作履歴を追跡します。 テーブルパス : | いいえ | 180日 | リージョン |
SKU価格の履歴ログ。SKU価格が変更されるたびにレコードが追加されます。 テーブルパス : | いいえ | 不定 | グローバル | |
クエリ履歴 (パブリック プレビュー) | SQLウェアハウスとサーバレス コンピュートで実行されたすべてのクエリのレコードをキャプチャします。ノートブックとジョブの場合。 テーブルパス : | いいえ | 365日 | リージョン |
SQLウェアハウスに関連するイベントをキャプチャします。例えば、スタート、ストップ、実行、スケールアップ、スケールダウンなど。 テーブルパス : | あり | 365日 | リージョン | |
任意の SQLウェアハウスの経時的な構成の完全な履歴が含まれています。 テーブルパス : | あり | 365日 | リージョン | |
Unity Catalogテーブルまたはパス上の各読み取りまたは書き込みイベントのレコードが含まれます。 テーブルパス : | あり | 365日 | リージョン | |
ワークスペース (パブリック プレビュー) | workspaces_latest テーブルは、アカウント内のすべてのワークスペースのメタデータのゆっくりと変化するディメンション テーブルです。 テーブルパス : | いいえ | 不定 | グローバル |
Zerobus Ingest(ストリーム) (ベータ版) | Zerobus Ingest の使用によって発生したストリーム イベントに関連するすべてのデータを格納するテーブル。 テーブルパス : | あり | 365日 | リージョン |
Zerobus Ingest(取り込み) (ベータ版) | Zerobus Ingest を使用して取り込まれたレコードに関連するすべてのデータを格納するテーブル。 テーブルパス : | あり | 365日 | リージョン |
システムテーブルは無料で利用できます。クエリーに使用されたコンピュートに対してのみ課金されます。
上記以外にも、アカウント内に他のシステムテーブルが表示される場合があります。 これらのテーブルは現在プライベート プレビュー段階にあり、デフォルトでは空になっています。これらのテーブルのいずれかの使用にご興味がある場合は、Databricks アカウント チームにお問い合わせください。
システムテーブル リレーションシップ
次のエンティティ関係図は、現在利用可能なシステム テーブル システムが相互にどのように関係しているかを概説しています。 この図は、各テーブルの主キーと外部キーを強調表示しています。
システムテーブルを有効にする
システムテーブルはUnity Catalogによって管理されているため、アカウントのシステムテーブルを有効にするには、アカウント内にUnity Catalog対応のワークスペースが少なくとも 1 つ必要です。 システムテーブルには、アカウント内のすべてのワークスペースからのデータが含まれていますが、Unity カタログが有効になっているワークスペースからのみアクセスできます。
システムテーブルへのアクセス権の付与
システムテーブルへのアクセスはUnity Catalogによって管理されます。アカウント管理者ロールとメタストア管理者ロールの両方を持つユーザーは、デフォルトでシステムテーブルにアクセスできます。他のユーザーがシステムテーブルをクエリできるようにするには、管理者は、ユーザーにシステムカタログに対するUSE CATALOG権限、システムスキーマに対するUSE SCHEMA権限、およびシステムスキーマに対するSELECT権限を付与する必要があります。Unity Catalog での権限の管理を参照してください。
システムテーブルは読み取り専用で、変更できません。
アカウントが 2024 年 3 月 6 日以降に作成された場合、デフォルトではメタストア管理者がいない可能性があります。詳しくは、Unity Catalogの基本操作を参照してください。
システムテーブルには、アカウント内のすべてのワークスペースのデータが含まれていますか?
システムテーブルには、同じクラウドリージョン内にデプロイされたアカウント内のすべてのワークスペースの運用データが含まれています。一部のテーブルにはグローバルデータが含まれています。詳細については、 使用可能なテーブルのリストを参照してください。
システムテーブルには Unity Catalog ワークスペースからのみアクセスできますが、Unity Catalog 以外のワークスペースからの運用データはアカウントに含まれています。
システムテーブルのデータはどこに保存されますか?
アカウントのシステムテーブルのデータは、メタストアと同じリージョンにあるDatabricksがホストするストレージアカウントに保存されています。データはOpenSharingを使用して安全に共有されます。
システムテーブルのデータ保持を構成する
ベータ版
システムテーブルの構成可能な保持期間はベータ版です。アカウント管理者は、アカウントレベルの プレビュー ページで システムテーブルの構成可能な保持期間 プレビューにオプトインすることで、この機能へのアクセスを制御できます。アカウントでプレビューが有効になるまで、最大24時間かかることがあります。
構成可能な保持機能により、アカウント管理者は、アカウント内のサポートされているすべてのシステムテーブルに適用される単一の保持期間を設定できます。
アカウントでこのベータ機能が有効になっている場合、サポートされているすべてのシステムテーブルの無料保持期間が自動的に 395 日になり、テーブル固有の期間が上書きされます。アカウント管理者は、30日から3,650日までのカスタム保持期間を設定できます。
構成された保持期間は、ベータ版の間は無料です。395 日を超えて保持されるデータには、構成可能な保持が一般提供されるようになった時点でストレージ料金が発生します。
サポートされているテーブル
アカウントに設定されている保持期間は、system.data_classification および system.data_quality_monitoring スキーマ内のテーブルを除くすべてのシステムテーブルに適用されます。
アカウントコンソールで保持期間を構成します
システムテーブルの保持を構成するには、アカウント管理者である必要があります。保持期間を構成するには:
- アカウントコンソールのサイドバーで、 設定 をクリックします。
- 「アカウント設定」 タブをクリックします。
- システムテーブルのデータ保持期間(日数) の設定に、日単位の保持期間を入力します。
- 保存 をクリックします。
アカウント設定 API を使用して保持期間を設定します
Databricksアカウント設定APIを使用して、システムテーブルの保持期間を管理できます。DatabricksアカウントIDと、アカウント管理者のアクセストークンまたはOAuthトークンが必要です。設定名は st_retention です。
現在の保持期間を取得するには、/api/2.1/accounts/{account_id}/settings/st_retentionにGETリクエストを送信します:
curl --request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $token" \
"<account-console-url>/api/2.1/accounts/<account-id>/settings/st_retention"
レスポンスには、アカウントに設定された値が含まれます。アカウント管理者が値を構成していない場合、レスポンスにはdefaultの 395 日という値が含まれます。
保持期間を変更するには、/api/2.1/accounts/{account_id}/settings/st_retention に PATCH リクエストを送信します。次の例では、保持期間を400日に設定しています。
curl --request PATCH \
--header "Content-Type: application/json" \
--header "Authorization: Bearer $token" \
--data '{
"integer_val": {
"value": 400
},
"name": "st_retention"
}' \
"<account-console-url>/api/2.1/accounts/<account-id>/settings/st_retention"
保持の動作
- 保持期間を増やすと、その変更はすぐにテーブルに適用されます。
- 保持期間を短縮すると、Databricksは変更を適用するまで7日間待機します。この猶予期間中、ヒストリカルデータが完全に削除される前に、アカウント管理者が意図しない変更を修正できます。
- レコードが構成された保持期間を超えると、Databricks は通常 1 週間以内にそのレコードを削除します。
制限事項
- 構成可能な保持機能は、
system.data_classificationおよびsystem.data_quality_monitoringスキーマには適用されません。これらのシステムテーブルは、テーブル固有の保持ポリシーに従ってデータを保持します。 - 保持期間を長くしても、ヒストリカルデータはバックフィルされません。
- 災害またはデータが完全に失われた場合、Databricksは、構成された保持期間分のすべてのシステムテーブルデータの復旧を保証しません。
カタログエクスプローラーのシステムテーブルはどこにありますか?
アカウント内のシステムテーブルは、 systemというカタログにあり、すべての Unity Catalog メタストアに含まれています。 systemカタログには、システムテーブルを含む access や billing などのスキーマが表示されます。
ストリーミング システムテーブルに関する考慮事項
DatabricksはOpenSharingを使用してシステムテーブルデータを顧客と共有します。OpenSharing を使用してストリーミングする場合は、次の点に注意してください。
- システムテーブルからストリームするには、Databricks Runtime 16.4 以降を使用する必要があります。
readChangeFeedオプションを使用してチェンジデータフィード(チェンジデータフィード)を Streamするには、Databricks Runtime 17.3 以降を使用する必要があります。 - システムテーブルでストリーミングを使用している場合は、
skipChangeCommitsオプションをtrueに設定します。これにより、システムテーブル内の削除によってストリーミングジョブが中断されないようにします。ソース Delta Lake テーブルの変更の処理を参照してください。 Trigger.AvailableNowDatabricks Runtime 18.0 以降でサポートされています。このクエリーは、起動時にシステムテーブルの現在のバージョンをキャプチャし、1つ以上のマイクロバッチで利用可能なすべてのデータを処理し、その後停止します。Databricks Runtime 17.3 以前では、Trigger.AvailableNowはTrigger.Onceに変換され、ランごとに単一のマイクロバッチが処理されます。- システムテーブルは、
VACUUMに対して安心の 7 日間の保存期間を使用します ( 「タイムトラベル クエリのデータ保存期間の構成」を参照)。これは、ストリーミング クエリが 7 日以上遅れると中断される可能性があることを意味します。 ストリームを監視して、最新のシステムテーブル バージョンに追い付いていることを確認します。
ストリーミングジョブが最新のシステムテーブルバージョンに追いつかない場合は、各ランで利用可能なバックログ全体を処理できるようにTrigger.AvailableNowを使用するか(Databricks Runtime 18.0以降でサポート)、ジョブのスケジュールされた頻度を増やしてください。
ストリーミング システムテーブルからの変更のインクリメンタルな読み込み
spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")
既知の問題
- 新しい列は、いつでも既存のシステムテーブルに追加できます。固定スキーマに依存するクエリは、新しい列が導入されると中断する可能性があります。既存の列は変更されず、削除されません。システムテーブルデータを別のターゲットテーブルに書き込む場合は、 スキーマ進化を有効にすることを検討してください。
- 構造体型の列には、いつでも新しいフィールドを追加できます。システムテーブルのデータを別のターゲットテーブルに書き込む場合は、スキーマ進化を有効にすることを検討してください。
- リアルタイム モニタリングはサポートされていません。 データは終日更新されます。最近のイベントのログが表示されない場合は、後でもう一度確認してください。
__internal_loggingシステムテーブルスキーマは、外部モデルとプロビジョニングされたスループットワークロードの AI Gateway 対応推論テーブルを使用したペイロードロギングをサポートしています。このスキーマはアカウント管理者に表示されますが、有効にすることはできず、顧客のワークフローには使用しないでください。- パフォーマンスの問題を防ぐために、十分に選択的でないシステムテーブルクエリでは次のエラーが返されます。
System Table query returned too much data. Please repeat query with more selective predicates.