予測的最適化システムテーブルのリファレンス

プレビュー

このシステムテーブルは パブリック プレビュー段階です。 テーブルにアクセスするには、 system カタログでスキーマを有効にする必要があります。 詳細については、「 システムテーブル スキーマを有効にする」を参照してください

注:

このテーブルにアクセスするには、storage スキーマを有効にする必要があります ( 「システムテーブル スキーマの有効化」を参照)。また、リージョンで予測的最適化がサポートされている必要があります ( Databricksクラウドとリージョン」を参照)。

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

テーブルパス:このシステムテーブルは 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

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

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

end_time

timestamp

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

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

実行された最適化操作。 値は COMPACTIONVACUUM、または CLUSTERINGになります。

COMPACTION

operation_id

string

最適化操作の ID。

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

operation_status

string

最適化操作のステータス。 値は SUCCESSFUL または FAILED: INTERNAL_ERRORになります。

SUCCESSFUL

operation_metrics

マップ[文字列, 文字列]

実行された特定の最適化に関する追加の詳細。 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

この操作で発生した使用量の単位。 1 つの値 ( ESTIMATED_DBUのみ) を指定できます。

ESTIMATED_DBU

usage_quantity

DECIMALタイプ

この操作によって使用された使用単位の量。

2.12

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