Les tâches par lot utilisent Dataflow Shuffle par défaut. Dataflow Shuffle transfère l'opération de brassage des données depuis les VM de nœud de calcul vers le backend du service Dataflow.
À propos de Dataflow Shuffle
- Dataflow Shuffle est l'opération de base derrière les transformations Dataflow telles que
GroupByKey
,CoGroupByKey
etCombine
. - 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.
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, car les VM ne contiennent pas de données aléatoires et peuvent donc faire l'objet d'un scaling à la baisse plus tôt.
- Meilleure tolérance aux pannes, car une VM défectueuse contenant des données Dataflow Shuffle n'entraîne pas l'échec de l'ensemble du job.
Compatibilité et limites
- Dataflow Shuffle n'est pas disponible pour les tâches de streaming.
- Cette fonctionnalité est disponible dans toutes les régions où Dataflow est disponible. Pour afficher les emplacements disponibles, consultez la page Emplacements Dataflow. Il peut y avoir des différences de performances entre les régions.
- Les nœuds de calcul doivent être déployés dans la même région que le job Dataflow.
Ne spécifiez pas l'option de pipeline
zone
. Au lieu de cela, spécifiezregion
et définissez la 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, la tâche Dataflow renvoie une erreur. Si vous définissez une combinaison deregion
et dezone
incompatible, votre job ne peut pas utiliser Dataflow Shuffle.Pour Python, Dataflow Shuffle nécessite le SDK Apache Beam pour Python version 2.1.0 ou ultérieure.
Considérations concernant la taille du disque
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 tâches 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 une tâche Dataflow Shuffle, vous pouvez utiliser le paramètre --disk_size_gb
.
Tarifs
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.