Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta tabla del sistema está en versión preliminar pública.
Nota:
Para tener acceso a esta tabla, la región debe admitir la optimización predictiva. Consulte 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 tablas administradas de Unity Catalog.
Ruta de acceso de la tabla: esta tabla del sistema se encuentra en system.storage.predictive_optimization_operations_history.
Consideraciones de entrega
- La tabla del sistema de optimización predictiva se actualiza en dos horas. Sin embargo, la información de facturación puede tardar hasta 24 horas en rellenar los datos.
- La optimización predictiva puede ejecutar varias operaciones en el mismo clúster. Si es así, se aproxima la parte de DBUs atribuida a cada una de las múltiples operaciones. Este es el motivo por el que
usage_unitse establece enESTIMATED_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 de caracteres | Id. de la cuenta. | 11e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
cadena de caracteres | El id. del área de trabajo en la que la optimización predictiva ejecutó la operación. | 1234567890123456 |
start_time |
marca de tiempo | La hora a la que empezó la operación. La información de zona horaria se registra al final del valor con +00:00, que representa la hora UTC. |
2023-01-09 10:00:00.000+00:00 |
end_time |
marca de tiempo | La hora a la que finalizó la operación. La información de zona horaria se registra al final del valor con +00:00, que representa la hora UTC. |
2023-01-09 11:00:00.000+00:00 |
metastore_name |
cadena de caracteres | El nombre del metastore al que pertenece la tabla optimizada. | metastore |
metastore_id |
cadena de caracteres | Id. del metastore a la que pertenece la tabla optimizada. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
catalog_name |
cadena de caracteres | El nombre del catálogo al que pertenece la tabla optimizada. | catalog |
schema_name |
cadena de caracteres | El nombre del esquema al que pertenece la tabla optimizada. | schema |
table_id |
cadena de caracteres | El id. de la tabla optimizada. | 138ebb4b-3757-41bb-9e18-52b38d3d2836 |
table_name |
cadena de caracteres | El nombre de la tabla optimizada. | table1 |
operation_type |
cadena de caracteres | Operación de optimización realizada. Debe ser uno de los siguientes valores: COMPACTION, VACUUM, ANALYZE, CLUSTERING, AUTO_CLUSTERING_COLUMN_SELECTION, DATA_SKIPPING_COLUMN_SELECTION, COMPATIBILITY_MODE_REFRESH, DELETE, o PURGE. |
COMPACTION |
operation_id |
cadena de caracteres | El ID de la operación de optimización. | 4dad1136-6a8f-418f-8234-6855cfaff18f |
operation_status |
cadena de caracteres | El estado de la operación de optimización. Debe ser uno de los siguientes valores: SUCCESSFUL, FAILED: INTERNAL_ERROR, FAILED: AUTO_TTL_COLUMN_DOES_NOT_EXIST_ERRORo FAILED: PRIVATE_LINK_SETUP_ERROR. |
SUCCESSFUL |
operation_metrics |
map[string, string] | Los detalles adicionales sobre la optimización específica que se realizó. Consulte Métricas de operación. | {"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 de caracteres | La unidad de uso incurrida. Debe ser el siguiente valor: ESTIMATED_DBU. |
ESTIMATED_DBU |
usage_quantity |
Decimal | La cantidad de la unidad de uso utilizada. | 2.12 |
Métricas de operación
Las métricas registradas en la operation_metrics columna varían en función del tipo de operación:
| Nombre de la operación | Descripción de la operación | Métricas de operación | Descripción |
|---|---|---|---|
COMPACTION |
Mejora el rendimiento de las consultas porque optimiza el tamaño de los archivos. Consulte Optimización del diseño del archivo de datos. | number_of_compacted_files |
Número de archivos eliminados. |
amount_of_data_compacted_bytes |
Número de bytes quitados. | ||
number_of_output_files |
El número de archivos nuevos añadidos. | ||
amount_of_output_data_bytes |
El número de bytes añadidos. | ||
VACUUM |
Reduce los costos de almacenamiento porque elimina los archivos de datos a los que ya no hace referencia la tabla. Consulte Eliminar archivos de datos sin usar con el comando vacuum. | number_of_deleted_files |
El número de archivos recogidos. |
amount_of_data_deleted_bytes |
El número de bytes recogidos como basura. | ||
ANALYZE |
Desencadena la actualización incremental de las estadísticas para mejorar el rendimiento de las consultas. Ver ANALYZE TABLE ... ESTADÍSTICAS DE PROCESO. | amount_of_scanned_bytes |
El número de bytes escaneados. |
number_of_scanned_files |
El número de archivos escaneados. | ||
staleness_percentage_reduced |
La reducción del porcentaje de estancamiento. Esta estadística puede variar de 0 a 100 según la frecuencia que ANALYZE se ejecute. |
||
CLUSTERING |
Desencadena la agrupación en clústeres incrementales para tablas habilitadas. Consulte Uso de clústeres líquidos para tablas. | number_of_removed_files |
Número de archivos eliminados. |
number_of_clustered_files |
El número de archivos nuevos añadidos. | ||
amount_of_data_removed_bytes |
Número de bytes quitados. | ||
amount_of_clustered_data_bytes |
El número de bytes añadidos. | ||
AUTO_CLUSTERING_COLUMN_SELECTION |
Evalúa si se van a evolucionar las columnas de agrupación en clústeres. Consulte Agrupación automática de líquidos. | old_clustering_columns |
La disposición de datos anterior, que puede ser claves de clustering antiguas o "Ninguna" si no está particionada. |
new_clustering_columns |
Las nuevas columnas agrupadas. | ||
has_column_selection_changed |
El indicador de si las columnas de agrupamiento cambiaron. | ||
additional_reason |
Las razones del cambio o no cambio en el agrupamiento de columnas. | ||
DATA_SKIPPING_COLUMN_SELECTION |
Detecta columnas con datos ausentes, omitiendo las estadísticas de la carga de trabajo, y las completa retrospectivamente. Consulte Omisión de datos. | amount_of_scanned_bytes |
El número de bytes escaneados. |
number_of_scanned_files |
El número de archivos escaneados. | ||
added_data_skipping_columns |
Se añadieron columnas de saltos de datos. | ||
removed_data_skipping_columns |
Se eliminaron las columnas de saltos de datos. | ||
old_data_skipping_columns |
La lista exhaustiva anterior de columnas de datos que se saltan. | ||
new_data_skipping_columns |
La lista exhaustiva actual de columnas que saltan datos. | ||
COMPATIBILITY_MODE_REFRESH |
Detecta si el modo de compatibilidad no está actualizado y actualiza la tabla. Consulte Modo de compatibilidad. | N/A | Las operaciones de refresco del Modo de Compatibilidad. |
DELETE |
Elimina las filas que han pasado el periodo de caducidad automática de tiempo de activación. Consulte Eliminación automática de filas con tiempo de vida automático. | number_of_deleted_rows |
Número de filas eliminadas. Esto ocurre 0 cuando ninguna fila era elegible para ser eliminada. |
amount_of_data_deleted_bytes |
Número de bytes quitados. | ||
PURGE |
Reescribe archivos de datos para eliminar físicamente filas ya eliminadas con vectores de borrado. Se ejecuta antes VACUUM en tablas con vectores de eliminación activados. Consulte Eliminación automática de filas con tiempo de vida automático. |
number_of_purged_rows |
El número de filas purgadas. Esto ocurría 0 cuando ninguna disputa era elegible para ser purgada. Consulte Eliminación automática de filas con tiempo de vida automático. |
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, debes reemplazar los valores del parámetro por tus propios valores.
En este artículo se incluyen las siguientes consultas de ejemplo:
- ¿Cuántas DBU estimadas ha usado la optimización predictiva en los últimos 30 días?
- ¿En qué tablas invirtió más la optimización predictiva en los últimos 30 días (estimación de costos)?
- ¿En qué tablas la optimización predictiva realiza la mayoría de las operaciones?
- Para un catálogo determinado, ¿cuál es el total de bytes que se ha compactado?
- ¿En qué tablas se quitaron la mayor cantidad de bytes?
- ¿Cuál es la tasa de éxito de las operaciones ejecutadas por la optimización predictiva?
¿Cuántas DBUs estimadas ha usado 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;
Para buscar el mismo valor para una canalización de ETL específica, primero puede encontrar las tablas de esa canalización y, a continuación, buscar las DBU:
-- 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;
¿En qué tablas la optimización predictiva pasó más tiempo en los últimos 30 días (coste 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;
¿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 la optimización predictiva?
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;