Regiones de Dataflow

La región de Dataflow almacena y administra los metadatos de los trabajos de Dataflow. Asimismo, se encarga de la implementación y el control de los trabajadores de Dataflow.

Los nombres de región siguen una convención estándar basada en los nombres de región de Compute Engine. Por ejemplo, el nombre de la región central de EE.UU. es us-central1.

Esta característica está disponible en todas las regiones en las que Dataflow sea compatible. Para ver las ubicaciones disponibles, consulta la página Ubicaciones de Dataflow.

Lineamientos para elegir una región

Usa los siguientes lineamientos para elegir una región adecuada para tu trabajo.

Seguridad y cumplimiento

Te recomendamos que restrinjas el procesamiento del trabajo de Dataflow a una región geográfica específica para satisfacer las necesidades de seguridad y cumplimiento de tu proyecto.

Localidad de datos

Para minimizar la latencia de la red y los costos de transporte de la red, puedes ejecutar un trabajo de Dataflow desde la misma región que sus fuentes, receptores, ubicaciones de archivos de etapa de pruebas y ubicaciones de archivos temporales. Si usas fuentes, receptores, ubicaciones de archivos de etapa de pruebas o ubicaciones de archivos temporales que se encuentran fuera de la región del trabajo, es posible que los datos se envíen a través de las regiones.

Cuando se ejecuta una canalización, solo el grupo de trabajadores de Dataflow controla los datos del usuario, y el movimiento de los datos se restringe a las rutas de red que conectan a los trabajadores de Dataflow en el grupo.

Si bien los datos del usuario está a cargo de los trabajadores de Dataflow de forma estricta en la región geográfica asignada, los mensajes de registro de canalización se almacenan en Cloud Logging, que tiene una sola presencia global en Google Cloud.

Si necesitas más control sobre la ubicación de los mensajes de registro de las canalizaciones, puedes hacer lo siguiente:

  1. Crea un filtro de exclusión para el receptor del enrutador de registros _Default a fin de evitar que los registros de Dataflow se exporten al bucket de registros _Default.
  2. Crea un bucket de registro en la región que elijas.
  3. Configura un receptor de enrutador de registros nuevo que exporte tus registros de Dataflow a tu bucket de registros nuevo.

Para obtener más información sobre la configuración del registro, consulta Descripción general del enrutamiento y el almacenamiento y Descripción general del enrutamiento de registros.

Notas sobre las fuentes de trabajo comunes de Dataflow:

  • Cuando usas un bucket de Cloud Storage como fuente, te recomendamos que realices operaciones de lectura en la misma región que el bucket.
  • Los temas de Pub/Sub, cuando se publican en el extremo global de Pub/Sub, se almacenan en la región de Google Cloud más cercana. Sin embargo, puedes modificar la política de almacenamiento de temas en una región o un conjunto de regiones específicos. Del mismo modo, los temas de Pub/Sub Lite solo admiten el almacenamiento zonal.

Resiliencia y separación geográfica

Es posible que desees aislar las operaciones habituales de Dataflow de las interrupciones que podrían ocurrir en otras regiones geográficas O es posible que debas planificar sitios alternativos para la continuidad comercial en caso de un desastre en toda la región.

En tus planes de recuperación ante desastres y de continuidad empresarial, recomendamos incorporar detalles de las fuentes y los receptores que usas en tus trabajos de Dataflow. El equipo de ventas de Google Cloud puede ayudarte a satisfacer tus requisitos.

Ubicación regional

De forma predeterminada, la región que seleccionas configura el grupo de trabajadores de Dataflow para que use todas las zonas disponibles dentro de la región. La selección de zonas se calcula para cada trabajador en su momento de creación, lo que optimiza la adquisición de recursos y el uso de las reservas sin usar.

La posición regional ofrece beneficios como los siguientes:

  • Disponibilidad de recursos mejorada: Los trabajos de Dataflow son más resistentes a los errores de disponibilidad de recursos zonales, ya que los trabajadores pueden seguir creándose en otras zonas con la disponibilidad restante.
  • Confiabilidad mejorada: En el caso de una falla zonal, los trabajos de Dataflow pueden seguir ejecutándose, ya que los trabajadores se vuelven a crear en otras zonas.

