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