La región de Dataflow almacena y gestiona los metadatos de tu tarea de Dataflow, así como despliega y controla tus trabajadores de Dataflow.
Los nombres de las regiones siguen una convención estándar basada en los nombres de las regiones de Compute Engine.
Por ejemplo, el nombre de la región Centro de EE. UU. es us-central1
.
Esta función está disponible en todas las regiones en las que se admite Dataflow. Para ver las ubicaciones disponibles, consulta el artículo sobre ubicaciones de Dataflow.
Directrices para elegir una región
Sigue estas directrices para elegir la región adecuada para tu tarea.
Seguridad y cumplimiento
Es posible que tengas que limitar el tratamiento de las tareas de Dataflow a una región geográfica concreta para cumplir los requisitos de seguridad y cumplimiento de tu proyecto.
Localidad de los datos
Puedes minimizar la latencia de la red y los costes de transporte de la red ejecutando un trabajo de Dataflow desde la misma región que sus orígenes, sus receptores, sus ubicaciones de archivos de almacenamiento provisional y sus ubicaciones de archivos temporales. Si usas fuentes, receptores, ubicaciones de archivos de almacenamiento temporal o ubicaciones de archivos temporales que se encuentran fuera de la región de tu trabajo, es posible que tus datos se envíen entre regiones.
Al ejecutar una canalización, los datos de los usuarios solo se gestionan en el grupo de trabajadores de Dataflow y el movimiento de los datos se limita a las rutas de red que conectan a los trabajadores de Dataflow del grupo.
Aunque los trabajadores de Dataflow gestionan los datos de los usuarios estrictamente en la región geográfica que se les ha asignado, los mensajes de registro de las canalizaciones se almacenan en Cloud Logging, que tiene una única presencia global enGoogle Cloud.
Si necesitas tener más control sobre la ubicación de los mensajes de registro de la canalización, puedes hacer lo siguiente:
- Cree un filtro de exclusión para el sumidero del enrutador de registros
_Default
para evitar que los registros de Dataflow se exporten al_Default
. - Crea un segmento de registro en la región que quieras.
- Configura un nuevo receptor de rutas de registros que exporte tus registros de Dataflow a tu nuevo segmento de registros.
Para obtener más información sobre cómo configurar el registro, consulta los artículos Información general sobre el enrutamiento y el almacenamiento y Información general sobre el enrutamiento de registros.
Notas sobre las fuentes de tareas de Dataflow habituales:
- Cuando se usa un segmento de Cloud Storage como origen, te recomendamos que realices operaciones de lectura en la misma región que el segmento.
- Los temas de Pub/Sub, cuando se publican en el endpoint global de Pub/Sub, se almacenan en la región Google Cloud más cercana. Sin embargo, puedes modificar la política de almacenamiento de temas para que se aplique a una región o a un conjunto de regiones específicos. Del mismo modo, los temas de Pub/Sub Lite solo admiten el almacenamiento de zonas.
Resiliencia y separación geográfica
Puede que quieras aislar tus operaciones normales de Dataflow de las interrupciones que puedan producirse en otras regiones geográficas. También puede que tengas que planificar sitios alternativos para garantizar la continuidad de la actividad en caso de desastre en toda una región.
En tus planes de recuperación tras desastres y de continuidad de negocio, te recomendamos que incluyas detalles sobre las fuentes y los receptores que se usan con tus trabajos de Dataflow. El Google Cloud equipo de ventas puede ayudarte a cumplir los requisitos.
Emplazamiento regional
De forma predeterminada, la región que selecciones configura el grupo de trabajadores de Dataflow para que utilice todas las zonas disponibles de la región. La selección de zonas se calcula para cada trabajador en el momento de su creación, lo que optimiza la adquisición de recursos y el uso de las reservas no utilizadas.
Los emplazamientos regionales ofrecen ventajas como las 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 se pueden seguir creando en otras zonas con disponibilidad restante.
- Mayor fiabilidad: en caso de fallo de una zona, los trabajos de Dataflow pueden seguir ejecutándose, ya que los trabajadores se vuelven a crear en otras zonas.
Se aplican las siguientes limitaciones:
- La colocación regional solo se admite en las tareas que usan Streaming Engine o Dataflow Shuffle. Las tareas que no usan Streaming Engine o Dataflow Shuffle no pueden usar la colocación regional.
- La colocación regional solo se aplica a las máquinas virtuales y no a los recursos de backend.
- Las VMs no se replican en varias zonas. Si una máquina virtual deja de estar disponible, por ejemplo, sus elementos de trabajo se consideran perdidos y otra máquina virtual los vuelve a procesar.
- Si se agotan las existencias en toda una región, el servicio Dataflow no podrá crear más máquinas virtuales.
- Si se produce una falta de stock en una o varias zonas de la región configurada, es posible que el servicio Dataflow no pueda iniciar un trabajo.
Ver zonas de recursos de trabajos
Las tareas de Dataflow dependen de recursos internos. Algunos de estos recursos de trabajos de backend son zonales. Si falla una sola zona y un recurso zonal necesario para tu tarea de Dataflow se encuentra en esa zona, es posible que la tarea falle.
Para saber si un trabajo ha fallado debido a una interrupción zonal, revisa las zonas de servicio que utilizan los recursos de backend del trabajo. Esta función solo está disponible para trabajos de Streaming Engine.
Para ver las zonas de servicio en la consolaGoogle Cloud , usa el campo Zonas de servicio del 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 la duración de la tarea, ya que los recursos que utiliza la tarea cambian mientras se ejecuta.
Emplazamiento automático de zonas
En el caso de los trabajos que no admitan la colocación regional, se seleccionará automáticamente la mejor zona de la región en función de la capacidad de zona disponible en el momento de la solicitud de creación del trabajo. La selección automática de zonas ayuda a que los trabajadores de las tareas se ejecuten en la mejor zona para tu tarea.
Como la tarea está configurada para ejecutarse en una sola zona, la operación puede fallar y mostrar un error de disponibilidad de recursos zonales si no hay suficientes recursos de Compute Engine disponibles.
Si se agota el stock 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 haya recursos disponibles.
Además, cuando una zona no está disponible, el backend de streaming también puede dejar de estarlo, lo que podría provocar la pérdida de datos.
Especificar una región
Para especificar una región para tu trabajo, asigna a la opción --region
una de las regiones admitidas.
La opción --region
anula la región predeterminada que se ha definido en el servidor de metadatos, en tu cliente local o en las variables de entorno.
La interfaz de línea de comandos de Dataflow también admite la opción --region
para especificar regiones.
Anular la región o la zona del trabajador
De forma predeterminada, cuando envías un trabajo con la opción --region
, los trabajadores se asignan automáticamente a zonas de la región o a la mejor zona de la región, en función del tipo de trabajo.
Si quieres asegurarte de que los trabajadores de tu tarea de Dataflow se ejecuten estrictamente en una zona específica, puedes especificarla mediante la siguiente opción de canalización. Este patrón de uso no es habitual en las tareas de Dataflow.
Esta opción solo controla la zona que se usa para los trabajadores de Dataflow. No se aplica a los recursos de 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 el resto de los casos, no recomendamos anular la ubicación del trabajador. La tabla de situaciones habituales contiene recomendaciones de uso para estos casos.
Como la tarea está configurada para ejecutarse en una sola zona, la operación puede fallar y mostrar un error de disponibilidad de recursos zonales si no hay suficientes recursos de Compute Engine disponibles.
Puedes ejecutar el comando gcloud compute regions list
para ver una lista de las regiones y zonas disponibles para el despliegue de trabajadores.
Situaciones habituales
En la siguiente tabla se incluyen recomendaciones de uso para situaciones habituales.
Situación | Recomendación |
---|---|
Quiero usar una región admitida y no tengo ninguna preferencia de zona dentro de la región. En este caso, la mejor zona se selecciona automáticamente en función de la capacidad disponible. | Usa --region para especificar una región de la tarea.
De esta forma, Dataflow gestiona tu trabajo y procesa los datos en la región especificada. |
Necesito que el procesamiento de los trabajadores se realice en una zona específica de una región. | Especifica --region y --workerZone o --worker_zone .Usa |