Condividi tramite


Tabella di riferimento del sistema di ottimizzazione predittiva

Importante

Questa tabella di sistema si trova in anteprima pubblica.

Nota

Per avere accesso a questa tabella, l'area deve supportare l'ottimizzazione predittiva. Vedere aree di Azure Databricks.

Questo articolo descrive lo schema della tabella della cronologia delle operazioni di ottimizzazione predittiva e fornisce query di esempio. L'ottimizzazione predittiva ottimizza il layout dei dati per migliorare le prestazioni e l'efficienza dei costi. La tabella di sistema tiene traccia della cronologia delle operazioni di questa funzionalità. Per informazioni sull'ottimizzazione predittiva, vedere Ottimizzazione predittiva per le tabelle gestite del Catalogo Unity.

percorso tabella: questa tabella di sistema si trova in system.storage.predictive_optimization_operations_history.

Considerazioni sul recapito

  • La tabella del sistema di ottimizzazione predittiva viene aggiornata entro due ore. Tuttavia, le informazioni di fatturazione possono richiedere fino a 24 ore per popolare i dati.
  • L'ottimizzazione predittiva potrebbe eseguire più operazioni nello stesso cluster. In tal caso, la quota di DBU attribuita a ciascuna delle operazioni multiple è approssimativa. Questo è il motivo per cui il usage_unit è impostato su ESTIMATED_DBU. Tuttavia, il numero totale di DBUs spese per il cluster sarà accurato.

Schema della tabella di ottimizzazione predittiva

La tabella di sistema della cronologia delle operazioni di ottimizzazione predittiva usa lo schema seguente:

Nome colonna Tipo di dati Descrizione Esempio
account_id corda ID dell'account. 11e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id corda ID dell'area di lavoro in cui l'ottimizzazione predittiva ha eseguito l'operazione. 1234567890123456
start_time Marca temporale Ora di avvio dell'operazione. Le informazioni sul fuso orario vengono registrate alla fine del valore con +00:00 che rappresenta l'ora UTC. 2023-01-09 10:00:00.000+00:00
end_time Marca temporale Ora di fine dell'operazione. Le informazioni sul fuso orario vengono registrate alla fine del valore con +00:00 che rappresenta l'ora UTC. 2023-01-09 11:00:00.000+00:00
metastore_name corda Nome del metastore cui appartiene la tabella ottimizzata. metastore
metastore_id corda ID del metastore a cui appartiene la tabella ottimizzata. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
catalog_name corda Nome del catalogo a cui appartiene la tabella ottimizzata. catalog
schema_name corda Nome dello schema a cui appartiene la tabella ottimizzata. schema
table_id corda ID della tabella ottimizzata. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name corda Nome della tabella ottimizzata. table1
operation_type corda Operazione di ottimizzazione eseguita. Deve essere uno dei valori seguenti: COMPACTION, VACUUM, ANALYZE, CLUSTERINGAUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTION, o COMPATIBILITY_MODE_REFRESH. COMPACTION
operation_id corda ID per l'operazione di ottimizzazione. 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status corda Stato dell'operazione di ottimizzazione. Deve essere uno dei valori seguenti: SUCCESSFUL o FAILED: INTERNAL_ERROR. SUCCESSFUL
operation_metrics map[string, string] Dettagli aggiuntivi sull'ottimizzazione specifica eseguita. Vedere Metriche delle operazioni. {"number_of_output_files":"100","number_of_compacted_files":"1000","amount_of_output_data_bytes":"4000","amount_of_data_compacted_bytes":"10000"}
usage_unit corda L'unità di utilizzo che questa operazione ha comportato. Deve essere il valore seguente: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity decimale Quantità dell'unità di utilizzo utilizzata da questa operazione. 2.12

Metriche operative

Le metriche registrate nella colonna operation_metrics variano a seconda del tipo di operazione:

