システム テーブルを使用して使用状況を監視する
重要
この機能はパブリック プレビュー段階にあります。 現在は、この機能を使っても料金はかかりません。 今後、この使用量の一部に料金が発生する可能性があります。
この記事では、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
カタログには、システム テーブルを含む access
や billing
などのスキーマが表示されます。
Note
システム テーブルのパブリック プレビュー中、Azure Databricks はすべてのシステム テーブル データを保持します。
システム テーブルのストリーミングに関する考慮事項
システム テーブルへのアクセスは、Delta Sharing でサポートされています。 Delta Sharing を使用してストリーミングするときは、次の考慮事項に注意してください。
- システム テーブルでストリーミングを使っている場合は、
skipChangeCommit
オプションをtrue
に設定します。 このようにすると、ストリーミング ジョブがシステム テーブル内の削除によって中断されることがなくなります。 「更新と削除を無視する」を参照してください。 - Delta Sharing ストリーミングでは、
Trigger.AvailableNow
はサポートされません。 これは、Trigger.Once
に変換されます。 - ストリーミング ジョブでトリガーを使用し、ジョブ’が最新のシステム テーブル バージョンに追いついていないことがわかった場合、Databricks ではジョブのスケジュール頻度を増やすことをお勧めします。
既知の問題
現在、リアルタイム監視はサポートされていません。 データは 1 日を通して更新されます。 最近のイベントのログが表示されない場合は、後でチェックしてください。
システム テーブルを有効にするには、システム テーブル BLOB ストレージ エンドポイントへのネットワーク アクセスを許可することが必要な場合があります。 すべてのリージョンのシステム テーブルのストレージ エンドポイント一覧を表示する方法は、「ストレージ エンドポイントの IP アドレス」をご覧ください。
システム スキーマ
system.operational_data
とsystem.lineage
は非推奨であり、空のテーブルが含められます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示