Referencia de la tabla del sistema de optimización predictiva

Importante

Esta característica está en versión preliminar pública.

Nota:

Para tener acceso a esta tabla, debe habilitar el esquema de storage (vea Habilitar esquemas de tablas del sistema) y su región debe ser compatible con la optimización predictiva (vea Regiones de Azure Databricks).

En este artículo, se describe el esquema de la tabla del historial de operaciones de optimización predictiva y se proporcionan consultas de ejemplo. La optimización predictiva optimiza el diseño de los datos para lograr un rendimiento máximo y una eficiencia de costos. La tabla del sistema realiza un seguimiento del historial de operaciones de esta característica. Para obtener información sobre la optimización predictiva, consulte Optimización predictiva para Delta Lake.

La tabla del sistema se encuentra en system.storage.predictive_optimization_operations_history.

Consideraciones de entrega

  • Los datos pueden tardar hasta 24 horas en rellenarse.
  • La optimización predictiva puede ejecutar varias operaciones en el mismo clúster. Si es así, se estima el recurso compartido de DBU que se atribuye a cada una de las varias operaciones. Este es el motivo por el que usage_unit se establece en ESTIMATED_DBU. Sin embargo, el número total de DBU usados en el clúster será preciso.

Esquema de tabla de optimización predictiva

La tabla del sistema del historial de operaciones de optimización predictiva usa el esquema siguiente:

Nombre de la columna Tipo de datos Descripción Ejemplo
account_id cadena Id. de la cuenta. 11e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id cadena El id. del área de trabajo en la que la optimización predictiva ejecutó la operación. 1234567890123456
start_time timestamp La hora a la que empezó la operación. 2023-01-09 10:00:00.000
end_time timestamp La hora a la que finalizó la operación. 2023-01-09 11:00:00.000
metastore_name cadena El nombre del metastore al que pertenece la tabla optimizada. metastore
catalog_name cadena El nombre del catálogo al que pertenece la tabla optimizada. catalog
schema_name cadena El nombre del esquema al que pertenece la tabla optimizada. schema
table_id cadena El id. de la tabla optimizada. 138ebb4b-3757-41bb-9e18-52b38d3d2836
table_name cadena El nombre de la tabla optimizada. table1
operation_type cadena La operación de optimización que se realizó. El valor será COMPACTION o VACUUM. COMPACTION
operation_id cadena El id. de la operación de optimización. 4dad1136-6a8f-418f-8234-6855cfaff18f
operation_status cadena El estado de la operación de optimización. El valor será SUCCESSFUL o FAILED: INTERNAL_ERROR. SUCCESSFUL
operation_metrics map[string, string] Detalles adicionales sobre la optimización específica que se realizó. Para las operaciones COMPACTION: (number_of_compacted_files, amount_of_data_compacted_bytes, number_of_output_files, amount_of_output_data_bytes) Para las operaciones 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 cadena La unidad de uso que usó esta operación. Solo puede ser un valor: ESTIMATED_DBU. ESTIMATED_DBU
usage_quantity Decimal La cantidad de unidades de uso que usó esta operación. 2.12

Consultas de ejemplo

En las secciones siguientes se incluyen consultas de ejemplo que puede usar para obtener información de la tabla del sistema de optimización predictiva. Para que estas consultas funcionen, debe reemplazar los valores entre corchetes {{}} con sus propios parámetros.

En este artículo se incluyen las siguientes consultas de ejemplo:

¿Cuántas DBU usó la optimización predictiva en los últimos 30 días?

SELECT SUM(usage_quantity)
FROM system.storage.predictive_optimization_operations_history
WHERE
     usage_unit = "ESTIMATED_DBU"
     AND  timestampdiff(day, start_time, Now()) < 30

¿En qué tablas la optimización predictiva pasó más tiempo en los últimos 30 días?

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

¿En qué tablas la optimización predictiva realiza la mayoría de las operaciones?

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 un catálogo determinado, ¿cuál es el total de bytes que se ha compactado?

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

¿En qué tablas se quitaron la mayor cantidad de bytes?

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

¿Cuál es la tasa de éxito de las operaciones ejecutadas por las optimizaciones predictivas?

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