Se aplica la siguiente limitación:

  • La posición regional solo es compatible con trabajos que usan Streaming Engine o Dataflow Shuffle. Los trabajos que inhabilitaron Streaming Engine o Dataflow Shuffle no pueden usar la posición regional.
  • La ubicación regional solo se aplica a las VMs y no a los recursos de backend.
  • Las VMs no se replican en varias zonas. Si una VM deja de estar disponible, por ejemplo, sus elementos de trabajo se consideran perdidos y otra VM los vuelve a procesar.
  • Si se produce un agotamiento de disponibilidad en toda la región, el servicio de Dataflow no puede crear más VMs.

Cómo ver las zonas de recursos de trabajo

Las tareas de Dataflow dependen de recursos internos. Algunos de estos recursos de trabajo de backend son zonales. Si falla una sola zona y un recurso zonal necesario para tu trabajo de Dataflow se encuentra en esa zona, el trabajo podría fallar.

Para comprender si un trabajo falló debido a una interrupción zonal, revisa las zonas de servicio que usan los recursos de backend de tu trabajo. Esta función solo se encuentra disponible para trabajos de Streaming Engine.

  • Para ver las zonas de servicio en la consola de Google Cloud, usa el campo Zonas de servicio en el panel Información del trabajo.

  • Para usar la API y revisar las zonas de servicio, usa el campo ServiceResources.

Los valores de este campo se actualizan durante el transcurso del trabajo, ya que los recursos que usa cambian mientras se ejecuta.

Ubicación automática de zonas

En el caso de los trabajos no compatibles con la posición regional, se selecciona la mejor zona dentro de la región de forma automática, según la capacidad de la zona disponible en el momento de la solicitud de creación de trabajo. La selección automática de zonas ayuda a garantizar que los trabajadores se ejecuten en la mejor zona para tu trabajo.

Debido a que el trabajo está configurado para ejecutarse en una sola zona, la operación puede fallar con un error de disponibilidad de recursos zonales si no hay suficientes recursos de Compute Engine disponibles. Si se produce un agotamiento de existencias en una región, es posible que veas un error ZONE_RESOURCE_POOL_EXHAUSTED. Puedes implementar un bucle de reintento para iniciar el trabajo cuando los recursos estén disponibles.

Además, cuando una zona no está disponible, el backend de transmisión también puede dejar de estar disponible, lo que podría provocar la pérdida de datos.

Especifica una región

A fin de especificar una región para tu trabajo, configura la opción --region en una de las regiones compatibles. La opción --region anula la región predeterminada que está configurada en el servidor de metadatos, el cliente local o las variables de entorno.

La interfaz de línea de comandos de Cloud Dataflow también admite la opción --region para especificar regiones.

Anula la región o zona del trabajador

De forma predeterminada, cuando envías un trabajo con el parámetro --region, los trabajadores se asignan automáticamente a las zonas de toda la región o a la mejor zona dentro de la región, según el tipo de trabajo.

En los casos en que desees asegurarte de que los trabajadores para tu trabajo de Dataflow se ejecuten estrictamente en una zona específica, puedes especificar la zona con la siguiente opción de canalización. Este patrón de uso no es común para los trabajos de Dataflow.

Esta opción solo controla la zona que se usa para los trabajadores de Dataflow. No se aplica a los recursos del backend. Los recursos de backend se pueden crear en cualquier zona de la región del trabajo.

Java

--workerZone

Python

--worker_zone

Go

--worker_zone

En todos los demás casos, no recomendamos anular la ubicación del trabajador. En la tabla de situaciones más comunes, se incluyen recomendaciones de uso para estas situaciones.

Debido a que el trabajo está configurado para ejecutarse en una sola zona, la operación puede fallar con un error de disponibilidad de recursos zonales si no hay suficientes recursos de Compute Engine disponibles.

Puedes ejecutar el comando gcloud compute regions list a fin de ver una lista de regiones y zonas que están disponibles para la implementación de trabajadores.

Situaciones comunes

La siguiente tabla contiene recomendaciones de uso para situaciones comunes.

Situación Recomendación
Quiero usar una región admitida y no tengo preferencia de zona dentro de la región. En este caso, la mejor zona se selecciona de forma automática según la capacidad disponible. Usa --region para especificar una región de trabajo. Esto garantiza que Dataflow administre tu trabajo y procese los datos en la región especificada.
Necesito que el procesamiento de trabajadores se realice en una zona específica de una región. Especifica --region, junto con --workerZone o --worker_zone.

Usa --region para especificar la región del trabajo. Usa --workerZone o --worker_zone para indicar la zona específica dentro de esa región.