次の方法で共有


予測最適化システム テーブル参照

重要

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

Note

このテーブルにアクセスするには、ユーザーが storage スキーマを有効にし (「システム テーブル スキーマを有効にする」を参照)、リージョンが予測最適化に対応している必要があります (「Azure Databricks のリージョン」を参照)。

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

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

配信に関する考慮事項

  • データが入力されるまでに最大で 24 時間かかる場合があります。
  • 予測最適化では、同じクラスターで複数の操作が実行される場合があります。 その場合、各操作に起因する DBU のシェアが概算されます。 これが、usage_unitESTIMATED_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 実行した最適化操作。 値は、COMPACTIONVACUUMANALYZE、または CLUSTERINGになります。 COMPACTION
operation_id string 最適化操作に使用する ID。 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status string 最適化操作の状態。 値は SUCCESSFUL または FAILED: INTERNAL_ERROR になります。 SUCCESSFUL
operation_metrics マップ [string, string] 実行された特定の最適化に関する追加の詳細情報。 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 の 1 つのみです。 ESTIMATED_DBU
usage_quantity 小数 この操作で使用された使用量単位の量。 2.12

操作メトリック

operation_metrics列に記録されるメトリックは、操作の種類によって異なります。

  • COMPACTION: number_of_compacted_filesamount_of_data_compacted_bytesnumber_of_output_filesamount_of_output_data_bytes
  • VACUUM: number_of_deleted_filesamount_of_data_deleted_bytes
  • ANALYZE: amount_of_scanned_bytesnumber_of_scanned_filesstaleness_percentage_reduced
  • CLUSTERING: number_of_removed_filesnumber_of_clustered_filesamount_of_data_removed_bytesamount_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

最も多くのバイト数がバキューム処理されたテーブルはどれですか?

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