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

O ID da 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

A operação de otimização realizada. Deve ser um dos seguintes valores: COMPACTION, VACUUM, ANALYZE, CLUSTERING, AUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTION, COMPATIBILITY_MODE_REFRESH, DELETE ou PURGE.

COMPACTION

operation_id

string

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

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

operation_status

string

O status da operação de otimização. Deve ser um dos seguintes valores: SUCCESSFUL, FAILED: INTERNAL_ERROR, FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERROR ou FAILED: PRIVATE_LINK_SETUP_ERROR.

SUCCESSFUL

operation_metrics

map[strings, strings]

Os detalhes adicionais sobre a otimização específica que foi realizada. 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 incorrida. Deve ser o seguinte valor: ESTIMATED_DBU.

ESTIMATED_DBU

usage_quantity

Decimal

A quantidade da unidade de uso utilizada.

2.12

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

O ID da 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

A operação de otimização realizada. Deve ser um dos seguintes valores: COMPACTION, VACUUM, ANALYZE, CLUSTERING, AUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTION, COMPATIBILITY_MODE_REFRESH, DELETE ou PURGE.

COMPACTION

operation_id

string

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

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

operation_status

string

O status da operação de otimização. Deve ser um dos seguintes valores: SUCCESSFUL, FAILED: INTERNAL_ERROR, FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERROR ou FAILED: PRIVATE_LINK_SETUP_ERROR.

SUCCESSFUL

operation_metrics

map[strings, strings]

Os detalhes adicionais sobre a otimização específica que foi realizada. 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 incorrida. Deve ser o seguinte valor: ESTIMATED_DBU.

ESTIMATED_DBU

usage_quantity

Decimal

A quantidade da unidade de uso utilizada.

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

O número de arquivos removidos.

amount_of_data_compacted_bytes

O número de bytes removidos.

number_of_output_files

O número de novos arquivos adicionados.

amount_of_output_data_bytes

O número de bytes adicionados.

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

O número de arquivos coletados pela coleta de lixo.

amount_of_data_deleted_bytes

O número de bytes coletados pela coleta de lixo.

ANALYZE

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

amount_of_scanned_bytes

O número de bytes digitalizados.

number_of_scanned_files

O número de arquivos verificados.

staleness_percentage_reduced

A redução na porcentagem de obsolescência. Esta estatística pode variar de 0 a 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

O número de arquivos removidos.

number_of_clustered_files

O número de novos arquivos adicionados.

amount_of_data_removed_bytes

O número de bytes removidos.

amount_of_clustered_data_bytes

O número de bytes adicionados.

AUTO_CLUSTERING_COLUMN_SELECTION

Avalia se as colunas clustering devem ser evoluídas. Veja clusteringautomático de líquidos.

old_clustering_columns

A disposição de dados anterior, que pode ser chaves de clustering antigas ou "None" se não estiver particionada.

new_clustering_columns

As novas colunas de clustering.

has_column_selection_changed

O indicador de se as colunas de clustering foram alteradas.

additional_reason

Os motivos para a alteração ou não alteração nas colunas de 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

O número de bytes digitalizados.

number_of_scanned_files

O número de arquivos verificados.

added_data_skipping_columns

As colunas de omissão de dados adicionadas.

removed_data_skipping_columns

As colunas de omissão de dados removidas.

old_data_skipping_columns

A lista exaustiva anterior de colunas de omissão de dados.

new_data_skipping_columns

A lista exaustiva atual de colunas de omissão de dados.

COMPATIBILITY_MODE_REFRESH

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

N/A

As operações de refresh do Mode de Compatibilidade.

DELETE

Remove linhas que ultrapassaram o período de expiração do tempo de vida automático. Consulte Exclusão automática de linhas com tempo de vida automático.

number_of_deleted_rows

O número de linhas removidas. Isso é 0 quando nenhuma linha estava qualificada para exclusão.

amount_of_data_deleted_bytes

O número de bytes removidos.

PURGE

Reescreve arquivos de dados para remover fisicamente as linhas já excluídas com vetores de exclusão. Executa antes de VACUUM em tabelas com vetores de exclusão ativados. Consulte Exclusão automática de linhas com tempo de vida automático.

number_of_purged_rows

O número de linhas excluídas. Isto é 0 quando nenhuma linha estava elegível para exclusão. Consulte Exclusão automática de linhas com tempo de vida automático.

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

O número de arquivos removidos.

amount_of_data_compacted_bytes

O número de bytes removidos.

number_of_output_files

O número de novos arquivos adicionados.

amount_of_output_data_bytes

O número de bytes adicionados.

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

O número de arquivos coletados pela coleta de lixo.

amount_of_data_deleted_bytes

O número de bytes coletados pela coleta de lixo.

ANALYZE

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

amount_of_scanned_bytes

O número de bytes digitalizados.

number_of_scanned_files

O número de arquivos verificados.

staleness_percentage_reduced

A redução na porcentagem de obsolescência. Esta estatística pode variar de 0 a 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

O número de arquivos removidos.

number_of_clustered_files

O número de novos arquivos adicionados.

amount_of_data_removed_bytes

O número de bytes removidos.

amount_of_clustered_data_bytes

O número de bytes adicionados.

AUTO_CLUSTERING_COLUMN_SELECTION

Avalia se as colunas clustering devem ser evoluídas. Veja clusteringautomático de líquidos.

old_clustering_columns

A disposição de dados anterior, que pode ser chaves de clustering antigas ou "None" se não estiver particionada.

new_clustering_columns

As novas colunas de clustering.

has_column_selection_changed

O indicador de se as colunas de clustering foram alteradas.

additional_reason

Os motivos para a alteração ou não alteração nas colunas de 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

O número de bytes digitalizados.

number_of_scanned_files

O número de arquivos verificados.

added_data_skipping_columns

As colunas de omissão de dados adicionadas.

removed_data_skipping_columns

As colunas de omissão de dados removidas.

old_data_skipping_columns

A lista exaustiva anterior de colunas de omissão de dados.

new_data_skipping_columns

A lista exaustiva atual de colunas de omissão de dados.

COMPATIBILITY_MODE_REFRESH

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

N/A

As operações de refresh do Mode de Compatibilidade.

DELETE

Remove linhas que ultrapassaram o período de expiração do tempo de vida automático. Consulte Exclusão automática de linhas com tempo de vida automático.

number_of_deleted_rows

O número de linhas removidas. Isso é 0 quando nenhuma linha estava qualificada para exclusão.

amount_of_data_deleted_bytes

O número de bytes removidos.

PURGE

Reescreve arquivos de dados para remover fisicamente as linhas já excluídas com vetores de exclusão. Executa antes de VACUUM em tabelas com vetores de exclusão ativados. Consulte Exclusão automática de linhas com tempo de vida automático.

number_of_purged_rows

O número de linhas excluídas. Isto é 0 quando nenhuma linha estava elegível para exclusão. Consulte Exclusão automática de linhas com tempo de vida automático.

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;