メインコンテンツまでスキップ

予測的最適化 システムテーブル Reference

備考

プレビュー

このシステムテーブルは パブリック プレビュー段階です。

注記

このテーブルにアクセスするには、地域が予測的最適化をサポートしている必要があります。 Databricks のクラウドとリージョンを参照してください。

この記事では、予測的最適化操作履歴テーブル スキーマの概要を説明し、サンプル クエリを提供します。 予測的最適化 データレイアウトを最適化し、ピークパフォーマンスとコスト効率を実現します。 システムテーブルは、この機能の操作履歴を追跡します。 予測的最適化に関する情報については、Unity Catalog マネージドテーブルに対する予測的最適化を参照してください。

テーブルパス :このシステムテーブルは system.storage.predictive_optimization_operations_historyにあります。

配信に関する考慮事項

  • 予測的最適化システム テーブルは 2 時間以内に更新されます。 ただし、請求情報のデータが入力されるまでに最大 24 時間かかる場合があります。
  • 予測的最適化では、同じクラスターで複数の操作が実行される場合があります。 その場合、複数の操作のそれぞれに起因する DBU のシェアは概算されます。 これが、 usage_unit がに設定されている理由です ESTIMATED_DBU。 それでも、クラスターに費やされた DBU の合計数は正確です。

予測的最適化 Table Schema

予測的最適化操作履歴システムテーブルでは、次のスキーマが使用されます。

列名

データ型

説明

account_id

string

アカウントの ID。

11e22ba4-87b9-4cc2-9770-d10b894b7118

workspace_id

string

予測的最適化が操作を実行したワークスペースの ID。

1234567890123456

start_time

タイムスタンプ

操作が開始された時刻。 タイムゾーン情報は、 +00:00 UTC を表す値の終わりに記録されます。

2023-01-09 10:00:00.000+00:00

end_time

タイムスタンプ

操作が終了した時刻。 タイムゾーン情報は、 +00:00 UTC を表す値の終わりに記録されます。

2023-01-09 11:00:00.000+00:00

metastore_name

string

最適化されたテーブルが属するメタストアの名前。

metastore

metastore_id

string

最適化されたテーブルが属するメタストアの ID。

5a31ba44-bbf4-4174-bf33-e1fa078e6765

catalog_name

string

最適化されたテーブルが属するカタログの名前。

catalog

schema_name

string

最適化されたテーブルが属するスキーマの名前。

schema

table_id

string

最適化されたテーブルの ID。

138ebb4b-3757-41bb-9e18-52b38d3d2836

table_name

string

最適化されたテーブルの名前。

table1

operation_type

string

実行された最適化操作。次のいずれかの値である必要があります: COMPACTIONVACUUMANALYZECLUSTERINGAUTO_CLUSTERING_COLUMN_SELECTIONDATA_SKIPPING_COLUMN_SELECTION 、またはCOMPATIBILITY_MODE_REFRESH

COMPACTION

operation_id

string

最適化操作の ID。

4dad1136-6a8f-418f-8234-6855cfaff18f

operation_status

string

最適化操作のステータス。次のいずれかの値である必要があります: SUCCESSFULまたはFAILED: INTERNAL_ERROR

SUCCESSFUL

operation_metrics

map[文字列, 文字列]

実行された特定の最適化に関する追加の詳細。 Operation メトリクスを参照してください。

{"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

ESTIMATED_DBU

usage_quantity

DECIMALタイプ

この操作で使用された使用量の単位の量。

2.12

Operation メトリクス

operation_metrics列に記録されるメトリクスは、操作のタイプによって異なります。

操作名

操作の説明

operationMetrics

説明

COMPACTION

ファイルサイズを最適化することで、クエリのパフォーマンスを向上させます。 データファイルレイアウトの最適化を参照してください。

number_of_compacted_files

この操作によって削除されたファイルの数。

amount_of_data_compacted_bytes

この操作によって削除されたバイト数。

number_of_output_files

この操作によって追加された新しいファイルの数。

amount_of_output_data_bytes

この操作によって追加されたバイト数。

VACUUM

テーブルによって参照されなくなったデータ ファイルを削除することで、ストレージ コストを削減します。「vacuum を使用して未使用のデータ ファイルを削除する」を参照してください。

number_of_deleted_files

この操作によってガベージ コレクションされたファイルの数。

amount_of_data_deleted_bytes

この操作によってガベージ コレクションされたバイト数。

ANALYZE

クエリのパフォーマンスを向上させるために統計の増分更新をトリガーします。「ANALYZE TABLE」を参照してください。

amount_of_scanned_bytes

この操作によってスキャンされたバイト数。

number_of_scanned_files

この操作によってスキャンされたファイルの数。

staleness_percentage_reduced

この操作後の古さの割合が減少します。この統計は、 ANALYZEが実行される頻度に基づいて 0 から 100 の範囲になります。

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

クラスタリング列が変更される、または変更されない理由。

DATA_SKIPPING_COLUMN_SELECTION

ワークロードから統計をスキップしてデータが欠落している列を検出し、それをバックフィルします。「データのスキップ」を参照してください。

amount_of_scanned_bytes

この操作によってスキャンされたバイト数。

number_of_scanned_files

この操作によってスキャンされたファイルの数。

added_data_skipping_columns

この操作によって適用された新しく追加されたデータ スキップ列。

removed_data_skipping_columns

この操作によってデータ スキップ列が削除されました。

old_data_skipping_columns

データスキップ列の以前の完全なリスト。

new_data_skipping_columns

データスキップ列の現在の完全なリスト。

COMPATIBILITY_MODE_REFRESH

互換Mode古くなっているかどうかを検出し、テーブルを更新します。 互換Modeを参照してください。

N/A

互換Mode更新操作。

クエリの例

次のセクションでは、予測的最適化 システムテーブルに知見を得るために使用できるサンプル クエリを示します。 これらのクエリを機能させるには、パラメーター値を独自の値に置き換える必要があります。

この記事には、次のクエリの例が含まれています。

過去 30 日間に予測的最適化が使用された推定 DBU はいくつありますか?

SQL
SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
usage_unit = "ESTIMATED_DBU"
AND timestampdiff(day, start_time, Now()) < 30;

特定の ETL パイプラインで同じ値を見つけるには、まずそのパイプライン内のテーブルを見つけてから、DBU を検索します。

SQL
-- Find all full table names for the pipeline:
WITH pipeline_mapping AS (
SELECT DISTINCT target_table_full_name AS target_table_name
FROM system.access.table_lineage
WHERE entity_type = 'PIPELINE' AND entity_id = :pipeline_id
)
-- Select all operations for any table in that pipeline:
SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
CONCAT_WS('.', catalog_name, schema_name, table_name)
IN ( SELECT target_table_name FROM pipeline_mapping)
AND usage_unit = "ESTIMATED_DBU"
AND timestampdiff(day, start_time, Now()) < 30;

過去 30 日間に予測的最適化が最も多く費やしたテーブル (推定コスト) はどれか?

SQL
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;

予測的最適化が最も多くの操作を実行しているのはどのテーブルですか?

SQL
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;

特定のカタログについて、圧縮された合計バイト数はいくつですか?

SQL
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があったテーブルはどれですか?

SQL
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;

予測的最適化による実行操作の成功率はどれくらいですか?

SQL
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;