Detén una canalización en ejecución

Si necesitas detener un trabajo de Dataflow en ejecución, puedes emitir un comando con la interfaz de supervisión de Dataflow o con la interfaz de línea de comandos de Dataflow. Hay dos comandos posibles que puedes emitir para detener tu trabajo: Cancelar y Desviar.

Detén un trabajo con la IU de supervisión de Cloud Dataflow

Para detener un trabajo, selecciónalo de la lista de trabajos en la interfaz de supervisión de Dataflow. En la tarjeta de información de tu trabajo, haz clic en Stop Job (Detener trabajo).

Figura 1: Tarjeta de información para un trabajo de Dataflow, con el botón Stop Job (Detener trabajo).

El diálogo Stop Job (Detener trabajo) aparece con las opciones para detener el trabajo:

Figura 2: Cuadro de diálogo Stop Job (Detener trabajo) con las opciones Cancel (Cancelar) y Drain (Desviar).

Selecciona la opción Cancel (Cancelar) o Drain (Desviar) según corresponda y haz clic en el botón Stop Job (Detener trabajo).

Cancelar

Si usas la opción Cancelar para detener tu trabajo, el servicio de Dataflow cancela tu trabajo de inmediato. El servicio detendrá todos los procesos de transferencia y procesamiento de datos en cuanto sea posible y comenzará inmediatamente a limpiar los recursos de Google Cloud conectados a tu trabajo. Estos recursos pueden incluir el cierre de las instancias de trabajador de Compute Engine y el cierre de conexiones activas a fuentes o receptores de E/S.

Debido a que Cancelar detiene inmediatamente el procesamiento, puedes perder cualquier dato "en tránsito". Los datos "en tránsito" se refieren a los datos que se leyeron, pero que tu canalización aún está procesando. Los datos escritos desde tu canalización a un receptor de salida antes de emitir el comando Cancelar todavía pueden estar disponibles en él.

Si la pérdida de datos no es una preocupación, usa la opción Cancelar para asegurarte de que los recursos de Google Cloud asociados con tu trabajo se cierren lo antes posible.

Desviar

Si usas la opción Desviar para detener tu trabajo, el servicio de Dataflow finaliza el trabajo en su estado actual. El trabajo deja de transferir datos nuevos de las fuentes de entrada poco después de recibir la solicitud de desvío (por lo general, dentro de unos minutos). Sin embargo, el servicio de Dataflow conserva todos los recursos existentes, como las instancias de trabajador, para terminar de procesar y escribir los datos almacenados en búfer en tu canalización. Cuando se completan todas las operaciones de procesamiento y escritura pendientes, el servicio de Dataflow limpia los recursos de Google Cloud asociados con tu trabajo.

Si deseas evitar la pérdida de datos a medida que desactivas las canalizaciones, utiliza la opción Desviar para detener tu trabajo.

Los efectos de desviar un trabajo

Cuando emites el comando Desviar, Dataflow cierra inmediatamente todas las ventanas en proceso y enciende todos los activadores. El sistema no espera a que finalicen las ventanas pendientes basadas en el tiempo. Por ejemplo, si tu canalización está a diez minutos de una ventana de dos horas cuando emites el comando Desviar, Dataflow no esperará a que termine el resto de la ventana. La ventana se cierra inmediatamente con resultados parciales.

En la vista detallada de las transformaciones de la canalización, puedes ver los efectos de un comando de desvío en proceso:

Figura 3: Vista de un paso con desvío en proceso. Observa que la marca de agua avanzó al valor máximo.