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

Visualização

Este recurso está em visualização pública.

Observação

Para ter acesso a essa tabela, o senhor deve habilitar o esquema storage (consulte Habilitar esquemas de tabela do sistema) e sua região deve suportar a otimização preditiva (consulte Databricks clouds e regiões).

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 Delta Lake.

Essa 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 parcela de DBUs atribuída a cada uma das múltiplas operações é aproximada. É por isso que o usage_unit é definido como 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

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

timestamp

O horário em que as operações começam.

2023-01-09 10:00:00.000

end_time

timestamp

O horário em que as operações terminaram.

2023-01-09 11:00:00.000

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

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 que foram realizadas. O valor será COMPACTION ou VACUUM.

COMPACTION

operation_id

string

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

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

operation_status

string

O status das operações de otimização. O valor será SUCCESSFUL ou FAILED: INTERNAL_ERROR.

SUCCESSFUL

operation_metrics

map[strings, strings]

Detalhes adicionais sobre a otimização específica que foi realizada. Para operações COMPACTION: (number_of_compacted_files, amount_of_data_compacted_bytes, number_of_output_files, amount_of_output_data_bytes) Para operações vacuum: (number_of_deleted_files, amount_of_data_deleted_bytes)

{"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 em que essa operação incorreu. Só pode ter um valor: ESTIMATED_DBU.

ESTIMATED_DBU

usage_quantity

decimal

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

2.12

Exemplo 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, o senhor precisa substituir os valores entre colchetes {{}} pelos seus próprios parâmetros.

Este artigo inclui os seguintes exemplos de consultas:

Quantas DBUs 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?

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

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