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 describe la semántica operativa de los modos de canalización desencadenados y continuos para las canalizaciones declarativas de Lakeflow.
El modo de canalización es independiente del tipo de tabla que se está calculando. Tanto las vistas materializadas como las tablas de streaming se pueden actualizar en cualquier modo de canalización.
Para cambiar entre desencadenado y continuo, utilice la opción modo de canalización en la configuración de canalización al crear o editar una canalización. Consulte Configuración de canalizaciones declarativas de Lakeflow.
Nota:
Las operaciones de actualización para vistas materializadas y tablas de streaming definidas en Databricks SQL siempre se ejecutan mediante el modo de canalización desencadenado.
¿Qué es el modo de canalización activada?
Si la canalización usa el modo desencadenado , el sistema detiene el procesamiento después de actualizar correctamente todas las tablas o tablas seleccionadas, lo que garantiza que cada tabla de la actualización se actualice en función de los datos disponibles cuando se inicie la actualización.
¿Qué es el modo de canalización continua?
Si la canalización usa la ejecución continua, Lakeflow Declarative Pipelines procesa nuevos datos a medida que llegan a los orígenes de datos para mantener las tablas a lo largo de toda la canalización actualizadas.
Para evitar el procesamiento innecesario en modo de ejecución continua, las canalizaciones supervisan automáticamente las tablas Delta dependientes y realizan una actualización solo cuando el contenido de esas tablas dependientes ha cambiado.
Elección de los modos de canalización de datos
En la tabla siguiente se resaltan las diferencias entre los modos de canalización desencadenados y continuos:
Preguntas clave | Desencadenado | Continuo |
---|---|---|
¿Cuándo se detiene la actualización? | Automáticamente una vez completado. | Se ejecuta continuamente hasta que se detiene manualmente. |
¿Qué datos se procesan? | Datos disponibles cuando se inicia la actualización. | Todos los datos a medida que llegan a los orígenes configurados. |
¿Para qué requisitos de actualización de datos es mejor? | Las actualizaciones de datos se ejecutan cada 10 minutos, cada hora o diariamente. | Las actualizaciones de datos se desean entre cada 10 segundos y unos minutos. |
Las canalizaciones desencadenadas pueden reducir el consumo y el gasto de recursos, ya que el clúster solo se ejecuta durante el tiempo necesario para actualizar la canalización. Sin embargo, los nuevos datos no se procesarán hasta que se desencadene la canalización. Las canalizaciones continuas requieren un clúster siempre en ejecución, que es más caro, pero reduce la latencia de procesamiento.
Configurar intervalo de desencadenador para canalizaciones continuas
Al configurar canalizaciones para el modo continuo, puede establecer intervalos de desencadenador para controlar la frecuencia con la que la canalización inicia una actualización para cada flujo.
Puede usar pipelines.trigger.interval
para controlar el intervalo de activación de un flujo que actualiza una tabla o una canalización completa. Dado que una canalización desencadenada procesa cada tabla una vez, solo pipelines.trigger.interval
se usa con canalizaciones continuas.
Databricks recomienda establecer pipelines.trigger.interval
en tablas individuales porque las consultas por lotes y streaming tienen valores predeterminados diferentes. Establezca el valor en una canalización solo cuando el procesamiento requiera controlar las actualizaciones de todo el gráfico de canalización.
Se establece pipelines.trigger.interval
en una tabla mediante spark_conf
en Python o SET
en SQL:
@dlt.table(
spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
return (<query>)
SET pipelines.trigger.interval=10 seconds;
CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...
Para establecer pipelines.trigger.interval
en una canalización, agréguelo al objeto configuration
en la configuración de la canalización.
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}