Nome operazione Descrizione dell'operazione Metriche operative Descrizione
COMPACTION Migliora le prestazioni delle query ottimizzando le dimensioni dei file. Vedere Ottimizzare il layout dei file di dati. number_of_compacted_files Numero di file rimossi da questa operazione.
amount_of_data_compacted_bytes Quantità di byte rimossi da questa operazione.
number_of_output_files Numero di nuovi file aggiunti da questa operazione.
amount_of_output_data_bytes Quantità di byte aggiunti da questa operazione.
VACUUM Riduce i costi di archiviazione eliminando i file di dati non più a cui fa riferimento la tabella. Vedi Eliminazione dei file di dati inutilizzati con vacuum. number_of_deleted_files Numero di file raccolti dalla Garbage Collection in seguito a questa operazione.
amount_of_data_deleted_bytes Quantità di byte raccolti da questa operazione.
ANALYZE Attiva l'aggiornamento incrementale delle statistiche per migliorare le prestazioni delle query. Vedi ANALYZE TABLE. amount_of_scanned_bytes Quantità di byte analizzati da questa operazione.
number_of_scanned_files Numero di file analizzati da questa operazione.
staleness_percentage_reduced Riduzione della percentuale di decadimento dopo questa operazione. Questa statistica può variare da 0 a 100 in base alla frequenza ANALYZE eseguita.
CLUSTERING Attiva il clustering incrementale per le tabelle abilitate. Vedere Usare clustering liquido per le tabelle. number_of_removed_files Numero di file rimossi da questa operazione.
number_of_clustered_files Numero di nuovi file aggiunti da questa operazione.
amount_of_data_removed_bytes Quantità di byte rimossi da questa operazione.
amount_of_clustered_data_bytes Quantità di byte aggiunti da questa operazione.
AUTO_CLUSTERING_COLUMN_SELECTION Valuta se aggiornare le colonne di clustering. Per ulteriori informazioni, vedere Clustering liquido automatico. old_clustering_columns Layout dei dati precedente, che può essere costituito da chiavi di clustering precedenti o "Nessuno" se non partizionato.
new_clustering_columns Nuove colonne di clustering applicate da questa operazione.
has_column_selection_changed Indica se questa operazione ha modificato le colonne di clustering.
additional_reason Motivi della modifica o nessuna modifica nelle colonne di clustering.
DATA_SKIPPING_COLUMN_SELECTION Rileva le colonne con dati mancanti, ignorando le statistiche durante l'elaborazione, e le riempie nuovamente. Vedere Salto dati. amount_of_scanned_bytes Quantità di byte analizzati da questa operazione.
number_of_scanned_files Numero di file analizzati da questa operazione.
added_data_skipping_columns Le colonne di salto dati appena aggiunte sono state applicate da questa operazione.
removed_data_skipping_columns Colonne di salto dati rimosse da questa operazione.
old_data_skipping_columns Elenco completo precedente delle colonne di salto dei dati.
new_data_skipping_columns Elenco completo corrente delle colonne di salto dei dati.
COMPATIBILITY_MODE_REFRESH Rileva se la modalità di compatibilità non è aggiornata e aggiorna la tabella. Vedere Modalità di compatibilità. N/A Operazioni di aggiornamento della modalità di compatibilità.

Query di esempio

Le sezioni seguenti includono query di esempio che è possibile usare per ottenere informazioni dettagliate sulla tabella del sistema di ottimizzazione predittiva. Per il funzionamento di queste query, è necessario sostituire i valori dei parametri con i propri valori.

Questo articolo include le query di esempio seguenti:

Quanti DPU stimati hanno usato l'ottimizzazione predittiva negli ultimi 30 giorni?

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

Per trovare lo stesso valore per una pipeline ETL specifica, è prima possibile trovare le tabelle in tale pipeline e quindi cercare le DPU:

-- 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 quali tabelle l'ottimizzazione predittiva ha speso maggiormente negli ultimi 30 giorni (costo stimato)?

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;

Su quali tabelle viene eseguite la maggior parte delle operazioni di ottimizzazione predittiva?

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;

Per un determinato catalogo, quanti byte totali sono stati compattati?

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;

Quali tabelle hanno avuto il maggior numero di byte liberati?

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;

Qual è la frequenza di successo per le operazioni eseguite dall'ottimizzazione predittiva?

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;