システムテーブルで使用状況を監視する

プレビュー

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

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

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

システムテーブルは、system カタログにあるアカウントの運用データを格納する、 Databricksがホストする分析ストアです。 システムテーブルは、アカウント全体の履歴を観察するために使用できます。

注:

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

要件

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

利用可能なシステムテーブルは何ですか?

現在、 Databricks以下のシステムテーブルをホストしています:

テーブル

説明

場所

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

保持

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

監査ログ

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

system.access.audit

はい

365日間

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

テーブルリネージ

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

system.access.table_lineage

はい

365日間

リージョナル

カラムリネージュ

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

system.access.column_lineage

はい

365日間

リージョナル

請求対象となる使用量

アカウント全体の課金利用の記録が含まれます。 各使用状況記録は、リソースの課金利用の 1 時間ごとの集計です。

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 アカウント チームにお問い合わせください。

システムテーブルスキーマを有効にする

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

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

システムテーブルはアカウント管理者によって有効にされる必要があります。 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: システムスキーマが有効になっており、「カタログエクスプローラ」(Catalog Explorer) に表示されます。

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

システム スキーマを有効にするには、次の 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 は非推奨であり、空のテーブルが含まれます。