Referens för tabell i system för förutsägande optimering

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.

Leveransöverväganden

  • Systemtabellen för förutsägande optimering uppdateras inom två timmar. Faktureringsinformation kan dock ta upp till 24 timmar innan den visas i systemet.
  • 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 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. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name sträng Namnet på den optimerade tabellen. table1
operation_type sträng Optimeringsåtgärden utfördes. Måste vara ett av följande värden: , , , , , AUTO_CLUSTERING_COLUMN_SELECTIONDATA_SKIPPING_COLUMN_SELECTION, COMPATIBILITY_MODE_REFRESH, DELETE, eller PURGE. CLUSTERINGANALYZEVACUUMCOMPACTION 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. Måste vara något av följande värden: SUCCESSFUL, FAILED: INTERNAL_ERROR, FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERROReller FAILED: PRIVATE_LINK_SETUP_ERROR. 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

Å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.

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?

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;