Condividi tramite


Informazioni di riferimento sul sistema di ottimizzazione predittiva table

Importante

Questo sistema table è in anteprima pubblica . Per accedere al table, il schema deve essere abilitato nel systemcatalog. Per ulteriori informazioni, vedere Abilitare gli schemi di sistema table.

Nota

Per avere accesso a questo table, è necessario abilitare l'storageschema (vedere Abilitare gli schemi di sistema table) e la tua regione deve supportare l'ottimizzazione predittiva (vedere Aree di Azure Databricks).

Questo articolo descrive la cronologia delle operazioni di ottimizzazione predittiva tableschema e fornisce query di esempio. L'ottimizzazione predittiva ottimizza il layout dei dati per migliorare le prestazioni e l'efficienza dei costi. Il sistema table tiene traccia della cronologia delle operazioni di questa funzionalità. Per informazioni sull'ottimizzazione predittiva, vedere Ottimizzazione predittiva per Unity Catalog gestita tables.

Table il percorso: questo sistema table si trova in system.storage.predictive_optimization_operations_history.

Considerazioni sul recapito

  • Il popolamento dei dati può richiedere fino a 24 ore.
  • L'ottimizzazione predittiva potrebbe eseguire più operazioni nello stesso cluster. In tal caso, la condivisione di DPU attribuite a ognuna delle più operazioni è approssimativa. Questo è il motivo per cui il usage_unit è set per ESTIMATED_DBU. Tuttavia, il numero totale di UNITÀ di database spese nel cluster sarà accurato.

Ottimizzazione predittiva tableschema

Il sistema di cronologia delle operazioni di ottimizzazione predittiva table usa i schemaseguenti:

nome Column Tipo di dati Descrizione Esempio
account_id string ID dell'account. 11e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string ID dell'area di lavoro in cui l'ottimizzazione predittiva ha eseguito l'operazione. 1234567890123456
start_time timestamp Ora di avvio dell'operazione. Le informazioni di Timezone 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 timestamp Ora di fine dell'operazione. Le informazioni di Timezone 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 string Nome del metastore al quale appartiene il table ottimizzato. metastore
metastore_id string ID del metastore a cui appartiene il table ottimizzato. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
catalog_name string Nome del catalog cui appartiene il table ottimizzato. catalog
schema_name string Nome del schema cui appartiene il table ottimizzato. schema
table_id string ID del tableottimizzato. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name string Nome del tableottimizzato. table1
operation_type string Operazione di ottimizzazione eseguita. Il valore sarà COMPACTION, VACUUM, ANALYZEo CLUSTERING. COMPACTION
operation_id string ID per l'operazione di ottimizzazione. 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status string Stato dell'operazione di ottimizzazione. Il valore sarà 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 string Unità di utilizzo che questa operazione ha incorrere. Può essere un solo valore: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity decimale Quantità dell'unità di utilizzo utilizzata da questa operazione. 2.12

Metriche operative

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

  • COMPACTION: number_of_compacted_files, amount_of_data_compacted_bytes, number_of_output_filesamount_of_output_data_bytes
  • VACUUM: number_of_deleted_files, amount_of_data_deleted_bytes
  • ANALYZE: amount_of_scanned_bytes, number_of_scanned_files, staleness_percentage_reduced
  • CLUSTERING: number_of_removed_files, number_of_clustered_files, amount_of_data_removed_bytesamount_of_clustered_data_bytes

Query di esempio

Le sezioni seguenti includono query di esempio che è possibile usare per ottenere informazioni dettagliate sul sistema di ottimizzazione predittiva table. Per il funzionamento di queste query, è necessario sostituire il parametro values con il proprio values.

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

In quale tables l'ottimizzazione predittiva ha speso di più 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 quale tables l'ottimizzazione predittiva esegue più operazioni?

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 catalog, 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 tables hanno avuto il maggior numero di byte ripuliti?

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 dalle ottimizzazioni predittive?

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