Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
Esta tabela do sistema está em Public Preview.
Nota
Para ter acesso a esta tabela, a sua região deve suportar 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 geridas pelo Unity Catalog.
Caminho da tabela: Esta tabela do sistema está localizada em system.storage.predictive_optimization_operations_history.
Considerações sobre a entrega
- A tabela do sistema de otimização preditiva atualiza-se dentro de duas horas. No entanto, a informação de faturação pode demorar até 24 horas a ser refletida nos dados.
- 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_unitestá configurado paraESTIMATED_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 | Descrição | Exemplo |
|---|---|---|---|
account_id |
cadeia (de caracteres) | ID da conta. | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
cadeia (de caracteres) | 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 representando 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 representando UTC. |
2023-01-09 11:00:00.000+00:00 |
metastore_name |
cadeia (de caracteres) | O nome do metastore ao qual a tabela otimizada pertence. | metastore |
metastore_id |
cadeia (de caracteres) | A ID do metastore ao qual a tabela otimizada pertence. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
catalog_name |
cadeia (de caracteres) | O nome do catálogo ao qual a tabela otimizada pertence. | catalog |
schema_name |
cadeia (de caracteres) | O nome do esquema ao qual a tabela otimizada pertence. | schema |
table_id |
cadeia (de caracteres) | O ID da tabela otimizada. | 138ebb4b-3757-41bb-9e18-52b38d3d2836 |
table_name |
cadeia (de caracteres) | O nome da tabela otimizada. | table1 |
operation_type |
cadeia (de caracteres) | A operação de otimização foi realizada. Deve ser um dos seguintes valores: COMPACTION, VACUUM, ANALYZE, CLUSTERING, AUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTION, ou COMPATIBILITY_MODE_REFRESH. |
COMPACTION |
operation_id |
cadeia (de caracteres) | O ID da operação de otimização. | 4dad1136-6a8f-418f-8234-6855cfaff18f |
operation_status |
cadeia (de caracteres) | O status da operação de otimização. Deve ser um dos seguintes valores: 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 |
cadeia (de caracteres) | A unidade de utilização em que esta operação incorreu. Deve ser o seguinte 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 coluna operation_metrics variam dependendo do tipo de operação:
| Nome da operação | Descrição da operação | Métricas de operação | Descrição |
|---|---|---|---|
COMPACTION |
Melhora o desempenho da consulta otimizando o tamanho dos arquivos. Consulte Otimizar o formato do arquivo de dados. | number_of_compacted_files |
Número de ficheiros removidos por esta operação. |
amount_of_data_compacted_bytes |
Quantidade de bytes removidos por esta operação. | ||
number_of_output_files |
Número de ficheiros novos adicionados por esta operação. | ||
amount_of_output_data_bytes |
Quantidade de bytes adicionados por esta operação. | ||
VACUUM |
Reduz os custos de armazenamento excluindo arquivos de dados que não são mais referenciados pela tabela. Consulte Remover arquivos de dados não utilizados com vácuo. | number_of_deleted_files |
Número de ficheiros recolhidos pela coleta de lixo por esta operação. |
amount_of_data_deleted_bytes |
Quantidade de bytes coletados de memória residual por esta operação. | ||
ANALYZE |
Aciona a atualização incremental de estatísticas para melhorar o desempenho da consulta. Consulte ANALYZE TABLE. | amount_of_scanned_bytes |
Quantidade de bytes digitalizados por esta operação. |
number_of_scanned_files |
Número de ficheiros digitalizados por esta operação. | ||
staleness_percentage_reduced |
Redução da percentagem de estagnação após esta operação. Esta estatística pode variar entre 0 e 100, dependendo da frequência executada ANALYZE . |
||
CLUSTERING |
Desencadeia a clusterização incremental para tabelas habilitadas. Veja Utilizar clustering líquido para tabelas. | number_of_removed_files |
Número de ficheiros removidos por esta operação. |
number_of_clustered_files |
Número de ficheiros novos adicionados por esta operação. | ||
amount_of_data_removed_bytes |
Quantidade de bytes removidos por esta operação. | ||
amount_of_clustered_data_bytes |
Quantidade de bytes adicionados por esta operação. | ||
AUTO_CLUSTERING_COLUMN_SELECTION |
Avalia se desenvolver colunas de agrupamento. Consulte Agrupamento automático de líquidos. | old_clustering_columns |
Disposição de dados anterior, que pode ser chaves de agrupamento antigas ou "Nenhuma" se não estiver particionada. |
new_clustering_columns |
Novas colunas de agrupamento aplicadas por esta operação. | ||
has_column_selection_changed |
Evoluiu esta operação as colunas de agrupamento? | ||
additional_reason |
Razões para a alteração ou ausência de alteração no agrupamento das colunas. | ||
DATA_SKIPPING_COLUMN_SELECTION |
Deteta colunas com dados em falta, ignorando as estatísticas da carga de trabalho, e preenche-as. Ver Salto de dados. | amount_of_scanned_bytes |
Quantidade de bytes digitalizados por esta operação. |
number_of_scanned_files |
Número de ficheiros digitalizados por esta operação. | ||
added_data_skipping_columns |
Colunas de saltos de dados recentemente adicionadas aplicadas por esta operação. | ||
removed_data_skipping_columns |
Colunas utilizadas para ignorar dados são removidas por esta operação. | ||
old_data_skipping_columns |
Lista exaustiva anterior de colunas de eliminação de dados. | ||
new_data_skipping_columns |
Lista atual exaustiva de colunas de omissão de dados. | ||
COMPATIBILITY_MODE_REFRESH |
Deteta se o Modo de Compatibilidade está desatualizado e atualiza a tabela. Consulte Modo de compatibilidade. | N/A | Operações de atualização do Modo de Compatibilidade. |
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 de parâmetro por seus próprios valores.
Este artigo inclui as seguintes consultas de exemplo:
- Quantos DBUs estimados a otimização preditiva usou nos últimos 30 dias?
- Em quais tabelas a otimização preditiva mais gastou nos últimos 30 dias (custo estimado)?
- Em quais tabelas a otimização preditiva está realizando mais operações?
- Para um determinado catálogo, quantos bytes totais foram compactados?
- Quais tabelas tiveram mais bytes aspirados?
- Qual é a taxa de sucesso das operações geridas pela otimização preditiva?
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;
Para encontrar o mesmo valor para um pipeline ETL específico, você pode primeiro encontrar as tabelas nesse pipeline e, em seguida, procurar as DBUs:
-- 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;
Em quais tabelas a otimização preditiva mais gastou 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 mais 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 geridas pela otimização preditiva?
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;