システムテーブル による使用状況の監視

プレビュー

この機能は パブリック プレビュー段階です。 現在、この機能の使用に料金はかかりません。 将来的には、この使用量の一部で料金が発生する可能性があります。

この記事では、Databricks のシステム テーブルの概念について説明し、システム テーブル データを最大限に活用するために使用できるリソースについて説明します。

システムテーブルとは何ですか?

システム テーブルは、Databricks でホストされる、 system カタログにあるアカウントの運用データの分析ストアです。 システムテーブルは、アカウント全体の履歴オブザーバビリティに使用できます。

system.information_schemaのドキュメントについては、「情報スキーマ」を参照してください。

要件

システムテーブルにアクセスするには、ワークスペースでUnity Catalogが有効になっている必要があります。 詳細については、 「システムテーブル スキーマを有効にする」を参照してください。

どのシステムテーブルが利用できますか?

現在、Databricks は次のシステム テーブルをホストしています。

テーブル

説明

場所

ストリーミングをサポート

保持

グローバルまたは地域のデータを含める

監査ログ

リージョン内のワークスペースからのすべての監査イベントのレコードが含まれます。 使用可能な監査イベントの一覧については、「 監査ログのリファレンス」を参照してください。

system.access.audit

あり

365日間

ワークスペースレベルのイベントの地域。 アカウントレベルのイベントのグローバル。

テーブル リネージ

Unity Catalogテーブルまたはパス上の各読み取りまたは書き込みイベントのレコードが含まれます。

system.access.table_lineage

あり

365日間

リージョナル

カラムリネージ

Unity Catalog列の読み取りまたは書き込みイベントごとにレコードが含まれます (ただし、ソースを持たないイベントは含まれません)。

system.access.column_lineage

あり

365日間

リージョナル

請求対象となる使用量

アカウント全体のすべての課金利用の記録が含まれます。 各使用状況レコードは、リソースの課金使用量の時間単位の集計です。

system.billing.usage

あり

365日間

グローバル

価格プラン

SKU 価格の履歴ログ。 SKU 価格が変更されるたびにレコードが追加されます。

system.billing.list_prices

なし

N/A

グローバル

クラスター

変化の遅いディメンション テーブルで、任意のクラスターの時間の経過に伴うクラスター構成の完全な履歴が含まれます。

system.compute.clusters

あり

なし

リージョナル

ノードの種類

現在使用可能なノード タイプとその基本的なハードウェア情報をキャプチャします。

system.compute.node_types

なし

N/A

リージョナル

SQLウェアハウスイベント

SQLウェアハウスに関連するイベントをキャプチャします。 たとえば、開始、停止、実行、スケールアップとスケールダウンなどです。

system.compute.warehouse_events

あり

365日間

リージョナル

Marketplace ファネルイベント

リスティングの消費者の印象とファネルのデータが含まれます。

system.marketplace.listing_

funnel_events

あり

365日間

リージョナル

Marketplace リストへのアクセス

完了した リクエストデータの 消費者情報や、リスティングのデータ イベントの取得 が含まれます。

system.marketplace.listing_

access_events

あり

365日間

リージョナル

予測的最適化

予測的最適化機能の操作履歴を追跡します。

system.storage.predictive_

optimization_operations_history

なし

180日間

リージョナル

アカウントには、上記以外のシステムテーブルが表示される場合があります。 これらのテーブルは現在プライベート プレビュー段階にあり、既定では空です。 これらのテーブルのいずれかの使用に関心がある場合は、Databricks アカウント チームにお問い合わせください。

Enable Systemテーブル schemas

システムテーブルは Unity Catalogによって管理されるため、システムテーブルを有効にしてアクセスするには、アカウントに少なくとも1つの Unity Catalog対応ワークスペースが必要です。 システムテーブルには、アカウント内のすべてのワークスペースのデータが含まれますが、Unity カタログ対応のワークスペースからのみアクセスできます。

システムテーブルはスキーマレベルで有効になります。 システム スキーマを有効にすると、そのスキーマ内のすべてのテーブルが有効になります。 新しいスキーマがリリースされた場合、アカウント管理者は手動でスキーマを有効にする必要があります。

システムテーブルはアカウント管理者が有効にする必要があります。 SystemSchemas APIを使用してシステムテーブルを有効にできます。

使用可能なシステムスキーマの 一覧表示

次の 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"が返されます。

システムスキーマ を無効にする

次の curl コマンドを使用して、システムスキーマを無効にします。

curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://<workspace>.databricks.com/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

システム テーブル へのアクセス権を付与する

システム テーブルへのアクセスは、Unity Catalog によって管理されます。 デフォルトでは、どのユーザーもシステム・テーブルにアクセスできません。 アクセス権を付与するには、メタストア管理者またはその他の特権ユーザーが、システム スキーマに対する USE および SELECT アクセス許可を付与する必要があります。 「 Unity Catalog での特権の管理」を参照してください。

システム テーブルは読み取り専用であり、変更できません。

アカウントが 2023 年 11 月 8 日以降に作成された場合は、既定でメタストア管理者がいない可能性があります。 詳細については、「 Unity Catalog の設定と管理」を参照してください。

システムテーブルには、アカウント内のすべてのワークスペースのデータが含まれていますか?

監査ログと系列テーブルには、同じクラウドリージョン内にデプロイされたアカウント内のすべてのワークスペースの運用データが含まれています。 課金システムテーブル (system.billing.usage) には、デプロイされているリージョンに関係なく、アカウント内のすべてのワークスペースのデータが含まれています。

システムテーブルには Unity Catalog ワークスペースからのみアクセスできますが、テーブルにはアカウント内のUnity Catalog 以外のワークスペースのオペレーショナルデータも含まれます。

システムテーブルはどこにありますか?

アカウントのシステム テーブルは、すべての Unity Catalog メタストアに含まれる system というカタログにあります。 system カタログには、システム テーブルを含む accessbilling などのスキーマが表示されます。

システム テーブルのパブリック プレビュー中、Databricks はすべてのシステム テーブルのデータを保持します。

ストリーミング・システム・テーブルに関する考慮事項

システム テーブルへのアクセスは、Delta Sharing でサポートされています。 Delta Sharing を使用してストリーミングする場合は、次の考慮事項に注意してください。

  • システム・テーブルでストリーミングを使用している場合は、 skipChangeCommit オプションを trueに設定します。 これにより、ストリーミング ジョブがシステム テーブルの削除によって中断されることがなくなります。 「更新と削除を無視する」を参照してください。

  • Trigger.AvailableNow は、Delta Sharing ストリーミングではサポートされていません。 Trigger.Onceに変換されます。

  • ストリーミング ジョブでトリガーを使用し、ジョブが最新のシステム テーブル バージョンに追いついていないことがわかった場合、Databricks では、ジョブのスケジュールされた頻度を増やすことをお勧めします。

既知の問題

  • 現在、リアルタイムモニタリングはサポートされていません。 データは一日中更新されます。 最近のイベントのログが表示されない場合は、後でもう一度確認してください。

  • ワークスペースが顧客管理 VPC を使用している場合、ログが保存されているS3バケットへのアクセスが拒否される可能性があります。 その場合は、 VPCエンドポイント ポリシーを更新して、リージョンのシステム テーブル データが保存されているS3バケットへのアクセスを許可する必要があります。 地域バケット名のリストについては、 ストレージ バケット アドレス表 の システムテーブルのバケット 列を参照してください。

  • システム スキーマ system.operational_datasystem.lineage は非推奨であり、空のテーブルが含まれます。