Régions Dataflow

La région Dataflow assure le stockage et la gestion des métadonnées associées à vos tâches Dataflow, ainsi que le déploiement et le contrôle de vos nœuds de calcul Dataflow.

Les noms de région suivent une convention d'appellation standard basée sur les noms de régions de Compute Engine. Par exemple, le nom de la région centrale des États-Unis est us-central1.

Cette fonctionnalité est disponible dans toutes les régions où Dataflow est disponible. Pour afficher les emplacements disponibles, consultez la page Emplacements Dataflow.

Consignes pour le choix d'une région

Il est obligatoire de spécifier une région dans un job Dataflow.

Sécurité et conformité

Pour répondre aux exigences de sécurité et de conformité de votre projet, vous pouvez être amené à limiter le traitement des jobs Dataflow à une région géographique spécifique.

Localisation des données

Afin de réduire les coûts de latence et de transport réseau, une tâche Dataflow peut être exécutée à partir de la même région que ses sources, récepteurs, emplacements de fichiers de préproduction et emplacements de fichiers temporaires. Si vous utilisez des sources, des récepteurs, des emplacements de fichiers de préproduction ou des emplacements de fichiers temporaires situés en dehors de la région associée à votre tâche, vos données peuvent être envoyées d'une région à l'autre.

Lors de l'exécution d'un pipeline, les données utilisateur ne sont gérées que par le pool de nœuds de calcul Dataflow, et le déplacement des données est limité aux chemins réseau qui connectent les nœuds de calcul Dataflow du pool.

Remarque : Bien que les données utilisateur soient gérées par les nœuds de calcul Dataflow exclusivement dans la région géographique qui leur est assignée, les messages du journal de pipeline sont consignés dans Cloud Logging, qui possède une présence globale unique au sein de Google Cloud.

Si vous avez besoin de mieux contrôler l'emplacement des messages de journal de pipeline, vous pouvez effectuer les opérations suivantes:

  1. Créez un filtre d'exclusion pour le récepteur du routeur de journaux _Default afin d'empêcher l'exportation des journaux Dataflow vers le bucket de journaux _Default.
  2. Créez un bucket de journaux dans la région de votre choix.
  3. Configurez un nouveau récepteur de routeur de journaux qui exporte vos journaux Dataflow vers le nouveau bucket de journaux.

Pour en savoir plus sur la configuration de la journalisation, consultez les pages Présentation du routage et du stockage et Présentation du routage des journaux.

Remarques à propos des sources de tâches Dataflow courantes :

  • Si vous utilisez un bucket Cloud Storage en tant que source, nous recommandons d'effectuer les opérations de lecture dans la même région que le bucket.
  • Les sujets Pub/Sub, lorsqu'ils sont publiés sur le point de terminaison global Pub/Sub, sont stockés dans la région Google Cloud la plus proche. Cependant, vous pouvez modifier la règle de stockage des sujets par une région ou un ensemble de régions spécifiques. De même, les sujets Pub/Sub Lite ne sont compatibles qu'avec le stockage zonal.

Résilience et séparation géographique

Vous pouvez souhaiter isoler vos opérations Dataflow normales des pannes susceptibles de survenir dans d'autres régions géographiques. Vous pouvez aussi prévoir des sites secondaires pour assurer la continuité des opérations en cas de sinistre à l'échelle de la région.

Dans vos plans de reprise après sinistre et de continuité des opérations, nous vous recommandons d'intégrer les détails des sources et des récepteurs utilisés avec vos jobs Dataflow. L'équipe commerciale de Google Cloud peut vous aider à répondre à vos besoins.

Emplacement régional

Par défaut, la région que vous sélectionnez configure le pool de nœuds de calcul Dataflow pour utiliser toutes les zones disponibles de la région. La sélection de la zone est calculée pour chaque nœud de calcul au moment de sa création, en optimisant l'acquisition de ressources et l'utilisation des réservations inutilisées.

