Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Diese Systemtabelle befindet sich in der Public Preview.
Hinweis
Um Zugriff auf diese Tabelle zu haben, muss Ihre Region eine predictive Optimierung unterstützen. Weitere Informationen finden Sie unter 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 prädiktiven Optimierung finden Sie unter Prädiktive Optimierung für verwaltete Unity Catalog-Tabellen.
Tabellenpfad: Diese Systemtabelle befindet sich unter system.storage.predictive_optimization_operations_history.
Überlegungen zur Übermittlung
- Die Vorhersageoptimierungssystemtabelle wird innerhalb von zwei Stunden aktualisiert. Abrechnungsinformationen können jedoch bis zu 24 Stunden benötigen, bis die Daten angezeigt 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_unitaufESTIMATED_DBUfestgelegt. 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 |
Zeitstempel | Zeitpunkt, zu dem der Vorgang gestartet wurde Zeitzoneninformationen werden am Ende des Werts aufgezeichnet, wobei +00:00 die UTC darstellt. |
2023-01-09 10:00:00.000+00:00 |
end_time |
Zeitstempel | Zeitpunkt, zu dem der Vorgang beendet wurde Zeitzoneninformationen werden am Ende des Werts aufgezeichnet, wobei +00:00 die UTC darstellt. |
2023-01-09 11:00:00.000+00:00 |
metastore_name |
Zeichenfolge | Name des Metastores, zu dem die optimierte Tabelle gehört | metastore |
metastore_id |
Zeichenfolge | Die ID des Metastores, zu dem die optimierte Tabelle gehört. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
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 | Der ausgeführte Optimierungsvorgang. Muss einer der folgenden Werte sein: COMPACTION, , VACUUM, ANALYZE, , CLUSTERING, , AUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTIONoder COMPATIBILITY_MODE_REFRESH. |
COMPACTION |
operation_id |
Zeichenfolge | ID für den Optimierungsvorgang | 4dad1136-6a8f-418f-8234-6855cfaff18f |
operation_status |
Zeichenfolge | Status des Optimierungsvorgangs. Muss einer der folgenden Werte sein: SUCCESSFUL oder FAILED: INTERNAL_ERROR. |
SUCCESSFUL |
operation_metrics |
map[string, string] | Weitere Details zur spezifischen Optimierung, die ausgeführt wurde. Siehe Vorgangsmetriken. | {"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. Muss der folgende Wert sein: ESTIMATED_DBU. |
ESTIMATED_DBU |
usage_quantity |
Decimal | Menge der Verwendungseinheit, die von diesem Vorgang verwendet wurde | 2.12 |
Vorgangsmetriken
Die in der operation_metrics Spalte aufgezeichneten Metriken variieren je nach Vorgangstyp:
| Vorgangsname | Vorgangsbeschreibung | Vorgangsmetriken | Beschreibung |
|---|---|---|---|
COMPACTION |
Verbessert die Abfrageleistung durch Optimieren der Dateigrößen. Siehe Optimieren Sie das Layout der Datendatei. | number_of_compacted_files |
Die Anzahl der Dateien, die von diesem Vorgang entfernt wurden. |
amount_of_data_compacted_bytes |
Die Bytemenge, die von diesem Vorgang entfernt wurde. | ||
number_of_output_files |
Die Anzahl der neuen Dateien, die von diesem Vorgang hinzugefügt wurden. | ||
amount_of_output_data_bytes |
Die Von diesem Vorgang hinzugefügte Bytemenge. | ||
VACUUM |
Reduziert die Speicherkosten durch Löschen von Datendateien, auf die nicht mehr in der Tabelle verwiesen wird. Siehe Entfernen nicht verwendeter Datendateien mit Vakuum. | number_of_deleted_files |
Die Anzahl der Dateien, die von diesem Vorgang automatisch bereinigt werden. |
amount_of_data_deleted_bytes |
Von diesem Vorgang gesammelte Bytemenge. | ||
ANALYZE |
Startet die inkrementelle Aktualisierung von Statistiken zur Verbesserung der Abfrageleistung. Siehe ANALYZE TABLE. | amount_of_scanned_bytes |
Anzahl der Bytes, die durch diesen Vorgang gescannt wurden. |
number_of_scanned_files |
Die Anzahl der dateien, die von diesem Vorgang gescannt wurden. | ||
staleness_percentage_reduced |
Verringerung des Veraltungsprozentsatzes nach diesem Vorgang. Diese Statistik kann je nach ausführungshäufigkeit ANALYZE zwischen 0 und 100 liegen. |
||
CLUSTERING |
Löst das inkrementelle Clustering für aktivierte Tabellen aus. Siehe Verwenden von Flüssigclustering für Tabellen. | number_of_removed_files |
Die Anzahl der Dateien, die von diesem Vorgang entfernt wurden. |
number_of_clustered_files |
Die Anzahl der neuen Dateien, die von diesem Vorgang hinzugefügt wurden. | ||
amount_of_data_removed_bytes |
Die Bytemenge, die von diesem Vorgang entfernt wurde. | ||
amount_of_clustered_data_bytes |
Die Von diesem Vorgang hinzugefügte Bytemenge. | ||
AUTO_CLUSTERING_COLUMN_SELECTION |
Wertet aus, ob Clusteringspalten weiterentwickelt werden sollen. Siehe Automatische Flüssigkeitsclusterung. | old_clustering_columns |
Vorheriges Datenlayout, das alte Clusteringschlüssel oder „None“ sein kann, falls nicht partitioniert. |
new_clustering_columns |
Neue Clusterspalten, die durch diese Operation angewendet werden. | ||
has_column_selection_changed |
Gibt an, ob dieser Vorgang die Clusterspalten weiterentwickelt hat. | ||
additional_reason |
Gründe für die Änderung oder Nicht-Änderung von Clustering-Spalten. | ||
DATA_SKIPPING_COLUMN_SELECTION |
Erkennt Spalten mit fehlenden Daten, indem es Statistikdaten aus der Arbeitslast überspringt und die fehlenden Daten ergänzt. Siehe Datenüberspringen. | amount_of_scanned_bytes |
Die von diesem Vorgang gescannte Menge an Bytes. |
number_of_scanned_files |
Die Anzahl der dateien, die von diesem Vorgang gescannt wurden. | ||
added_data_skipping_columns |
Neu hinzugefügte Datensprungspalten wurden durch diesen Vorgang angewendet. | ||
removed_data_skipping_columns |
Daten überspringende Spalten wurden durch diesen Vorgang entfernt. | ||
old_data_skipping_columns |
Vorherige vollständige Liste der übersprungenen Datenspalten. | ||
new_data_skipping_columns |
Aktuelle vollständige Liste der Daten, die Spalten überspringen. | ||
COMPATIBILITY_MODE_REFRESH |
Erkennt, ob der Kompatibilitätsmodus veraltet ist und die Tabelle aktualisiert. Siehe Kompatibilitätsmodus. | N/A | Aktualisierungsvorgänge für den Kompatibilitätsmodus. |
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 Parameterwerte durch Ihre eigenen Werte ersetzen.
Dieser Artikel enthält die folgenden Beispielabfragen:
- Wie viele geschätzte DBUs hat die Vorhersageoptimierung in den letzten 30 Tagen verwendet?
- Für welche Tabellen hat die prädiktive Optimierung in den letzten 30 Tagen das meiste ausgegeben (geschätzte Kosten)?
- In welchen Tabellen führt die prädiktive Optimierung die meisten Vorgänge aus?
- Für einen bestimmten Katalog: Wie viele Bytes wurden komprimiert?
- In welchen Tabellen wurden die meisten Bytes bereinigt?
- Was ist die Erfolgsquote für Vorgänge, die von der Vorhersageoptimierung ausgeführt werden?
Wie viele DBUs wurden in den letzten 30 Tagen für die prädiktive Optimierung schätzungsweise verbraucht?
SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
usage_unit = "ESTIMATED_DBU"
AND timestampdiff(day, start_time, Now()) < 30;
Um denselben Wert für eine bestimmte ETL-Pipeline zu finden, können Sie zuerst die Tabellen in dieser Pipeline finden und dann nach den DBUs suchen:
-- 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;
In welchen Tabellen hat die prädiktive Optimierung in den letzten 30 Tagen die meisten aufgewendet (geschätzte Kosten)?
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;
Was ist die Erfolgsquote für Vorgänge, die von der Vorhersageoptimierung 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;