Optimización predictiva para las tablas administradas de Unity Catalog
La optimización predictiva elimina la necesidad de administrar manualmente las operaciones de mantenimiento de las tablas administradas por Unity Catalog en Azure Databricks.
Con la optimización predictiva habilitada, Azure Databricks identifica automáticamente las tablas que se beneficiarían de las operaciones de mantenimiento y las ejecuta por el usuario. Las operaciones de mantenimiento solo se ejecutan según es necesario, lo que elimina las ejecuciones innecesarias de operaciones de mantenimiento y la carga asociada al seguimiento y la solución de problemas de rendimiento.
Importante
La optimización predictiva solo se ejecuta en tablas administradas por el catálogo de Unity.
La optimización predictiva no se ejecuta en tablas de streaming ni vistas materializadas creadas en Databricks SQL o mediante canalizaciones de Delta Live Tables.
¿Qué operaciones ejecuta la optimización predictiva?
La optimización predictiva ejecuta automáticamente las siguientes operaciones para las tablas habilitadas:
Operación | Descripción |
---|---|
OPTIMIZE (1) |
Desencadena la agrupación en clústeres incrementales para tablas habilitadas. Consulte Uso de clústeres líquidos para tablas Delta. Mejora el rendimiento de las consultas porque optimiza el tamaño de los archivos. Consulte Optimización del diseño del archivo de datos. |
VACUUM |
Reduce los costos de almacenamiento porque elimina los archivos de datos a los que ya no hace referencia la tabla. Consulte Eliminación de archivos de datos sin usar con vacío. |
ANALYZE (2) |
Desencadena la actualización incremental de las estadísticas para mejorar el rendimiento de las consultas. |
(1) OPTIMIZE
no se ejecuta cuando se ejecuta ZORDER
con optimización predictiva.
(2) La optimización predictiva con ANALYZE
está en versión preliminar pública. Incluye la colección stastistics inteligente durante las escrituras. Use este formulario para registrarse en la versión preliminar pública. Durante la versión preliminar pública inicial, ANALYZE
los comandos se pueden ejecutar en tablas con hasta 1 TB de datos y 500 columnas o menos.
Advertencia
El período de retención del comando VACUUM
viene determinado por la propiedad de tabla delta.deletedFileRetentionDuration
, que tiene como valor predeterminado 7 días. Esto significa que VACUUM
quita los archivos de datos a los que ya no ha hecho referencia una versión de la tabla Delta en los últimos 7 días. Si desea conservar los datos durante más tiempo (por ejemplo, para viajes en el tiempo de más duración), debe establecer esta propiedad de tabla correctamente antes de habilitar la optimización predictiva, como en el ejemplo siguiente:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
¿Dónde se ejecuta la optimización predictiva?
La optimización predictiva identifica las tablas que se beneficiarían de ANALYZE
las operaciones , OPTIMIZE
y VACUUM
las pone en cola para ejecutarse mediante el proceso sin servidor para los trabajos. A su cuenta se le factura el proceso asociado a estas cargas de trabajo con una SKU específica de Databricks Managed Services. Consulte los precios de Databricks Managed Services. Azure Databricks proporciona tablas del sistema para tener observabilidad sobre las operaciones, los costos y los efectos de la optimización predictiva. Consulte Uso de tablas del sistema para hacer un seguimiento de la optimización predictiva.
Requisitos previos de la optimización predictiva
Debe cumplir los siguientes requisitos para habilitar la optimización predictiva:
El área de trabajo de Azure Databricks debe estar en el plan premium en una región que admita la optimización predictiva. Consultar Regiones de Azure Databricks.
Debe usar almacenes de SQL o Databricks Runtime 12.2 LTS o una versión posterior cuando habilite la optimización predictiva.
Solo se admiten tablas administradas por Unity Catalog.
Si necesita conectividad privada para las cuentas de almacenamiento, debe configurar la conectividad privada sin servidor. Consulte Configuración de la conectividad privada desde un proceso sin servidor.
Habilitación de la optimización predictiva
Debe habilitar la optimización predictiva en el nivel de cuenta.
Debe tener los siguientes privilegios para habilitar o deshabilitar la optimización predictiva en el nivel especificado:
Objeto de Unity Catalog | Privilegio |
---|---|
Cuenta | Administrador de cuentas |
Catálogo | Propietario del catálogo |
Esquema | Propietario del esquema |
Nota:
Al habilitar la optimización predictiva por primera vez, Azure Databricks crea automáticamente una entidad de servicio en la cuenta de Azure Databricks. Azure Databricks usa esta entidad de servicio para realizar las operaciones de mantenimiento solicitadas. Consulte: Administración de entidades de servicio.
Habilitación de la optimización predictiva para su cuenta
Un administrador de cuenta debe realizar los siguientes pasos para habilitar la optimización predictiva para todos los metastores de una cuenta:
- Acceder a la consola de cuentas.
- Ir a Configuración, Habilitación de característica.
- Seleccionar Habilitado junto a Optimización predictiva.
Nota:
Los metastores de regiones donde no se admite la optimización predictiva no están habilitados.
Habilitación o deshabilitación de la optimización predictiva para un catálogo o esquema
La optimización predictiva usa un modelo de herencia. Cuando se habilita para un catálogo, los esquemas heredan la propiedad. Las tablas de un esquema habilitado heredan la optimización predictiva. Para invalidar este comportamiento de herencia, puede deshabilitar explícitamente la optimización predictiva para un catálogo o esquema.
Nota:
Puede deshabilitar la optimización predictiva en el nivel de catálogo o esquema antes de habilitarla en el nivel de cuenta. Si la optimización predictiva se habilita más adelante en la cuenta, se bloquea para las tablas de estos objetos.
Utilice la siguiente sintaxis para habilitar o deshabilitar la optimización predictiva:
ALTER CATALOG [catalog_name] {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
ALTER {SCHEMA | DATABASE} schema_name {ENABLE | DISABLE} PREDICTIVE OPTIMIZATION;
Comprobación de si la optimización predictiva está habilitada
El campo Predictive Optimization
es una propiedad de Unity Catalog que detalla si la optimización predictiva está habilitada. Si la optimización predictiva se hereda de un objeto primario, se indica en el valor del campo.
Importante
Debe habilitar la optimización predictiva en el nivel de cuenta para ver este campo.
Utilice la siguiente sintaxis para ver si la optimización predictiva está habilitada:
DESCRIBE (CATALOG | SCHEMA | TABLE) EXTENDED name
Uso de tablas del sistema para hacer un seguimiento de la optimización predictiva
Azure Databricks proporciona una tabla del sistema para hacer un seguimiento del historial de operaciones de optimización predictiva. Consulte Referencia de la tabla del sistema de optimización predictiva.
Mensaje de error de vínculo privado
Si la tabla del sistema marca las operaciones como con errores con FAILED: PRIVATE_LINK_SETUP_ERROR
, es posible que no haya configurado correctamente el vínculo privado para el proceso sin servidor. Consulte Configuración de la conectividad privada desde un proceso sin servidor.
Limitaciones
La optimización predictiva no está disponible en todas las regiones. Consultar Regiones de Azure Databricks.
La optimización predictiva no ejecuta comandos OPTIMIZE
en tablas que usen el orden z.
La optimización predictiva no ejecuta operaciones VACUUM
en tablas con una ventana de retención de archivos configurada debajo del valor predeterminado de 7 días. Vea Configuración de la retención de datos para las consultas de viaje en el tiempo.
La optimización predictiva no realiza operaciones de mantenimiento en las siguientes tablas:
- Tablas cargadas en un área de trabajo como destinatarias de Delta Sharing.
- Tablas externas
- Vistas materializadas. Consulte Uso de vistas materializadas en Databricks SQL.
- Tablas de streaming. Consulte Carga de datos mediante tablas de secuencia en Databricks SQL.