Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Den här systemtabellen finns i offentlig förhandsversion.
Kommentar
För att få åtkomst till den här tabellen måste din region ha stöd för förutsägelseoptimering. Se vidare Azure Databricks-regioner.
Den här artikeln beskriver tabellschemat för förutsägande optimeringsåtgärdshistorik och innehåller exempelfrågor. Förutsägelseoptimering optimerar din datalayout för högsta prestanda och kostnadseffektivitet. Systemtabellen spårar drifthistoriken för den här funktionen. Information om förutsägande optimering finns i Förutsägande optimering för hanterade Unity Catalog-tabeller.
Tabellsökväg: Den här systemtabellen finns på system.storage.predictive_optimization_operations_history.
Skivtillgänglighet
Journaler är vanligtvis tillgängliga inom 12 timmar. Dataleverans för nya arbetsytor kan ta längre tid än så.
Överväganden
Förutsägande optimering kan köra flera åtgärder i samma kluster. I så fall uppskattas den andel av DBU:er som tillskrivs var och en av de olika åtgärderna. Därför är usage_unit inställt på ESTIMATED_DBU. Ändå är det totala antalet DBU:er som spenderas på klustret korrekt.
Tabellschema för förutsägande optimering
Systemtabellen för förutsägande optimeringsåtgärdshistorik använder följande schema:
| Kolumnnamn | Datatyp | beskrivning | Exempel |
|---|---|---|---|
account_id |
sträng | Kontots ID. | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
sträng | ID för arbetsytan där prediktiv optimering genomförde operationen. | 1234567890123456 |
start_time |
tidsstämpel | Tidpunkten då åtgärden startades. Tidszonsinformation registreras i slutet av värdet med +00:00 som representerar UTC. |
2023-01-09 10:00:00.000+00:00 |
end_time |
tidsstämpel | Tiden då åtgärden avslutades. Tidszonsinformation registreras i slutet av värdet med +00:00 som representerar UTC. |
2023-01-09 11:00:00.000+00:00 |
metastore_name |
sträng | Namnet på metaarkivet som den optimerade tabellen tillhör. | metastore |
metastore_id |
sträng | ID:t för metaarkivet som den optimerade tabellen tillhör. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
catalog_name |
sträng | Namnet på katalogen som den optimerade tabellen tillhör. | catalog |
schema_name |
sträng | Namnet på schemat som den optimerade tabellen tillhör. | schema |
table_id |
sträng | ID:t för den optimerade tabellen. För REFRESH_INDEX, är ID:t för indexet. |
138ebb4b-3757-41bb-9e18-52b38d3d2836 |
table_name |
sträng | Namnet på den optimerade tabellen. För REFRESH_INDEX, namnet på indexet. |
table1 |
operation_type |
sträng | Optimeringsåtgärden utfördes. Måste vara ett av följande värden: , , , , , AUTO_CLUSTERING_COLUMN_SELECTION, PURGEDELETECOMPATIBILITY_MODE_REFRESHDATA_SKIPPING_COLUMN_SELECTION, eller .REFRESH_INDEXCLUSTERINGANALYZEVACUUMCOMPACTION |
COMPACTION |
operation_id |
sträng | ID:t för optimeringsåtgärden. | 4dad1136-6a8f-418f-8234-6855cfaff18f |
operation_status |
sträng | Status för optimeringsåtgärden. Se Operationsstatusvärden. | SUCCESSFUL |
operation_metrics |
kartläggning[sträng, sträng] | De ytterligare detaljerna om den specifika optimeringen som utfördes. Se Åtgärdsmått. | {"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"} |
usage_unit |
sträng | Den enhet för användning som uppstod. Måste vara följande värde: ESTIMATED_DBU. |
ESTIMATED_DBU |
usage_quantity |
decimaltecken | Användningen av enheten som användes. | 2.12 |
Operationsstatusvärden
Kolumnen operation_status har något av följande värden:
-
SUCCESSFUL: Operationen slutfördes framgångsrikt. -
FAILED: INTERNAL_ERROR: Operationen misslyckades av en anledning som inte har en mer specifik status. -
FAILED: PRIVATE_LINK_SETUP_ERROR: Bordets molnlagring nekade tillgång till serverlös beräkning, vanligtvis på grund av Private Link- eller brandväggsinställningar. Se Serverlös beräkningsresurs-nätverk. -
FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERROR: Tidskolumnen i den automatiska time-to-live-policyn finns inte i tabellen, till exempel för att den togs bort eller bytte namn till. Se Automatisk borttagning av rader med automatisk livslängd. -
FAILED: TRANSACTION_CONFLICT_ERROR: Operationen krockade med en samtidig skrivning till tabellen. Se Konfliktundantag. -
FAILED: CANNOT_MODIFY_APPEND_ONLY_ERROR: Automatisk time-to-live kan inte radera eftersom tabellensappendOnlyegenskap ärtrue. Se tabellegenskaper. -
FAILED: DATATYPE_MISMATCH_ERROR: Tidskolumnen i den automatiska time-to-live-policyn har en annan datatyp änDATE,TIMESTAMP, ellerTIMESTAMP_NTZ. Se Automatisk borttagning av rader med automatisk livslängd.
Åtgärdsmått
Måtten som registreras i kolumnen operation_metrics varierar beroende på åtgärdstyp:
| Åtgärdsnamn | Åtgärdsbeskrivning | Åtgärdsmått | Beskrivning |
|---|---|---|---|
COMPACTION |
Förbättrar frågeprestanda genom att optimera filstorlekar. Se Optimera layouten för datafilen. | number_of_compacted_files |
Antalet filer som har tagits bort. |
amount_of_data_compacted_bytes |
Antalet borttagna byte. | ||
number_of_output_files |
Antalet nya filer som lagts till är det. | ||
amount_of_output_data_bytes |
Antalet bytes som lagts till. | ||
VACUUM |
Minskar lagringskostnaderna genom att ta bort datafiler som inte längre refereras till av tabellen. Se Ta bort oanvända datafiler med åtgärden "vacuum". | number_of_deleted_files |
Antalet filer som samlats in. |
amount_of_data_deleted_bytes |
Antalet bytes som samlas in som skräp. | ||
ANALYZE |
Utlöser inkrementell uppdatering av statistik för att förbättra frågeprestanda. Se ANALYZE TABLE ... BERÄKNINGSSTATISTIK. | amount_of_scanned_bytes |
Antalet bytes som skannats. |
number_of_scanned_files |
Antalet filer som skannats. | ||
staleness_percentage_reduced |
Nedgången i andelen gammalhet. Denna statistik kan variera från 0 till 100 beroende på hur ofta som ANALYZE körs. |
||
CLUSTERING |
Utlöser inkrementell klustring för aktiverade tabeller. Se Använda flytande klustring för tabeller. | number_of_removed_files |
Antalet filer som har tagits bort. |
number_of_clustered_files |
Antalet nya filer som lagts till är det. | ||
amount_of_data_removed_bytes |
Antalet borttagna byte. | ||
amount_of_clustered_data_bytes |
Antalet bytes som lagts till. | ||
AUTO_CLUSTERING_COLUMN_SELECTION |
Utvärderar om klustringskolumner ska utvecklas. Se Automatisk flytande klustring. | old_clustering_columns |
Den tidigare datalayouten, som kan vara gamla klustringnycklar eller "Ingen" om den är opartitionerad. |
new_clustering_columns |
De nya klustrande kolumnerna. | ||
has_column_selection_changed |
Indikatorn för om klustringskolumnerna har förändrats. | ||
additional_reason |
Orsakerna till förändringen eller ingen förändring i klustringskolumnerna. | ||
DATA_SKIPPING_COLUMN_SELECTION |
Identifierar kolumner med saknade data som hoppar över statistik från arbetsbelastningen och fyller på dem igen. Se Hoppa över data. | amount_of_scanned_bytes |
Antalet bytes som skannats. |
number_of_scanned_files |
Antalet filer som skannats. | ||
added_data_skipping_columns |
Kolumnerna för datahopp lades till. | ||
removed_data_skipping_columns |
Kolumnerna för datahopp är borttagna. | ||
old_data_skipping_columns |
Den tidigare uttömmande listan över kolumner som hoppar över data. | ||
new_data_skipping_columns |
Den nuvarande uttömmande listan över kolumner som hoppar över data. | ||
COMPATIBILITY_MODE_REFRESH |
Identifierar om kompatibilitetsläget är inaktuellt och uppdaterar tabellen. Se Kompatibilitetsläge. | N/A | Uppdateringsoperationerna i kompatibilitetsläget. |
DELETE |
Tar bort rader som har passerat den automatiska time-to-live-utgångsperioden. Se Automatisk borttagning av rader med automatisk livslängd. | number_of_deleted_rows |
Antalet borttagna rader. Detta var 0 när inga rader var berättigade att raderas. |
amount_of_data_deleted_bytes |
Antalet borttagna byte. | ||
PURGE |
Skriver om datafiler för att fysiskt ta bort rader som redan raderats med raderingsvektorer. Körs tidigare VACUUM på tabeller med raderingsvektorer aktiverade. Se Automatisk borttagning av rader med automatisk livslängd. |
number_of_purged_rows |
Antalet rader rensades. Det var 0 då inga rader var berättigade att rensa. Se Automatisk borttagning av rader med automatisk livslängd. |
REFRESH_INDEX |
Håller index uppdaterade med deras bastabell.
table_name och table_id bär indexets namn och ID. Se Automatisk indexuppdatering. |
refresh_type |
Den typ av uppdatering som kördes, såsom REGULAR (lägger till poster för ny data), FULL (tar också bort poster för borttagen data), eller PURGE (tar bort poster för rader rader raderade av automatisk time-to-live). |
staleness_percentage_reduced |
Den procentandel av bastabellens rader vars indexposter denna uppdatering uppdaterade. Denna statistik kan variera från 0 till 100. |
Exempelfrågor
Följande avsnitt innehåller exempelfrågor som du kan använda för att få insikter om systemtabellen för förutsägande optimering. För att dessa frågor ska fungera måste du ersätta parametervärdena med dina egna värden.
Den här artikeln innehåller följande exempelfrågor:
- Hur många uppskattade DBU:er har förutsägande optimering använts under de senaste 30 dagarna?
- På vilka tabeller spenderade förutsägelseoptimering mest under de senaste 30 dagarna (uppskattad kostnad)?
- På vilka tabeller utför förutsägande optimering flest åtgärder?
- Hur många totala byte har komprimerats för en viss katalog?
- Vilka tabeller hade flest antal byte rensade?
- Vad är framgångsgraden för åtgärder som körs av förutsägande optimering?
Hur många uppskattade DBU:er har förutsägande optimering använts under de senaste 30 dagarna?
SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
usage_unit = "ESTIMATED_DBU"
AND timestampdiff(day, start_time, Now()) < 30;
Om du vill hitta det samma värde för en specifik ETL-pipeline kan du först hitta tabellerna i denna pipeline och sedan söka efter DBUs.
-- 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;
På vilka tabeller spenderade förutsägelseoptimering mest under de senaste 30 dagarna (uppskattad kostnad)?
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;
På vilka tabeller utför prediktiv optimering flest åtgärder?
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;
Hur många totala byte har komprimerats för en viss katalog?
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;
Vilka tabeller har fått flest byte borttagna?
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;
Vad är framgångsgraden för åtgärder som körs av förutsägande optimering?
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;