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

Suivez les consignes ci-dessous pour choisir une région appropriée pour votre job.

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.
  • 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.

Afficher les zones des ressources de jobs

Les jobs Dataflow dépendent de ressources internes. Certaines de ces ressources de jobs de backend sont zonales. Si une zone échoue et qu'une ressource zonale nécessaire à votre job Dataflow se trouve dans cette zone, le job peut échouer.

Pour savoir si un job a échoué en raison d'une panne zonale, examinez les zones de service utilisées par les ressources de backend de votre job. Cette fonctionnalité n'est disponible que pour les jobs Streaming Engine.

  • Pour afficher les zones de service dans la console Google Cloud, utilisez le champ Zones de service dans le panneau Informations sur le job.

  • Pour utiliser l'API afin d'examiner les zones de service, utilisez le champ ServiceResources.

Les valeurs de ce champ sont mises à jour tout au long de la durée du job, car les ressources utilisées par le job changent pendant son exécution.

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. En cas d'indisponibilité dans une région, une erreur ZONE_RESOURCE_POOL_EXHAUSTED peut s'afficher. Vous pouvez implémenter une boucle de nouvelle tentative pour démarrer la tâche lorsque les ressources sont disponibles.

De plus, lorsqu'une zone est indisponible, le backend de streaming peut également l'être, 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.

Cette option contrôle uniquement la zone utilisée pour les nœuds de calcul Dataflow. Il ne s'applique pas aux ressources backend. Les ressources de backend peuvent être créées dans n'importe quelle zone de la région du job.

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.