Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 suESTIMATED_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?
- In quali tabelle l'ottimizzazione predittiva ha speso maggiormente negli ultimi 30 giorni (costo stimato)?
- Sulle quali tabelle l'ottimizzazione predittiva esegue la maggior parte delle operazioni?
- Per un determinato catalogo, quanti byte totali sono stati compattati?
- Quali tabelle avevano più byte ripuliti?
- Qual è la frequenza di successo per le operazioni eseguite dall'ottimizzazione predittiva?
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;