予測的最適化システムテーブルのリファレンス
プレビュー
このシステムテーブルは パブリック プレビュー段階です。 テーブルにアクセスするには、 system
カタログでスキーマを有効にする必要があります。 詳細については、「 システムテーブル スキーマを有効にする」を参照してください。
注:
このテーブルにアクセスするには、storage
スキーマを有効にする必要があります ( 「システムテーブル スキーマの有効化」を参照)。また、リージョンで予測的最適化がサポートされている必要があります ( Databricksクラウドとリージョン」を参照)。
この記事では、予測的最適化操作履歴テーブル スキーマの概要を説明し、サンプル クエリを提供します。 予測的最適化 データレイアウトを最適化し、ピークパフォーマンスとコスト効率を実現します。 システムテーブルは、この機能の操作履歴を追跡します。 予測的最適化に関する情報については、Unity Catalog マネージドテーブルの予測的最適化を参照してください。
テーブルパス:このシステムテーブルは system.storage.predictive_optimization_operations_history
にあります。
配信に関する考慮事項
データが入力されるまでに最大 24 時間かかる場合があります。
予測的最適化では、同じクラスターで複数の操作が実行される場合があります。 その場合、複数の操作のそれぞれに起因する DBU のシェアは概算されます。 これが、
usage_unit
がに設定されている理由ですESTIMATED_DBU
。 それでも、クラスターに費やされた DBU の合計数は正確です。
予測的最適化表スキーマ
予測的最適化操作履歴システムテーブルでは、次のスキーマが使用されます。
列名 |
データ型 |
説明 |
例 |
---|---|---|---|
|
string |
アカウントのID。 |
|
|
string |
予測的最適化が操作を実行したワークスペースの ID。 |
|
|
timestamp |
操作が開始された時刻。 タイムゾーン情報は値の末尾に記録され、 |
|
|
timestamp |
操作が終了した時刻。 タイムゾーン情報は値の末尾に記録され、 |
|
|
string |
最適化されたテーブルが属するメタストアの名前。 |
|
|
string |
最適化された表が属するカタログの名前。 |
|
|
string |
最適化されたテーブルが属するスキーマの名前。 |
|
|
string |
最適化されたテーブルの ID。 |
|
|
string |
最適化されたテーブルの名前。 |
|
|
string |
実行された最適化操作。 値は |
|
|
string |
最適化操作の ID。 |
|
|
string |
最適化操作のステータス。 値は |
|
|
マップ[文字列, 文字列] |
実行された特定の最適化に関する追加の詳細。 Operation メトリクスを参照してください。 |
|
|
string |
この操作で発生した使用量の単位。 1 つの値 ( |
|
|
DECIMALタイプ |
この操作によって使用された使用単位の量。 |
|
Operation メトリクス
operation_metrics
列に記録されるメトリクスは、操作のタイプによって異なります。
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
CLUSTERING
:number_of_removed_files
,number_of_clustered_files
,amount_of_data_removed_bytes
,amount_of_clustered_data_bytes
クエリの例
次のセクションには、予測的最適化システムテーブルに知見を取得するために使用できるサンプルクエリーが含まれています。 これらのクエリーを機能させるには、中括弧 {{}}
内の値を独自のパラメーターに置き換える必要があります。
この記事には、次のクエリの例が含まれています。
過去 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
最も多くのバイトがvacuumれたテーブルはどれですか?
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