Les emplacements régionaux offrent certains avantages, dont les suivants:

  • Amélioration de la disponibilité des ressources : les jobs Dataflow sont plus résilients aux erreurs de disponibilité de la ressource zonale, car les nœuds de calcul peuvent continuer à être créés dans d'autres zones avec une disponibilité restante.
  • Fiabilité améliorée : en cas de défaillance d'une zone, les jobs Dataflow peuvent continuer à s'exécuter, car les nœuds de calcul sont recréés dans d'autres zones.

Les limites suivantes s'appliquent :

  • L'emplacement régional n'est compatible qu'avec les jobs utilisant Streaming Engine ou Dataflow Shuffle. Les jobs ayant désactivé Streaming Engine ou Dataflow Shuffle ne peuvent pas utiliser l'emplacement régional.
  • L'emplacement régional s'applique uniquement aux VM, et non aux ressources de backend Streaming Engine et Dataflow Shuffle.
  • Les VM ne sont pas répliquées dans plusieurs zones. Par exemple, si une VM devient indisponible, ses éléments de travail sont considérés comme perdus et sont traités à nouveau par une autre VM.
  • En cas d'indisponibilité à l'échelle de la région, le service Dataflow ne peut plus créer de VM.

Sélection de zone automatique

Pour les jobs non compatibles avec l'emplacement régional, la meilleure zone de la région est sélectionnée automatiquement, en fonction de la capacité disponible de la zone au moment de la demande de création du job. La sélection automatique de zones permet de garantir que les nœuds de calcul s'exécutent dans la zone la plus adaptée à votre tâche.

Étant donné que la tâche est configurée pour s'exécuter dans une seule zone, l'opération peut échouer et générer une erreur de disponibilité des ressources zonales si les ressources Compute Engine suffisantes ne sont pas disponibles.

De plus, lorsqu'une zone est indisponible, le backend de streaming peut également devenir indisponible, ce qui peut entraîner une perte de données.

Spécifiez une région.

Pour spécifier une région pour votre job, définissez l'option --region sur l'une des régions compatibles. L'option --region remplace la région par défaut définie dans le serveur de métadonnées, votre client local ou les variables d'environnement.

L'interface de ligne de commande Dataflow propose aussi l'option --region pour spécifier des régions.

Remplacer la région ou la zone des nœuds de calcul

Par défaut, lorsque vous envoyez une tâche à l'aide de l'option --region, les nœuds de calcul sont automatiquement attribués à des zones dans la région ou à la zone optimale unique dans la région, selon le type de job.

Si vous souhaitez vous assurer que les nœuds de calcul de votre job Dataflow s'exécutent exclusivement dans une zone spécifique, vous pouvez spécifier cette zone à l'aide de l'option de pipeline suivante. Ce modèle d'utilisation est rare pour les jobs Dataflow.

Java

--workerZone

Python

--worker_zone

Go

--worker_zone

Dans tous les autres cas, nous vous déconseillons de remplacer l'emplacement des nœuds de calcul. Le tableau des scénarios courants contient des recommandations d'utilisation pour ces situations.

Étant donné que la tâche est configurée pour s'exécuter dans une seule zone, l'opération peut échouer et générer une erreur de disponibilité des ressources zonales si les ressources Compute Engine suffisantes ne sont pas disponibles.

La commande gcloud compute regions list permet d'afficher une liste des régions et des zones disponibles pour le déploiement des nœuds de calcul.

Scénarios courants

Ce tableau présente des recommandations d'utilisation pour les scénarios courants.

Scénario Recommandation
Je souhaite utiliser une région compatible, et je n'ai pas de préférence de zone dans la région. Dans ce cas, la meilleure zone est automatiquement sélectionnée en fonction de la capacité disponible. Utilisez --region pour spécifier une région du job. La gestion de votre tâche et le traitement des données sont alors assurés par Dataflow dans la région spécifiée.
J'ai besoin que le traitement des nœuds de calcul intervienne dans une zone spécifique d'une région. Spécifiez à la fois --region et --workerZone ou --worker_zone.

Utilisez --region pour spécifier la région du job. Utilisez --workerZone ou --worker_zone pour spécifier la zone spécifique de cette région.