次の方法で共有


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

重要

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

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

システム テーブルとは?

システム テーブルは、system カタログで見つかるアカウントの運用データの、Azure Databricks がホストする分析ストアです。 システム テーブルは、アカウント全体の履歴監視に使用できます。

Note

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

要件

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

  • システム テーブルは、以下のリージョンでは利用できません。

    • Azure 中国の地域
    • Azure Government リージョン
    • インド西部
    • スイス西部

使用できるシステム テーブルはどれですか?

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

テーブル 説明 場所 ストリーミングをサポート 保存期間 グローバル データまたは地域データを含める
監査ログ リージョン内のワークスペースからのすべての監査イベントのレコードが含まれます。 利用可能な監査イベントの一覧については、「診断ログ リファレンス」を参照してください。 system.access.audit はい 365 日 ワークスペースレベルのイベントのリージョン。 アカウントレベルのイベントのグローバル。
テーブル系列 Unity Catalog テーブルまたはパスの読み取り/書き込みイベントごとに 1 つのレコードが含まれています。 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 日 地域
ジョブ アカウントで作成されたすべてのジョブを追跡します。 system.workflow.jobs はい 365 日 地域
ジョブ タスク アカウントで実行されるすべてのジョブ タスクを追跡します。 system.workflow.job_tasks はい 365 日 地域
ジョブ実行のタイムライン ジョブ実行の開始時刻と終了時刻を追跡します。 system.workflow.

job_run_timeline
はい 365 日 地域
ジョブ タスクのタイムライン ジョブ タスクの実行の開始時刻と終了時刻、およびその実行に使用されるコンピューティング リソースを追跡します。 system.workflow.

job_task_run_timeline
はい 365 日 地域
Marketplace ファネル イベント 登録情報のコンシューマーの印象とファネルデータが含まれます。 system.marketplace.listing_

funnel_events
はい 365 日 地域
Marketplace の登録情報へのアクセス リスティング上の完了したデータ要求またはデータ取得イベントのコンシューマー情報が含まれています。 system.marketplace.listing_

access_events
はい 365 日 地域
予測最適化 予測最適化機能の操作履歴を追跡します。 system.storage.predictive_

optimization_operations_history
いいえ 180 日 地域

Note

上記のシステム テーブル以外にも他のシステム テーブルも自分のアカウントで閲覧できます。 これらのテーブルは現在プライベート プレビューの段階にあり、既定で空になっています。 これらのテーブルのいずれかを使用する場合、Databricks アカウント チームにお問い合わせください。

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

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

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

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

Note

billing スキーマは既定で有効になっています。 他のスキーマは手動で有効にする必要があります。

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

使用可能なシステム スキーマを一覧表示するには、次の curl コマンドを使用します。

curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/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://adb-<xxx>.azuredatabricks.net/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://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

システム テーブルへのアクセスを許可する

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

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

Note

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

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

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

システム テーブルには Unity Catalog ワークスペース経由でのみアクセスできますが、テーブルには、アカウント内の Unity Catalog 以外のワークスペースの操作データも含まれます。

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

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

Note

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

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

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

  • システム テーブルでストリーミングを使っている場合は、skipChangeCommit オプションを true に設定します。 このようにすると、ストリーミング ジョブがシステム テーブル内の削除によって中断されることがなくなります。 「更新と削除を無視する」を参照してください。
  • Delta Sharing ストリーミングでは、Trigger.AvailableNow はサポートされません。 これは、Trigger.Once に変換されます。
  • ストリーミング ジョブでトリガーを使用し、ジョブ’が最新のシステム テーブル バージョンに追いついていないことがわかった場合、Databricks ではジョブのスケジュール頻度を増やすことをお勧めします。

既知の問題

  • 現在、リアルタイム監視はサポートされていません。 データは 1 日を通して更新されます。 最近のイベントのログが表示されない場合は、後でチェックしてください。

  • システム テーブルを有効にするには、システム テーブル BLOB ストレージ エンドポイントへのネットワーク アクセスを許可することが必要な場合があります。 すべてのリージョンのシステム テーブルのストレージ エンドポイント一覧を表示する方法は、「ストレージ エンドポイントの IP アドレス」をご覧ください。

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