Compartir a través de


Habilitación del modo de publicación predeterminado en una canalización

En este artículo se describe cómo migrar canalizaciones que usan el LIVE esquema virtual (el modo de publicación heredado) al modo de publicación predeterminado.

El modo de publicación predeterminado permite que una sola canalización escriba en varios catálogos y esquemas, e incluye una sintaxis simplificada para trabajar con tablas y vistas dentro de la canalización. El modo de publicación heredado se considera en desuso y Databricks recomienda migrar todas las canalizaciones al modo de publicación predeterminado.

La migración afecta a los metadatos de la pipeline, pero no lee, mueve ni escribe en ningún conjunto de datos.

Cómo determinar si tu pipeline utiliza el modo de publicación heredado

Las canalizaciones del modo de publicación heredadas se indican en el campo Resumen de la interfaz de usuario de configuración de canalizaciones declarativas de Spark de Lakeflow.

Consideraciones para migrar al modo de publicación predeterminado

Las notas siguientes son útiles para tener en cuenta durante la migración:

  • Después de migrar una canalización al modo de publicación predeterminado, no se puede volver a migrar al uso del LIVE esquema virtual.
  • Es posible que tenga que preparar su pipeline para la migración abordando cualquier cambio de sintaxis entre los modos de publicación heredado y predeterminado. La mayoría de las canalizaciones no requieren cambios. Para más información, consulte Preparación de canalizaciones para la migración.
  • La migración solo afecta a los metadatos. No lee, mueve ni escribe en ningún conjunto de datos.
  • En el modo de publicación predeterminado, las vistas materializadas y las tablas de streaming no se pueden mover entre esquemas una vez creados.
  • El modo de publicación predeterminado requiere la versión v0.230.0 de la CLI de Databricks o superior. Consulte Instalación o actualización de la CLI de Databricks.

Migración al modo de publicación predeterminado

Siga estos pasos para migrar al modo de publicación predeterminado.

  1. Haga clic en Trabajos y canalizaciones en la barra lateral izquierda del área de trabajo.

  2. Haga clic en el nombre de la canalización que desea migrar en la lista.

  3. Pausar actualizaciones y dejar que cualquier pipeline que se esté ejecutando actualmente se detenga.

    Al menos una actualización debe haberse ejecutado en los últimos 60 días antes de completar la migración. Si la canalización se desencadena o ya se ha pausado, ejecute manualmente una sola actualización. Si la canalización es continua, asegúrese de que llegue a (o ya esté en) el estado RUNNING y, a continuación, pausar.

  4. Opcionalmente, prepare cualquier código que sea necesario migrar.

    El modo de publicación predeterminado es generalmente compatible con el modo de publicación heredado, pero asegúrese de preparar adecuadamente su pipeline para la migración para que el código de su pipeline se ejecute correctamente cuando se actualice. La mayoría de las canalizaciones no necesitan cambios.

  5. Añadir una configuración en la pipeline Configuración: pipelines.enableDPMForExistingPipeline, establecida en true.

  6. Inicie una actualización manual y deje que se complete la actualización.

  7. Opcionalmente, en configuración de canalización, quite la configuración de canalización de pipelines.enableDPMForExistingPipeline. Esta configuración se usa para la migración y no es necesaria una vez completada la migración.

  8. Si es necesario, actualice la programación y habilite las actualizaciones de canalización.

El modo de publicación por defecto está ahora habilitado en el pipeline. Si ve problemas, use la sección siguiente para ayudar a solucionar problemas. Si los problemas persisten, póngase en contacto con el administrador de cuentas de Databricks.

Preparación de canalizaciones para la migración

El modo de publicación predeterminado suele ser compatible con el modo de publicación heredado, pero es posible que algunas canalizaciones deban modificarse para ejecutarse. Las notas siguientes pueden ayudarle a preparar las canalizaciones para la migración.

La palabra clave LIVE.

