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 estar habilitado em seu catálogo system
. Para obter mais informações, consulte Habilitar esquemas da tabela do sistema.
Observação
Para ter acesso a essa tabela, você deve habilitar o esquema storage
(consulte Habilitar os 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 seu layout de dados para desempenho de pico e eficiência de custo. A tabela do sistema acompanha o histórico de operações desse recurso. Para obter informações sobre otimização preditiva, consulte Otimização preditiva para tabelas gerenciadas do Catálogo do Unity.
Caminho da tabela: Esta tabela do sistema está localizada em system.storage.predictive_optimization_operations_history
.
Considerações sobre entrega
- Os dados podem levar até 24 horas para serem preenchidos.
- A otimização preditiva pode executar várias operações no mesmo cluster. Nesse caso, o compartilhamento de DBUs atribuído a cada uma das várias operações é aproximado. É por isso que o
usage_unit
está definido comoESTIMATED_DBU
. Ainda assim, o número total de DBUs gastos no cluster será preciso.
Esquema da 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 | Descrição | Exemplo |
---|---|---|---|
account_id |
string | ID da conta. | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | A ID do workspace no qual a otimização preditiva executou a operação. | 1234567890123456 |
start_time |
timestamp | A hora em que a operação foi iniciada. As informações de fuso horário são registradas no final do valor, com +00:00 representando UTC. |
2023-01-09 10:00:00.000+00:00 |
end_time |
timestamp | A hora em que a operação terminou. As informações de fuso horário são registradas no final do valor, com +00:00 representando 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 executada. O valor será COMPACTION , VACUUM , ANALYZE ou CLUSTERING . |
COMPACTION |
operation_id |
string | A 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 uso que esta operação incorreu. Pode ser apenas um valor: ESTIMATED_DBU . |
ESTIMATED_DBU |
usage_quantity |
decimal | A quantidade da unidade de uso que foi usada por essa operação. | 2.12 |
Métricas de operação
As métricas registradas na operation_metrics
coluna variam de acordo com o 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 insights sobre a tabela do sistema de otimização preditiva. Para que essas consultas funcionem, você precisa substituir os valores dentro de colchetes {{}}
com seus próprios parâmetros.
Este artigo inclui as seguintes consultas de exemplo:
- Quantas DBUs têm otimização preditiva usada nos últimos 30 dias?
- Em quais tabelas a otimização preditiva gastou mais nos últimos 30 dias?
- Em quais tabelas a otimização preditiva está executando a maioria das operações?
- Para um determinado catálogo, quantos bytes totais foram compactados?
- Quais tabelas tinham mais bytes aspirados?
- Qual é a taxa de sucesso para operações executadas por otimizações preditivas?
Quantas DBUs estimadas têm otimização preditiva usada 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á executando 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 tinham 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 para 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