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.
En este artículo se explican las actualizaciones de canalización y se proporcionan detalles sobre cómo desencadenar una actualización.
¿Qué es una actualización de canalización?
Una vez que cree una canalización y tenga todo listo para ejecutarla, inicie una actualización. Una actualización de canalización hace lo siguiente:
- Inicia un clúster con la configuración correcta.
- Detecta todas las tablas y vistas definidas y comprueba si hay errores de análisis, como nombres de columna no válidos, dependencias que faltan y errores de sintaxis.
- Crea o actualiza las tablas y vistas con los datos más recientes disponibles.
Con una ejecución seca, puede comprobar si hay problemas en el código fuente de una canalización sin esperar a que se creen o actualicen las tablas. Esta característica es útil al desarrollar o probar canalizaciones porque le permite encontrar y corregir rápidamente errores en la canalización, como nombres incorrectos de tabla o columna.
¿Cómo se desencadenan las actualizaciones de canalización?
Use una de las siguientes opciones para iniciar las actualizaciones de canalización:
| Desencadenador de actualización | Detalles |
|---|---|
| Manual de instrucciones | Puede desencadenar manualmente las actualizaciones de canalización desde el Editor de canalizaciones de Lakeflow o la lista de canalizaciones. Consulte Desencadenar manualmente una actualización de canalización. |
| Programado | Puede programar actualizaciones para canalizaciones mediante trabajos. Consulte Tarea de canalización para trabajos. |
| Programmatic | Puede desencadenar actualizaciones mediante programación mediante herramientas, API y CLIs de terceros. Consulte Ejecución de canalizaciones en un flujo de trabajo y API REST de canalización. |
Desencadenamiento manual de una actualización de canalización
Use una de las siguientes opciones para desencadenar manualmente una actualización de canalización:
- Ejecute la canalización completa o un subconjunto de la canalización (un único archivo de origen o una sola tabla) desde el Editor de canalizaciones de Lakeflow. Para más información, consulte Ejecutar código de canalización.
- Ejecute la canalización completa desde la lista Trabajos y canalizaciones . Haga clic en
En la misma fila que la canalización de la lista.
- En la página de supervisión de la canalización, haga clic en el botón
.
Nota:
El comportamiento predeterminado de las actualizaciones de canalización desencadenadas manualmente es actualizar todos los conjuntos de datos definidos en la canalización.
Semántica de actualización de la canalización
En la tabla siguiente se describe el comportamiento de actualización predeterminada, actualización completa y restablecimiento de puntos de control para vistas materializadas y tablas de streaming:
| Tipo de actualización | Vista materializada | Tabla de flujo de datos |
|---|---|---|
| Actualizar (valor predeterminado) | Actualiza los resultados para reflejar los resultados actuales de la consulta de definición. Examinará los costos y realizará una actualización incremental si es más rentable. | Procesa registros nuevos a través de la lógica definida en tablas y flujos de streaming. |
| Actualización completa | Actualiza los resultados para reflejar los resultados actuales de la consulta de definición. | Borra los datos de las tablas de streaming, borra la información de estado (puntos de control) de los flujos y vuelve a procesar todos los registros del origen de datos. |
| Restablecimiento de los puntos de control de flujo de streaming | No es aplicable a las vistas materializadas. | Borra la información de estado (puntos de control) de los flujos, pero no borra los datos de las tablas de streaming y vuelve a procesar todos los registros del origen de datos. |
De manera predeterminada, todas las vistas materializadas y las tablas de streaming en una canalización se actualizan con cada actualización. Opcionalmente, puede omitir las tablas de las actualizaciones mediante las siguientes características:
- Seleccionar tablas para actualizar: use esta interfaz de usuario para agregar o quitar vistas materializadas y tablas de streaming antes de ejecutar una actualización. Consulta Inicio de una actualización de canalización para tablas seleccionadas.
- Actualizar tablas fallidas: empieza una actualización de vistas materializadas y tablas de streaming con errores, incluidas las dependencias posteriores. Consulta Inicio de una actualización de canalización para tablas con errores.
Ambas características admiten la semántica de actualización predeterminada o la actualización completa. Opcionalmente, puede usar el cuadro de diálogo Seleccionar tablas para actualizar para excluir tablas adicionales al ejecutar una actualización para las tablas con errores.
En el caso de las tablas de streaming, puede elegir borrar los puntos de control de streaming de los flujos seleccionados y no los datos de las tablas de streaming asociadas. Para borrar los puntos de control de los flujos seleccionados, use la API REST de Databricks para iniciar una actualización. Consulte Iniciar una actualización de canalización para borrar los puntos de comprobación de flujos de streaming selectivos.
¿Debo usar una actualización completa?
Databricks recomienda ejecutar actualizaciones completas solo cuando sea necesario. Una actualización completa siempre vuelve a procesar todos los registros de los orígenes de datos especificados a través de la lógica que define el conjunto de datos. El tiempo y los recursos para completar una actualización completa se correlacionan con el tamaño de los datos de origen.
Las vistas materializadas devuelven los mismos resultados si se usa la actualización predeterminada o completa. El uso de una actualización completa con tablas de streaming restablece todo el procesamiento de estado y la información del punto de control y puede dar lugar a registros eliminados si los datos de entrada ya no están disponibles.
Databricks solo recomienda una actualización completa cuando los orígenes de datos de entrada contienen los datos necesarios para volver a crear el estado deseado de la tabla o vista. Tenga en cuenta los siguientes escenarios en los que los datos de origen de entrada ya no están disponibles y el resultado de ejecutar una actualización completa:
| Origen de datos | Motivo por el que los datos de entrada no están presentes | Resultado de la actualización completa |
|---|---|---|
| Kafka | Umbral de retención corto | Los registros que ya no están presentes en el origen de Kafka se quitan de la tabla de destino. |
| Archivos en el almacenamiento de objetos | Directiva de ciclo de vida | Los archivos de datos que ya no están presentes en el directorio de origen se quitan de la tabla de destino. |
| Registros de una tabla | Eliminado para cumplir con la normativa | Solo se procesan los registros presentes en la tabla de origen. |
Para evitar que las actualizaciones completas se ejecuten en una tabla o vista, establezca la propiedad table pipelines.reset.allowed en false. Consulte Propiedades de la tabla de canalización. También puedes usar un flujo de anexo para anexar datos a una tabla de streaming existente sin necesidad de realizar una actualización completa.
Inicio de una actualización de canalización para tablas seleccionadas
Opcionalmente puede volver a procesar los datos solo de las tablas seleccionadas en la canalización. Por ejemplo, durante el desarrollo, solo se cambia una tabla y se quiere reducir el tiempo de prueba, o se produce un error en una actualización de canalización y solo desea actualizar las tablas con errores.
El Editor de canalizaciones de Lakeflow tiene opciones para volver a procesar un archivo de origen, tablas seleccionadas o una sola tabla. Para obtener más información, consulte Ejecución del código de canalización.
Inicio de una actualización de canalización para tablas con errores
Si se produce un error en una actualización de canalización debido a errores en una o varias tablas del grafo de canalización, puede iniciar una actualización solo de las tablas con errores y las dependencias de bajada.
Nota:
Las tablas excluidas no se actualizan, aunque dependan de una tabla con errores.
Para actualizar las tablas con errores, en la página de supervisión de la canalización, haga clic en Actualizar tablas con errores.
Para actualizar solo las tablas con errores seleccionadas desde la página de supervisión de la canalización:
Haga clic en el
jusno al botón Actualizar tablas con errores y haga clic en Seleccionar tablas para actualizar. El cuadro de diálogo Seleccionar tablas para actualizar aparecerá.Para seleccionar las tablas que desea actualizar, haga clic en cada tabla. Las tablas seleccionadas se resaltan y se etiquetan. Para quitar una tabla de la actualización, vuelva a hacer clic en la tabla.
Haga clic en Actualizar selección.
Nota:
El botón Actualizar selección muestra el número de tablas seleccionadas entre paréntesis.
Para volver a procesar los datos ya ingeridos para las tablas seleccionadas, haga clic
junto al botón Actualizar selección y haga clic en Selección de actualización completa.
Inicio de una actualización de canalización para borrar los puntos de comprobación de flujos de streaming selectivos
Opcionalmente, puede volver a procesar los datos de los flujos de streaming seleccionados en la canalización sin borrar los datos ya ingeridos.
Nota:
Los flujos que no están seleccionados se ejecutan mediante una actualización REFRESH. También puede especificar full_refresh_selection o refresh_selection actualizar de forma selectiva otras tablas.
Para iniciar una actualización para actualizar los puntos de control de streaming seleccionados, use la solicitud de actualizaciones en la API REST de canalizaciones declarativas de Spark de Lakeflow. En el ejemplo siguiente se usa el comando curl para llamar la solicitud updates para iniciar una actualización de tubería.
curl -X POST \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"reset_checkpoint_selection": [<streaming flow1>, <streaming flow 2>...]
}' \
https://<your-databricks-instance>/api/2.0/pipelines/<your-pipeline-id>/updates
Comprobación de errores de un pipeline sin esperar a que las tablas se actualicen
Importante
La característica de canalización Dry run está en versión preliminar pública.
Para comprobar si el código fuente de una canalización es válido sin ejecutar una actualización completa, use una ejecución seca. Una ejecución seca resuelve las definiciones de conjuntos de datos y flujos definidos en la canalización, pero no materializa ni publica ningún conjunto de datos. Los errores encontrados durante la ejecución en seco, como nombres incorrectos de tabla o columna, se notifican en la interfaz de usuario.
Para iniciar una ejecución seca, haga clic en
en la página de detalles de la canalización junto a Inicio y haga clic en Ejecución seca.
Una vez completada la ejecución en seco, los errores se muestran en la bandeja de eventos del panel inferior. Al hacer clic en la bandeja de eventos se mostrarán los problemas encontrados en el panel inferior. Además, el registro de eventos muestra los eventos relacionados solo con la ejecución en seco y no se muestran métricas en el DAG. Si se encuentran errores, los detalles están disponibles en el registro de eventos.
Puede ver solo los resultados de la simulación más reciente. Si la ejecución en seco era la actualización de ejecución más reciente, puede ver los resultados seleccionándolo en el historial de actualizaciones. Si se ejecuta otra actualización después de la ejecución en seco, los resultados ya no estarán disponibles en la interfaz de usuario.
Modo de desarrollo
Las canalizaciones se ejecutan desde el Editor de canalizaciones de Lakeflow que se ejecuta con el modo de desarrollo activado. Las canalizaciones programadas se ejecutan de forma predeterminada con el modo de desarrollo desactivado. Si desea probar cómo se ejecutará la canalización en producción, puede elegir interactivamente si desea usar el modo de desarrollo si elige Ejecutar con diferentes configuraciones en la lista desplegable del editor.
Nota:
Las canalizaciones creadas con el editor de cuadernos heredado usan de forma predeterminada el modo de desarrollo. Para comprobar o cambiar la configuración, elija Configuración en la página de supervisión de canalización. La página de supervisión está disponible en el botón Trabajos y canalizaciones del lado izquierdo del área de trabajo. También puede ir directamente a la página de monitoreo desde el editor de canalizaciones haciendo clic en los resultados de ejecución en el explorador de recursos de canalización.
Al ejecutar la canalización en modo de desarrollo, el sistema de Canalizaciones Declarativas de Spark de Lakeflow realiza lo siguiente:
- Reutiliza un clúster para evitar la sobrecarga de los reinicios. De forma predeterminada, los clústeres se ejecutan durante dos horas cuando se habilita el modo de desarrollo. Puede cambiar esto con la configuración
pipelines.clusterShutdown.delayen Configurar computación clásica para canalizaciones. - Deshabilita los reintentos de la canalización para que pueda detectar y corregir errores inmediatamente.
Con el modo de desarrollo desactivado, el sistema hace lo siguiente:
- Reinicia el clúster con errores recuperables específicos, incluidas fugas de memoria y credenciales obsoletas.
- Reintenta la ejecución en caso de errores específicos, como un error al iniciar un clúster.
Nota:
Al activar y desactivar el modo de desarrollo, solo se controla el comportamiento de ejecución del clúster y de la canalización. Las ubicaciones de almacenamiento y los esquemas de destino del catálogo para las tablas de publicación deben configurarse como parte de la configuración de canalización y no se ven afectados al cambiar entre modos.