La palabra clave LIVE en el modo de publicación heredado califica el catálogo y el esquema del objeto con los valores predeterminados de la pipeline. El modo de publicación predeterminado ya no usa la LIVE palabra clave para calificar tablas o vistas. La LIVE palabra clave se omite y se reemplaza por el catálogo y el esquema predeterminados de la canalización. Por lo general, esto utilizará el mismo catálogo y esquema predeterminados que la palabra clave LIVE en el modo de publicación heredado, a menos que posteriormente añada comandos USE CATALOG o USE SCHEMA a su pipeline.

En el modo de publicación heredado, las referencias de tabla y vista parcialmente calificadas sin la LIVE palabra clave (como table1) usan los valores predeterminados de Spark. En el modo de publicación predeterminado, las referencias parcialmente cualificadas usan los valores predeterminados del pipeline. Si las configuraciones predeterminadas y las canalizaciones de Spark son diferentes, debe especificar completamente el nombre de cualquier tabla o vista parcialmente especificada antes de migrar.

Nota:

Después de la migración, puede quitar la LIVE palabra clave del código. Puede reemplazar, si lo desea, la palabra clave LIVE por nombres completos de tablas o vistas.

Referencias de columna con la LIVE palabra clave

No puede usar la LIVE palabra clave para definir columnas en el modo de publicación predeterminado. Por ejemplo, este código:

CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT LIVE.source.id FROM LIVE.source;

tendría que reemplazarse por lo siguiente, antes de la migración:

CREATE OR REPLACE MATERIALIZED VIEW target AS SELECT source.id FROM LIVE.source;

Esta versión funciona en cualquier modo de publicación.

Cambios en el evento flow_progress

La migración de la canalización cambia el nombre del evento flow_progress en el conjunto de datos del registro de eventos. Si tiene consultas en el registro de eventos de esta canalización, es posible que tenga que actualizar la consulta.

En el modo de publicación heredado, el nombre del conjunto de datos es table. En el modo de publicación predeterminado, el nombre del conjunto de datos es el nombre completamente cualificado catalog.schema.table.

Para más información sobre el uso del registro de eventos, consulte Registro de eventos de canalización.

Advertencias frente a errores

Algunas advertencias en el modo de publicación heredado se han reemplazado por errores en el modo de publicación predeterminado.

Referencias independientes No se permite una referencia automática (o referencia circular) en el modo de publicación predeterminado (y tenía resultados indefinidos en el modo de publicación heredado). Por ejemplo:

CREATE OR REPLACE MATERIALIZED VIEW table1 AS SELECT * FROM target_catalog.target_schema.table1;

generaría una advertencia en el modo de publicación heredado (y tendría resultados indefinidos). En el modo de publicación predeterminado, genera un error.

Nombres de varias partes No se pueden usar puntos en los nombres en el modo de publicación predeterminado (nombres de varias partes). Por ejemplo, el siguiente código de Python es válido en el modo heredado, pero no en el modo predeterminado:

@dlt.view(name=”a.b.c”)
def transform():
  return …

Antes de migrar, cambie el nombre de la tabla a un nombre que no incluya un carácter de punto.

Nota:

En este ejemplo también se usa la sintaxis anterior, @dlt.view. Databricks recomienda usar @dp.temporary_view() para canalizaciones. Para obtener más información, consulte la referencia sobre Lakeflow Spark de canalizaciones declarativas en lenguaje Python.

Solución de problemas

En la tabla siguiente se describen los errores que podrían producirse al migrar desde el modo de publicación heredado.

Error Description
CANNOT_MIGRATE_HMS_PIPELINE No se admite la migración para las canalizaciones de metastore de Hive. Como alternativa, es posible que pueda clonar la canalización desde el metastore de Hive a Unity Catalog antes de la migración. Consulte Creación de una canalización de Unity Catalog mediante la clonación de una canalización de metastore de Hive.
MISSING_EXPECTED_PROPERTY Este error indica que no ejecutó una actualización reciente antes de agregar la pipelines.enableDPMForExistingPipeline configuración. Elimine esa configuración y, si falta, agregue la configuración pipelines.setMigrationHints, configurada en true. Ejecute una actualización y continúe desde el paso 3.
PIPELINE_INCOMPATIBLE_WITH_DPM Este error indica que el código de canalización no es totalmente compatible con el modo de publicación predeterminado. Consulte Preparación de canalizaciones para la migración.