Utiliser Dataflow Shuffle pour les jobs par lot

Dataflow Shuffle est l'opération de base derrière les transformations Dataflow telles que GroupByKey, CoGroupByKey et Combine. L'opération Dataflow Shuffle permet de partitionner et de regrouper les données par clé de manière évolutive et efficace tout en bénéficiant d'une tolérance aux pannes. La fonctionnalité Dataflow Shuffle, disponible uniquement pour les pipelines de traitement par lot, transfère l'opération de brassage des données depuis les VM de nœud de calcul vers le backend du service Dataflow.

Les jobs par lot utilisent Dataflow Shuffle par défaut.

Avantages de Dataflow Shuffle

La fonctionnalité Dataflow Shuffle basée sur les services présente les avantages suivants :

  • Temps d'exécution plus rapide des pipelines par lots pour la majorité des types de job de pipeline.
  • Réduction des ressources de processeur, de mémoire et de disques persistants consommées sur les machines virtuelles de calcul.
  • Meilleur autoscaling horizontal : les VM ne contiennent aucune donnée de brassage et peuvent donc faire l'objet d'un scaling à la baisse plus tôt.
  • Meilleure tolérance aux pannes : une machine virtuelle défectueuse contenant des données Dataflow Shuffle n'entraîne pas l'échec de l'ensemble du job, comme cela se produirait si la fonctionnalité n'était pas utilisée.

La majeure partie de la réduction des ressources de calcul est due au déchargement du travail de brassage des données sur le service Dataflow. Pour cette raison, des frais sont appliqués à l'utilisation de Dataflow Shuffle. Les temps d'exécution peuvent varier d'une exécution à l'autre. Si vous exécutez un pipeline avec des délais importants, nous vous recommandons d'allouer suffisamment de temps de mémoire tampon avant l'échéance.

Utiliser Dataflow Shuffle

Cette fonctionnalité est disponible dans toutes les régions où Dataflow est disponible. Pour afficher les emplacements disponibles, consultez la page Emplacements Dataflow. Si vous utilisez Dataflow Shuffle, les nœuds de calcul doivent être déployés dans la même région que la tâche Dataflow.

Java

Si vous utilisez Dataflow Shuffle pour votre pipeline, ne spécifiez pas les options de pipeline zone. Au lieu de cela, spécifiez region et définissez sa valeur sur l'une des régions disponibles. Dataflow sélectionne automatiquement la zone dans la région spécifiée. Si vous spécifiez l'option de pipeline zone en la définissant sur une zone en dehors des régions disponibles, Dataflow signale une erreur. Si vous définissez une combinaison de region et de zone incompatible, votre job ne peut pas utiliser Dataflow Shuffle.

Python

Si vous utilisez Dataflow Shuffle pour votre pipeline, ne spécifiez pas les options de pipeline zone. Au lieu de cela, spécifiez region et définissez sa valeur sur l'une des régions disponibles. Dataflow sélectionne automatiquement la zone dans la région spécifiée. Si vous spécifiez l'option de pipeline zone en la définissant sur une zone en dehors des régions disponibles, Dataflow signale une erreur. Si vous définissez une combinaison de region et de zone incompatible, votre job ne peut pas utiliser Dataflow Shuffle.

Go

Si vous utilisez Dataflow Shuffle pour votre pipeline, ne spécifiez pas les options de pipeline zone. Au lieu de cela, spécifiez region et définissez sa valeur sur l'une des régions disponibles. Dataflow sélectionne automatiquement la zone dans la région spécifiée. Si vous spécifiez l'option de pipeline zone en la définissant sur une zone en dehors des régions disponibles, Dataflow signale une erreur. Si vous définissez une combinaison de region et de zone incompatible, votre job ne peut pas utiliser Dataflow Shuffle.

La taille de disque de démarrage par défaut pour chaque job par lot est de 25 Go. Pour certains jobs par lots, vous devrez peut-être modifier la taille du disque. Réfléchissez aux éléments suivants :

  • Une machine virtuelle de calcul utilise une partie des 25 Go d'espace disque pour le système d'exploitation, les fichiers binaires, les journaux et les conteneurs. Les jobs qui utilisent une quantité importante de disque et qui dépassent la capacité de disque restante peuvent échouer lorsque vous utilisez Dataflow Shuffle.
  • Les jobs qui utilisent beaucoup d'E/S de disque peuvent être lentes en raison des performances du petit disque. Pour plus d'informations sur les différences de performances entre les différentes tailles de disque, consultez la page Performances des disques persistants Compute Engine.

Pour spécifier une taille de disque plus importante pour un job Dataflow Shuffle, vous pouvez utiliser le paramètre --disk_size_gb.