予測最適化システム テーブル参照
重要
この機能はパブリック プレビュー段階にあります。
Note
このテーブルにアクセスするには、ユーザーが storage
スキーマを有効にし (「システム テーブル スキーマを有効にする」を参照)、リージョンが予測最適化に対応している必要があります (「Azure Databricks のリージョン」を参照)。
この記事では、予測最適化操作履歴テーブルのスキーマに関する概要について説明し、サンプル クエリを提供します。 予測最適化によってデータ レイアウトを最適化し、最高レベルのパフォーマンスとコスト効率を実現します。 システム テーブルは、この機能の操作履歴を追跡します。 予測最適化の詳細については、「Delta Lake の予測最適化」を参照してください。
システム テーブルは system.storage.predictive_optimization_operations_history
にあります。
配信に関する考慮事項
- データが入力されるまでに最大で 24 時間かかる場合があります。
- 予測最適化では、同じクラスターで複数の操作が実行される場合があります。 その場合、各操作に起因する DBU のシェアが概算されます。 これが、
usage_unit
がESTIMATED_DBU
に設定されている理由です。 クラスターに使用される DBU の総数が正確であることに変わりはありません。
予測最適化 テーブルのスキーマ
予測最適化操作履歴システム テーブルでは、次のスキーマが使用されます。
列名 | データ型 | 説明 | 例 |
---|---|---|---|
account_id |
string | アカウントの ID。 | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | 予測最適化で操作を実行したワークスペースの ID。 | 1234567890123456 |
start_time |
timestamp | 操作を開始した時刻。 タイムゾーン情報は、UTC を表す +00:00 という形式で値の末尾に記録されます。 |
2023-01-09 10:00:00.000+00:00 |
end_time |
timestamp | 操作を終了した時刻。 タイムゾーン情報は、UTC を表す +00:00 という形式で値の末尾に記録されます。 |
2023-01-09 11:00:00.000+00:00 |
metastore_name |
string | 最適化されたテーブルが属するメタストアの名前。 | metastore |
catalog_name |
string | 最適化されたテーブルが属するカタログの名前。 | catalog |
schema_name |
string | 最適化されたテーブルが属するスキーマの名前。 | schema |
table_id |
string | 最適化されたテーブルの ID。 | 138ebb4b-3757-41bb-9e18-52b38d3d2836 |
table_name |
string | 最適化されたテーブルの名前。 | table1 |
operation_type |
string | 実行した最適化操作。 値は COMPACTION または VACUUM になります。 |
COMPACTION |
operation_id |
string | 最適化操作に使用する ID。 | 4dad1136-6a8f-418f-8234-6855cfaff18f |
operation_status |
string | 最適化操作の状態。 値は SUCCESSFUL または FAILED: INTERNAL_ERROR になります。 |
SUCCESSFUL |
operation_metrics |
マップ [string, string] | 実行された特定の最適化に関する追加の詳細情報。 COMPACTION 操作の場合: (number_of_compacted_files、amount_of_data_compacted_bytes、number_of_output_files、amount_of_output_data_bytes) VACUUM 操作の場合: (number_of_deleted_files、amount_of_data_deleted_bytes) | {"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"} |
usage_unit |
string | この操作で発生した使用単位。 値として指定できるのは、ESTIMATED_DBU の 1 つのみです。 |
ESTIMATED_DBU |
usage_quantity |
小数 | この操作で使用された使用量単位の量。 | 2.12 |
クエリの例
次のセクションには、予測最適化システム テーブルの分析情報を得るために使用できるサンプル クエリが含まれています。 これらのクエリを機能させるには、中かっこ {{}}
内の値を独自のパラメータに置き換える必要があります。
この記事には、次のクエリの例が含まれています。
- 過去 30 日間に予測最適化が使用された DBU の数はいくつですか?
- 過去 30 日間において、予測最適化で最も多く使用されたテーブルはどれですか?
- 予測最適化で最も多くの操作を実行しているテーブルはどれですか?
- 特定のカタログについて、圧縮された合計バイト数はいくつですか?
- 最も多くのバイト数がバキューム処理されたテーブルはどれですか?
- 予測最適化によって実行される操作の成功率はどのくらいですか?
過去 30 日間に予測最適化が使用された DBU の推定数はいくつですか?
SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
usage_unit = "ESTIMATED_DBU"
AND timestampdiff(day, start_time, Now()) < 30
過去 30 日間に予測最適化で最も多く使用されたテーブル (推定コスト) はどれですか?
SELECT
metastore_name,
catalog_name,
schema_name,
table_name,
SUM(usage_quantity) as totalDbus
FROM system.storage.predictive_optimization_operations_history
WHERE
usage_unit = "ESTIMATED_DBU"
AND timestampdiff(day, start_time, Now()) < 30
GROUP BY ALL
ORDER BY totalDbus DESC
予測最適化で最も多くの操作を実行しているテーブルはどれですか?
SELECT
metastore_name,
catalog_name,
schema_name,
table_name,
operation_type,
COUNT(DISTINCT operation_id) as operations
FROM system.storage.predictive_optimization_operations_history
GROUP BY ALL
ORDER BY operations DESC
特定のカタログについて、圧縮された合計バイト数はいくつですか?
SELECT
schema_name,
table_name,
SUM(operation_metrics["amount_of_data_compacted_bytes"]) as bytesCompacted
FROM system.storage.predictive_optimization_operations_history
WHERE
metastore_name = {{metastore_name}}
AND catalog_name = {{catalog_name}}
AND operation_type = "COMPACTION"
GROUP BY ALL
ORDER BY bytesCompacted DESC
最も多くのバイト数がバキューム処理されたテーブルはどれですか?
SELECT
metastore_name,
catalog_name,
schema_name,
table_name,
SUM(operation_metrics["amount_of_data_deleted_bytes"]) as bytesVacuumed
FROM system.storage.predictive_optimization_operations_history
WHERE operation_type = "VACUUM"
GROUP BY ALL
ORDER BY bytesVacuumed DESC
予測最適化によって実行される操作の成功率はどのくらいですか?
WITH operation_counts AS (
SELECT
COUNT(DISTINCT (CASE WHEN operation_status = "SUCCESSFUL" THEN operation_id END)) as successes,
COUNT(DISTINCT operation_id) as total_operations
FROM system.storage.predictive_optimization_operations_history
)
SELECT successes / total_operations as success_rate
FROM operation_counts