Pular para o conteúdo principal

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

info

Visualização

Essa tabela do sistema está em Pré-visualização Pública.

nota

Para ter acesso a esta tabela, sua região deve suportar otimização preditiva. Veja clouds e regiõesDatabricks.

Este artigo descreve o esquema da tabela de histórico de operações de otimização preditiva e fornece exemplos de consultas. A otimização preditiva otimiza a disposição de seus dados para obter desempenho máximo 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 Predictive optimization for Unity Catalog gerenciar tables.

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

Considerações de entrega

  • A tabela do sistema de otimização preditiva é atualizada em até duas horas. No entanto, as informações de faturamento podem levar até 24 horas para serem atualizadas.
  • A otimização preditiva pode executar várias operações no mesmo clustering. Em caso afirmativo, a parcela de DBUs atribuída a cada uma das múltiplas operações é aproximada. É por isso que o usage_unit está definido como ESTIMATED_DBU. Ainda assim, o número total de DBUs gastos no agrupamento 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

string

ID do site account.

11e22ba4-87b9-4cc2-9770-d10b894b7118

workspace_id

string

O ID do site workspace no qual a otimização preditiva executa as operações.

1234567890123456

start_time

carimbo de data/hora

O horário em que as operações começam. 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 horário em que as operações terminaram. 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

metastore_id

string

O ID do metastore ao qual a tabela otimizada pertence.

5a31ba44-bbf4-4174-bf33-e1fa078e6765

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

O ID da tabela otimizada.

138ebb4b-3757-41bb-9e18-52b38d3d2836

table_name

string

O nome da tabela otimizada.

table1

operation_type

string

As operações de otimização realizadas. 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

string

O ID para as operações de otimização.

4dad1136-6a8f-418f-8234-6855cfaff18f

operation_status

string

O estado das operações de otimização. Deve ser um dos seguintes valores: SUCCESSFUL ou FAILED: INTERNAL_ERROR.

SUCCESSFUL

operation_metrics

map[strings, strings]

Detalhes adicionais sobre a otimização específica que foi executada. Ver operações métricas.

{"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 medida utilizada nesta operação. Deve ser o seguinte valor: ESTIMATED_DBU.

ESTIMATED_DBU

usage_quantity

Decimal

A quantidade da unidade de uso que foi usada por essa operação.

2.12

operações métricas

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

nome de operações

descrição das operações

operationMetrics

Descrição

COMPACTION

Melhora o desempenho das consultas otimizando o tamanho dos arquivos. Consulte Otimizar a disposição do arquivo de dados.

number_of_compacted_files

Número de arquivos 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 novos arquivos adicionados por esta operação.

amount_of_output_data_bytes

Quantidade de bytes adicionados por esta operação.

VACUUM

Reduz os custos de armazenamento ao excluir arquivos de dados que não são mais referenciados pela tabela. Consulte Remover arquivos de dados não utilizados com o comando vacuum.

number_of_deleted_files

Número de arquivos coletados como lixo por esta operação.

amount_of_data_deleted_bytes

Quantidade de bytes coletados como lixo por esta operação.

ANALYZE

Aciona atualizações incrementais de estatísticas para melhorar o desempenho das consultas. Consulte ANALYZE TABLE.

amount_of_scanned_bytes

Quantidade de bytes lidos por esta operação.

number_of_scanned_files

Número de arquivos verificados por esta operação.

staleness_percentage_reduced

Redução na porcentagem de produtos rançosos após esta operação. Esta estatística pode variar entre 0 e 100 com base na frequência com que ANALYZE é executado.

CLUSTERING

Aciona clustering incremental para tabelas habilitadas. Consulte Usar clustering líquido para tabelas.

number_of_removed_files

Número de arquivos removidos por esta operação.

number_of_clustered_files

Número de novos arquivos 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 as colunas clustering devem ser evoluídas. Veja clusteringautomático de líquidos.

old_clustering_columns

Disponibilidade de dados anteriores, que podem ser a chave clustering antiga ou "Nenhum" se não particionada.

new_clustering_columns

Novas colunas clustering aplicadas por esta operação.

has_column_selection_changed

Se esta operação evoluiu as colunas clustering .

additional_reason

Motivos para a alteração ou não alteração nas colunas clustering .

DATA_SKIPPING_COLUMN_SELECTION

Detecta colunas com dados ausentes, ignorando as estatísticas da carga de trabalho, e as preenche retroativamente. Consulte Ignorando dados.

amount_of_scanned_bytes

Quantidade de bytes lidos por esta operação.

number_of_scanned_files

Número de arquivos verificados por esta operação.

added_data_skipping_columns

Colunas de dados puladas recém-adicionadas aplicadas por esta operação.

removed_data_skipping_columns

Colunas de dados ignoradas removidas por esta operação.

old_data_skipping_columns

Lista exaustiva anterior de colunas de dados ignoradas.

new_data_skipping_columns

Lista completa e atualizada de colunas que ignoram dados.

COMPATIBILITY_MODE_REFRESH

Detecta se Mode de Compatibilidade está desatualizado e atualiza a tabela. Consulte Modede Compatibilidade.

N/A

Operações refresh Mode compatibilidade.

Exemplos de consultas

As seções a seguir incluem exemplos de consultas que o senhor pode usar para obter percepções sobre a tabela do sistema de otimização preditiva. Para que essas consultas funcionem, você precisa substituir os valores dos parâmetros pelos seus próprios valores.

Este artigo inclui os seguintes exemplos de consultas:

Quantos DBus estimados foram usados na otimização preditiva nos últimos 30 dias?

SQL
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, o senhor pode primeiro encontrar as tabelas nesse pipeline e, em seguida, procurar as DBUs:

SQL
-- 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 gastou mais nos últimos 30 dias (custo estimado)?

SQL
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?

SQL
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?

SQL
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 o maior número de bytes vacuum?

SQL
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 na execução de operações por otimização preditiva?

SQL
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;