Quotas de requêtes

Le service Dataflow gère entièrement les ressources dans Google Cloud , tâche par tâche. Cela inclut le démarrage et l'arrêt d'instances Compute Engine (parfois appelées workers ou VMs), ainsi que l'accès aux buckets Cloud Storage de votre projet pour la préparation de fichiers d'E/S et temporaires Toutefois, si votre pipeline interagit avec Google Cloud des technologies de stockage de données telles que BigQuery ou Pub/Sub, vous devez gérer les ressources et les quotas de ces services.

Dataflow utilise un emplacement fourni par l'utilisateur dans Cloud Storage spécifiquement pour la préparation des fichiers. Cet emplacement est sous votre contrôle, et vous devez vous assurer que sa durée de vie est maintenue aussi longtemps que vos jobs lisent les données qu'il contient. Vous pouvez réutiliser un même emplacement de préparation pour plusieurs exécutions de jobs, car la mise en cache intégrée du SDK peut accélérer le démarrage de vos jobs.

Jobs

Vous pouvez exécuter jusqu'à 25 jobs Dataflow simultanés par Google Cloud projet. Toutefois, cette limite peut être augmentée en contactant Google Cloud l'assistance. Pour en savoir plus, consultez la page consacrée aux quotas.

Le service Dataflow est actuellement limité au traitement des requêtes de job JSON d'une taille inférieure ou égale à 20 Mo. La taille de la requête de job est spécifiquement liée à la représentation JSON de votre pipeline. Plus le pipeline est grand, plus la requête est importante.

Pour estimer la taille de la requête JSON correspondant à votre pipeline, exécutez celui-ci avec l'option suivante :

Java

--dataflowJobFile=<path to output file>

Python

--dataflow_job_file=<path to output file>

Go

L'estimation de la taille de la charge utile JSON d'un job avec un indicateur n'est actuellement pas disponible dans Go.

Cette commande écrit une représentation JSON de votre job dans un fichier. La taille du fichier sérialisé représente une estimation fiable de la taille de la requête. La taille réelle est toutefois légèrement plus importante en raison de la présence d'informations supplémentaires incluses dans la requête.

Pour plus d'informations, consultez la page de dépannage sur l'erreur 413 Corps de requête trop long / La taille de la représentation JSON sérialisée du pipeline dépasse la limite autorisée".

De plus, la taille du graphique de votre job ne doit pas dépasser 10 Mo. Pour plus d'informations, consultez la page de dépannage concernant l'erreur "Le graphique du job est trop grand. Veuillez réessayer avec un graphique de job plus petit, ou diviser votre job en deux jobs plus petits (ou plus)".

Nœuds de calcul

Le service Dataflow autorise un maximum de 1 000 instances Compute Engine par job. Pour les jobs par lots, le type de machine par défaut est un type de machine à un processeur virtuel. Pour les jobs en streaming, le type de machine par défaut pour les jobs compatibles Streaming Engine est un type de machine à deux processeurs virtuels, et le type de machine par défaut pour les jobs non Streaming Engine est un type de machine à quatre processeurs virtuels. Si vous avez besoin de davantage de cœurs pour votre job, vous pouvez sélectionner un type de machine plus grand.

Vous ne devez pas essayer de gérer votre groupe d'instances géré Compute Engine ou d'interagir directement avec lui. Le service Dataflow s'en charge pour vous. La modification manuelle des ressources Compute Engine associées à votre job Dataflow n'est pas acceptée.

Vous pouvez utiliser toutes les familles de types de machines Compute Engine disponibles, ainsi que des types de machines personnalisés. Pour des résultats optimaux, utilisez des familles de types de machines modernes, telles que N4 ou N2. Les types de machines à cœur partagé, tels que les nœuds de calcul des séries f1 et g1, ne sont pas pris en charge dans le cadre du contrat de niveau de servicede Dataflow.

Pour allouer de la mémoire supplémentaire par thread de calcul, utilisez un type de machine personnalisé avec extension de mémoire. Par exemple, un type de machine personnalisé possédant deux processeurs virtuels et 15 Go de mémoire peut fournir plus de mémoire par thread de calcul. Dataflow prend en compte le nombre de processeurs d'une machine pour déterminer le nombre de threads de calcul par VM de nœud de calcul. Si votre pipeline traite des tâches qui utilisent beaucoup de mémoire, un type de machine personnalisé avec extension de mémoire peut offrir plus de mémoire par thread de calcul. Pour plus d'informations, consultez la section Créer une instance de VM personnalisée.

