Partilhar via


Referência da tabela do sistema de otimização preditiva

Importante

Esta tabela do sistema está em Visualização pública. Para acessar a tabela, o esquema deve ser habilitado em seu system catálogo. Para obter mais informações, consulte Habilitar esquemas de tabela do sistema.

Nota

Para ter acesso a essa tabela, você deve habilitar o storage esquema (consulte Habilitar esquemas de tabela do sistema) e sua região deve dar suporte à otimização preditiva (consulte Regiões do Azure Databricks).

Este artigo descreve o esquema da tabela de histórico de operações de otimização preditiva e fornece consultas de exemplo. A otimização preditiva otimiza o layout de dados para obter o máximo desempenho e eficiência de custos. A tabela do sistema rastreia o histórico de operações desse recurso. Para obter informações sobre otimização preditiva, consulte Otimização preditiva para tabelas gerenciadas do Unity Catalog.

Caminho da tabela: Esta tabela do sistema está localizada em system.storage.predictive_optimization_operations_history.

Considerações sobre a entrega

  • Os dados podem levar até 24 horas para serem preenchidos.
  • A otimização preditiva pode executar várias operações no mesmo cluster. Em caso afirmativo, a percentagem de DBU atribuída a cada uma das operações múltiplas é aproximada. É por isso que o usage_unit está definido para ESTIMATED_DBU. Ainda assim, o número total de DBUs gastos no cluster será preciso.

Esquema de tabela de otimização preditiva

A tabela do sistema de histórico de operações de otimização preditiva usa o seguinte esquema:

Nome da coluna Tipo de dados Description Exemplo
account_id string ID da conta. 11e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string A ID do espaço de trabalho no qual a otimização preditiva executou a operação. 1234567890123456
start_time carimbo de data/hora A hora em que a operação começou. As informações de fuso horário são registradas no final do valor com +00:00 a representação UTC. 2023-01-09 10:00:00.000+00:00
end_time carimbo de data/hora O momento em que a operação terminou. As informações de fuso horário são registradas no final do valor com +00:00 a representação UTC. 2023-01-09 11:00:00.000+00:00
metastore_name string O nome do metastore ao qual a tabela otimizada pertence. metastore
catalog_name string O nome do catálogo ao qual a tabela otimizada pertence. catalog
schema_name string O nome do esquema ao qual a tabela otimizada pertence. schema
table_id string A ID da tabela otimizada. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name string O nome da tabela otimizada. table1
operation_type string A operação de otimização que foi realizada. O valor será COMPACTION, VACUUM, ANALYZEou CLUSTERING. COMPACTION
operation_id string O ID da operação de otimização. 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status string O status da operação de otimização. O valor será SUCCESSFUL ou FAILED: INTERNAL_ERROR. SUCCESSFUL
operation_metrics map[string, string] Detalhes adicionais sobre a otimização específica que foi executada. Consulte Métricas de operação. {"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 A unidade de utilização em que esta operação incorreu. Só pode ser um valor: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity decimal A quantidade da unidade de uso que foi usada por esta operação. 2.12

Métricas de operação

As métricas registradas na operation_metrics coluna variam dependendo do tipo de operação:

  • COMPACTION: number_of_compacted_files, amount_of_data_compacted_bytes, number_of_output_files, amount_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_bytes, amount_of_clustered_data_bytes

Consultas de exemplo

As seções a seguir incluem consultas de exemplo que você pode usar para obter informações sobre a tabela do sistema de otimização preditiva. Para que essas consultas funcionem, você precisa substituir os valores entre colchetes {{}} por seus próprios parâmetros.

Este artigo inclui as seguintes consultas de exemplo:

Quantos DBUs estimados a otimização preditiva usou nos últimos 30 dias?

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

Em quais tabelas a otimização preditiva gastou mais nos últimos 30 dias (custo estimado)?

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

Em quais tabelas a otimização preditiva está realizando a maioria das operações?

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

Para um determinado catálogo, quantos bytes totais foram compactados?

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

Quais tabelas tiveram mais bytes aspirados?

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 é a taxa de sucesso das operações executadas por otimizações preditivas?

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