Freigeben über


Referenz zur Systemtabelle für die prädiktive Optimierung

Wichtig

Dieses Feature befindet sich in der Public Preview.

Hinweis

Für den Zugriff auf diese Tabelle müssen Sie das storage-Schema aktivieren (siehe Aktivieren von Systemtabellenschemas), und Ihre Region muss die Vorhersageoptimierung unterstützen (siehe Azure Databricks-Regionen).

In diesem Artikel wird das Schema der Verlaufstabelle für die prädiktive Optimierung beschrieben, und es werden Beispielabfragen bereitgestellt. Die prädiktive Optimierung optimiert Ihr Datenlayout für Spitzenleistung und Kosteneffizienz. Die Systemtabelle verfolgt den Vorgangsverlauf dieses Features. Informationen zur Predictive Optimization finden Sie unter Predictive Optimization für Delta Lake.

Diese Systemtabelle befindet sich unter system.storage.predictive_optimization_operations_history.

Überlegungen zur Übermittlung

  • Daten können bis zu 24 Stunden lang aufgefüllt werden.
  • Die prädiktive Optimierung kann mehrere Vorgänge im selben Cluster ausführen. In diesem Fall wird der Anteil der DBUs geschätzt, die jedem der verschiedenen Vorgänge zugeordnet sind. Aus diesem Grund ist usage_unit auf ESTIMATED_DBU festgelegt. Dennoch ist die Gesamtanzahl der für den Cluster aufgewendeten DBUs genau.

Tabellenschema für die prädikative Optimierung

In der Systemtabelle für den Verlauf der prädiktiven Optimierung wird das folgende Schema verwendet:

Spaltenname Datentyp Beschreibung Beispiel
account_id Zeichenfolge ID des Kontos 11e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id Zeichenfolge ID des Arbeitsbereichs, in dem die prädiktive Optimierung den Vorgang ausgeführt hat 1234567890123456
start_time timestamp Zeitpunkt, zu dem der Vorgang gestartet wurde 2023-01-09 10:00:00.000
end_time timestamp Zeitpunkt, zu dem der Vorgang beendet wurde 2023-01-09 11:00:00.000
metastore_name Zeichenfolge Name des Metastores, zu dem die optimierte Tabelle gehört metastore
catalog_name Zeichenfolge Name des Katalogs, zu dem die optimierte Tabelle gehört catalog
schema_name Zeichenfolge Name des Schemas, zu dem die optimierte Tabelle gehört schema
table_id Zeichenfolge ID der optimierten Tabelle 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name Zeichenfolge Name der optimierten Tabelle table1
operation_type Zeichenfolge Optimierungsvorgang, der ausgeführt wurde. Der Wert ist COMPACTION oder VACUUM. COMPACTION
operation_id Zeichenfolge ID für den Optimierungsvorgang 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status Zeichenfolge Status des Optimierungsvorgangs. Der Wert ist SUCCESSFUL oder FAILED: INTERNAL_ERROR. SUCCESSFUL
operation_metrics map[string, string] Weitere Details zur spezifischen Optimierung, die ausgeführt wurde. Für COMPACTION-Vorgänge: (number_of_compacted_files, amount_of_data_compacted_bytes, number_of_output_files, amount_of_output_data_bytes) Für VACUUM-Vorgänge: (number_of_deleted_files, amount_of_data_deleted_bytes) {"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"}
usage_unit Zeichenfolge Die Verbrauchseinheit, die für diesen Vorgang entstanden ist. Kann nur einen Wert haben: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity Decimal Menge der Verwendungseinheit, die von diesem Vorgang verwendet wurde 2.12

Beispielabfragen

Die folgenden Abschnitte enthalten Beispielabfragen, mit denen Sie Erkenntnisse zur Systemtabelle der prädiktiven Optimierung gewinnen können. Damit diese Abfragen funktionieren, müssen Sie die Werte in geschweiften Klammern {{}} durch Ihre eigenen Parameter ersetzen.

Dieser Artikel enthält die folgenden Beispielabfragen:

Wie viele DBUs wurden in den letzten 30 Tagen für die prädiktive Optimierung verbraucht?

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

In welchen Tabellen hat die prädiktive Optimierung in den letzten 30 Tagen die meisten aufgewendet?

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

In welchen Tabellen führt die prädiktive Optimierung die meisten Vorgänge aus?

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

Für einen bestimmten Katalog: Wie viele Bytes wurden komprimiert?

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

In welchen Tabellen wurden die meisten Bytes bereinigt?

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

Wie hoch ist die Erfolgsquote für Vorgänge, die bei der prädiktiven Optimierung ausgeführt werden?

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