Optimización predictiva para las tablas administradas de Unity Catalog
Nota:
Para todas las cuentas creadas después del 11 de noviembre de 2024, Databricks habilita la optimización predictiva de forma predeterminada.
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 realiza automáticamente lo siguiente:
- Identifica las tablas que se beneficiarían de las operaciones de mantenimiento y las pone en cola para ejecutar estas operaciones.
- Recopila estadísticas cuando los datos se escriben en una tabla administrada.
Las operaciones de mantenimiento se ejecutan según sea necesario, lo que elimina las ejecuciones innecesarias para las operaciones de mantenimiento y la carga asociada con el 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 |
Desencadena la actualización incremental de las estadísticas para mejorar el rendimiento de las consultas. Consulte ANALYZE TABLE. |
(1)OPTIMIZE
no se ejecuta cuando se ejecuta ZORDER
con optimización predictiva.
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
Puede habilitar la optimización predictiva para una cuenta, un catálogo o un esquema. Todas las tablas administradas del catálogo de Unity heredan el valor de la cuenta de forma predeterminada. Puede invalidar el valor predeterminado de la cuenta de un catálogo o esquema para habilitar o deshabilitar la optimización predictiva en ese nivel.
Nota:
Si la cuenta se creó después del 11 de noviembre de 2024, la optimización predictiva está habilitada de forma predeterminada para su 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.
Habilitar o deshabilitar la optimización predictiva para la cuenta
Un administrador de cuenta puede completar los pasos siguientes para habilitar la optimización predictiva para todos los metastores de una cuenta. Los objetos de la cuenta heredarán esta configuración de forma predeterminada (pero la configuración se puede invalidar en el nivel de catálogo o esquema):
- Acceder a la consola de cuentas.
- Ir a Configuración, Habilitación de característica.
- Seleccione la opción que se va a usar (por ejemplo, Habilitado) junto a Optimización predictiva.
Nota:
- Los metastores de regiones donde no se admite la optimización predictiva no están habilitados.
- Deshabilitar la optimización predictiva en el nivel de cuenta no la deshabilita para catálogos o esquemas que lo han habilitado específicamente.
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 habilitar o 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.
Use la sintaxis siguiente para habilitar o deshabilitar la optimización predictiva, o para volver al valor predeterminado de heredar del objeto primario:
ALTER CATALOG [catalog_name] { ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION;
ALTER { SCHEMA | DATABASE } schema_name { ENABLE | DISABLE | INHERIT } 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.
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.