L'utilisation de Dataflow est facturée en fonction du nombre de processeurs virtuels et de Go de mémoire dans les nœuds de calcul. La facturation ne dépend pas de la famille du type de machine. Vous pouvez spécifier un type de machine pour votre pipeline en définissant le paramètre d'exécution approprié au moment de la création du pipeline.

Java

Pour modifier le type de machine, définissez l'option --workerMachineType.

Python

Pour modifier le type de machine, définissez l'option --worker_machine_type.

Go

Pour modifier le type de machine, définissez l'option ‑‑worker_machine_type.

Quota de ressources

Le service Dataflow vérifie que votre Google Cloud projet dispose du quota de ressources Compute Engine requis pour exécuter votre job, à la fois pour démarrer le job et pour le faire évoluer vers le nombre maximal d'instances de nœuds de calcul. Votre job ne peut pas démarrer si le quota de ressources disponible est insuffisant.

Si votre job Dataflow déploie des machines virtuelles Compute Engine sous la forme d'un groupe d'instances géré, vous devez vous assurer que votre projet respecte certaines exigences de quota supplémentaires. Plus précisément, votre projet doit disposer de l'un des types de quotas suivants pour chaque job Dataflow simultané que vous souhaitez exécuter :

  • Un groupe d'instances par job
  • Un groupe d'instances géré par job
  • Un modèle d'instance par job

Attention : La modification manuelle du modèle d'instance ou du groupe d'instances géré de votre job Dataflow n'est pas recommandée, ni acceptée. Utilisez plutôt les options de configuration du pipeline de Dataflow.

La fonctionnalité d'autoscaling horizontal de Dataflow est limitée par le quota Compute Engine disponible de votre projet. Si votre job possède un quota suffisant au démarrage, mais qu'un autre job utilise le reste du quota disponible de votre projet, le premier job est exécuté, mais ne peut pas être entièrement mis à l'échelle.

Cependant, le service Dataflow ne gère pas les augmentations de quota pour les jobs dépassant les quotas de ressources de votre projet. Il vous incombe d'effectuer toutes les demandes de quotas de ressources supplémentaires nécessaires. Pour cela, vous pouvez utiliser la Google Cloud console.

Adresses IP

Par défaut, Cloud Dataflow attribue des adresses IP publiques et privées aux VM de nœud de calcul. Une adresse IP publique répond à l'un des critères d'accès à Internet, mais elle est également comptabilisée dans votre quota d'adresses IP externes.

Si vos VM de nœud de calcul n'ont pas besoin d'accéder à l'Internet public, envisagez d'utiliser uniquement des adresses IP internes, qui ne sont pas comptabilisées dans votre quota d'adresses externes. Pour en savoir plus sur la configuration des adresses IP, consultez les ressources suivantes :

Nœuds de calcul inactifs

Si les nœuds de calcul d'un job donné ne présentent pas une activité suffisante sur une période d'une heure, le job échoue. L'inactivité des nœuds de calcul peut résulter de problèmes de gestion des dépendances. Par exemple, si un nœud de calcul rencontre un problème lors de l'installation de dépendances pour une image de conteneur personnalisée, le démarrage ou la progression du nœud peut échouer. L'absence de progression peut alors entraîner l'échec du job. Pour en savoir plus, consultez les sections suivantes :

Ressources de disques persistants

Le service Dataflow est limité à 15 disques persistants par instance de nœud de calcul lors de l'exécution d'une tâche de traitement en flux continu. Chaque disque persistant est local sur une machine virtuelle Compute Engine individuelle. Votre job ne peut pas comporter plus de nœuds de calcul que de disques persistants. L'allocation minimale de ressources est un ratio de 1:1 entre les nœuds de calcul et les disques.

Les tâches utilisant Streaming Engine nécessitent des disques de démarrage de 30 Go. Les tâches qui utilisent Dataflow Shuffle nécessitent des disques de démarrage de 25 Go. Pour les jobs qui n'utilisent pas ces offres, la taille par défaut de chaque disque persistant est de 250 Go en mode de traitement par lot et de 400 Go en mode de traitement en flux continu.

Locations

Par défaut, le service Dataflow déploie les ressources Compute Engine dans la zone us-central1-f de la région us-central1. Vous pouvez ignorer ce comportement en spécifiant le paramètre --region. Si vous devez utiliser une zone spécifique pour vos ressources, utilisez le paramètre --zone lors de la création de votre pipeline. Cependant, nous vous recommandons de ne spécifier que la région, mais pas la zone. Cela permet au service Dataflow de sélectionner automatiquement la meilleure zone de la région en fonction de la capacité disponible de la zone au moment de la demande de création de job. Pour en savoir plus, consultez la documentation sur les régions Dataflow.