システムテーブルで使用状況を監視する
プレビュー
この機能は パブリック プレビュー段階です。 現在、この機能の使用に料金はかかりません。 将来的には、この使用量の一部で料金が発生する可能性があります。
この記事では、 Databricksのシステムテーブルの概念について説明し、システムテーブル データを最大限に活用するために使用できるリソースを紹介します。
システムテーブルとは何ですか?
システムテーブルは、system
カタログにあるアカウントの運用データを格納する、 Databricksがホストする分析ストアです。 システムテーブルは、アカウント全体の履歴を観察するために使用できます。
注:
system.information_schema
のドキュメントについては、 情報スキーマを参照してください。
要件
システムテーブルにアクセスするには、ワークスペースでUnity Catalogを有効にする必要があります。 詳細については、 「システムテーブル スキーマを有効にする」を参照してください。
システムテーブルはAWS GovCloudリージョンでは利用できません。
利用可能なシステムテーブルは何ですか?
現在、 Databricks次のシステムテーブルをホストしています。
テーブル |
説明 |
場所 |
ストリーミングをサポート |
保持 |
グローバルまたは地域のデータを含める |
---|---|---|---|---|---|
地域のワークスペースからのすべての監査イベントの記録が含まれます。 使用可能な監査イベントの一覧については、「 監査ログのリファレンス」を参照してください。 |
|
はい |
365日間 |
ワークスペース レベルのイベントの地域別。 アカウント レベルのイベントの場合はグローバル。 |
|
Unity Catalogテーブルまたはパスの各読み取りまたは書き込みイベントのレコードが含まれます。 |
|
はい |
365日間 |
リージョナル |
|
Unity Catalog列の各読み取りまたは書き込みイベントのレコードが含まれます (ただし、ソースがないイベントは含まれません)。 |
|
はい |
365日間 |
リージョナル |
|
アカウント全体の課金利用の記録が含まれます。 各使用状況記録は、リソースの課金利用の 1 時間ごとの集計です。 |
|
はい |
365日間 |
グローバル |
|
SKU 価格の履歴ログ。 SKU 価格が変更されるたびにレコードが追加されます。 |
|
いいえ |
N/A |
グローバル |
|
任意のクラスターの長期にわたるコンピュート構成の完全な履歴を含む、ゆっくりと変化するディメンション テーブル。 |
|
はい |
なし |
リージョナル |
|
汎用リソースとジョブ コンピュート リソースの使用率メトリクスを取得します。 |
|
はい |
30日 |
リージョナル |
|
現在利用可能なノード タイプとその基本的なハードウェア情報をキャプチャします。 |
|
いいえ |
N/A |
リージョナル |
|
SQLウェアハウスに関連するイベントをキャプチャします。 たとえば、開始、停止、実行、スケールアップとスケールダウンなどです。 |
|
はい |
365日間 |
リージョナル |
|
アカウントで作成されたすべてのジョブを追跡します。 |
|
はい |
365日間 |
リージョナル |
|
アカウントで実行されるすべてのジョブ タスクを追跡します。 |
|
はい |
365日間 |
リージョナル |
|
ジョブ実行の開始時刻と終了時刻を追跡します。 |
|
はい |
365日間 |
リージョナル |
|
ジョブタスク実行の開始時間と終了時間と使用されたコンピュートリソースを追跡します。 |
|
はい |
365日間 |
リージョナル |
|
リスティングの消費者インプレッションとファネルデータが含まれます。 |
|
はい |
365日間 |
リージョナル |
|
リスティングの完了した リクエストデータ または データ取得 イベントのコンシューマー情報が含まれます。 |
|
はい |
365日間 |
リージョナル |
|
予測的最適化機能の操作履歴を追跡します。 |
|
いいえ |
180日間 |
リージョナル |
|
Databricks Assistantに送信されたユーザー メッセージを追跡します。 |
|
いいえ |
365日間 |
リージョナル |
|
SQLウェアハウスで実行されたすべてのクエリのレコードをキャプチャします。 |
|
はい |
90日間 |
リージョナル |
注:
上記にリストされているもの以外にも、アカウントに他のシステムテーブルが表示される場合があります。 これらのテーブルは現在プライベート プレビュー段階にあり、デフォルトでは空になっています。 これらのテーブルのいずれかの使用にご興味がある場合は、Databricks アカウント チームにお問い合わせください。
システムテーブルスキーマを有効にする
システムテーブルはUnity Catalogによって管理されているため、システムテーブルを有効にしてアクセスするには、アカウントに少なくとも 1 つのUnity Catalog対応ワークスペースが必要です。 システムテーブルにはアカウント内のすべてのワークスペースのデータが含まれますが、Unity Catalog 対応のワークスペースからのみアクセスできます。
システムテーブルはスキーマ レベルで有効化されます。 システム スキーマを有効にすると、そのスキーマ内のすべてのテーブルが有効になります。 新しいスキーマがリリースされると、アカウント管理者はスキーマを手動で有効にする必要があります。
システムテーブルはアカウント管理者によって有効にされる必要があります。 SystemSchemas APIを使用してシステムテーブルを有効にすることができます。
注:
billing
スキーマはデフォルトで有効になっています。 他のスキーマは手動で有効にする必要があります。
使用可能なシステムスキーマの一覧表示
使用可能なシステム スキーマを一覧表示するには、次の curl コマンドを使用します。
curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://<workspace>.cloud.databricks.com/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"
以下はGET
コマンドの出力例です。
{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}
state: AVAILABLE
: システム スキーマは使用できますが、まだ有効になっていません。
state: EnableCompleted
: システムスキーマが有効になっており、カタログエクスプローラーに表示されます。
システムスキーマを有効にする
システム スキーマを有効にするには、次の curl コマンドを使用します。
curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://<workspace>.databricks.com/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"
システム・スキーマが正常に使用可能になると、結果コード 200
が戻されます。
システム・スキーマを再度使用可能にしようとすると、 "error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists"
が返されます。
システムテーブルへのアクセスを許可する
システムテーブルへのアクセスはUnity Catalogによって管理されます。 デフォルトにより、どのユーザーもシステムテーブルにアクセスできなくなります。 アクセス権を付与するには、メタストア管理者またはその他の特権ユーザーが、システム スキーマに対する USE
および SELECT
アクセス許可を付与する必要があります。 「Unity Catalog での権限の管理」を参照してください。
システムテーブルは読み取り専用であり、変更できません。
注:
アカウントが 2023 年 11 月 8 日以降に作成された場合、デフォルトではメタストア管理者が存在しない可能性があります。 詳細については、 Unity Catalogセットアップと管理」を参照してください。
システムテーブルにはアカウント内のすべてのワークスペースのデータが含まれていますか?
監査ログとリネージ テーブルには、同じクラウド リージョン内にデプロイされたアカウント内のすべてのワークスペースの運用データが含まれています。 課金システムテーブル ( system.billing.usage
) には、デプロイされているリージョンに関係なく、アカウント内のすべてのワークスペースのデータが含まれます。
システムテーブルにはUnity Catalogワークスペースからのみアクセスできますが、テーブルにはアカウント内のUnity Catalog以外のワークスペースの運用データも含まれます。
システムテーブルはどこにありますか?
アカウント内のシステムテーブルは、すべてのUnity Catalogメタストアに含まれる system
というカタログにあります。 system
カタログには、システムテーブルを含むaccess
やbilling
などのスキーマが表示されます。
注:
システムテーブル パブリック プレビュー中、 Databricksすべてのシステムテーブル データを保持します。
ストリーミング システムテーブルに関する考慮事項
システムテーブルへのアクセスはDelta Sharingによってサポートされています。 Delta Sharing を使用してストリーミングする場合は、次の点に注意してください。
システムテーブルでストリーミングを使用している場合は、
skipChangeCommits
オプションをtrue
に設定します。 これにより、システムテーブル内の削除によってストリーミングジョブが中断されることがなくなります。 「更新と削除を無視する」を参照してください。Trigger.AvailableNow
Delta Sharing ストリーミングではサポートされません。Trigger.Once
に変換されます。
ストリーミング ジョブでトリガーを使用していて、それが最新のシステムテーブル バージョンに追いついていない場合、 Databricksジョブのスケジュールされた頻度を増やすことを推奨します。
既知の問題点
現在、リアルタイム モニタリングはサポートされていません。 データは一日中更新されます。 最近のイベントのログが表示されない場合は、後でもう一度確認してください。
ワークスペースで顧客管理VPCを使用している場合、ログが保存されているS3バケットへのアクセスが拒否される可能性があります。 その場合は、 VPCエンドポイント ポリシーを更新して、リージョンのシステム テーブル データが保存されているS3バケットへのアクセスを許可する必要があります。 リージョン バケット名のリストについては、 ストレージ バケット アドレス テーブル の システムテーブル バケット 列を参照してください。
システム スキーマ
system.operational_data
とsystem.lineage
は非推奨であり、空のテーブルが含まれます。