Share via


Informazioni di riferimento sulla tabella di sistema di ottimizzazione predittiva

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Nota

Per avere accesso a questa tabella, è necessario abilitare lo storage schema (vedere Abilitare gli schemi di tabella di sistema) e 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 Delta Lake.

Questa tabella di sistema 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 usage_unit motivo per cui è impostato su ESTIMATED_DBU. Tuttavia, il numero totale di UNITÀ di database spese nel 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 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. 2023-01-09 10:00:00.000
end_time timestamp Ora di fine dell'operazione. 2023-01-09 11:00:00.000
metastore_name string Nome del metastore a cui appartiene la tabella ottimizzata. metastore
catalog_name string Nome del catalogo a cui appartiene la tabella ottimizzata. catalog
schema_name string Nome dello schema a cui appartiene la tabella ottimizzata. schema
table_id string ID della tabella ottimizzata. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name string Nome della tabella ottimizzata. table1
operation_type string Operazione di ottimizzazione eseguita. Il valore sarà COMPACTION o VACUUM. 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. Per le operazioni COMPACTION: (number_of_compacted_files, amount_of_data_compacted_bytes, number_of_output_files, amount_of_output_data_bytes) Per operazioni VACUUM: (number_of_deleted_files, amount_of_data_deleted_bytes) {"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

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 tra parentesi graffe {{}} con i propri parametri.

Questo articolo include le query di esempio seguenti:

Quanti DPU 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 quali tabelle l'ottimizzazione predittiva ha trascorso di più negli ultimi 30 giorni?

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

In quali tabelle viene eseguita l'ottimizzazione predittiva che esegue la maggior parte delle 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 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 avevano il maggior numero di byte a vuoto?

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