Utiliser Dataflow Prime

Dataflow Prime est une plate-forme de traitement de données sans serveur pour les pipelines Apache Beam. Basé sur Dataflow, ce service utilise une architecture de calcul séparée par des états et inclut de nombreuses nouvelles fonctionnalités. Les pipelines qui utilisent Dataflow Prime bénéficient de fonctionnalités de gestion des ressources automatisées et optimisées, de réduction des coûts opérationnels et de diagnostic.

Dataflow Prime est compatible avec les pipelines de traitement par lot et par flux. Par défaut, Dataflow Prime utilise Dataflow Shuffle pour les tâches par lot et Streaming Engine pour les tâches de traitement par flux.

Dataflow Prime utilise l'exécuteur V2 de Dataflow dans ses pipelines.

Compatibilité des versions du SDK

Dataflow Prime est compatible avec les SDK Apache Beam suivants :

  • SDK Apache Beam pour Python 2.21.0 ou version ultérieure

  • SDK Java Beam version 2.30.0 ou ultérieure

Pour télécharger le package de SDK ou lire les notes de version, consultez la page sur les téléchargements Apache Beam.

Fonctionnalités de Dataflow Prime

Voici la liste des fonctionnalités Dataflow Prime compatibles pour différents types de pipelines :

  • Autoscaling vertical (mémoire). S'applique aux pipelines de streaming en Python.
  • Adaptation des ressources (optimisations de ressources Dataflow Prime). S'applique aux pipelines de traitement par lot dans Python et Java.
  • Visualiseur de tâches. S'applique aux pipelines de traitement par lot dans Python et Java.
  • Recommandations intelligentes. S'applique à la fois aux pipelines de traitement par flux et par lot dans Python et Java.
  • Pipelines de données. S'applique à la fois aux pipelines de traitement par flux et par lot dans Python et Java.

Les fonctionnalités de visualiseur de tâches, de recommandations intelligentes et de pipelines de données sont également compatibles avec les tâches autres que Dataflow Prime.

Autoscaling vertical

Cette fonctionnalité ajuste automatiquement la mémoire disponible pour les VM de nœud de calcul Dataflow en fonction des besoins du pipeline pour éviter les erreurs de mémoire saturée. Dans Dataflow Prime, l'autoscaling vertical fonctionne en parallèle de l'autoscaling horizontal pour adapter les ressources de manière dynamique.

Pour en savoir plus, consultez la section Autoscaling vertical.

Adaptation des ressources

Cette fonctionnalité utilise des optimisations de ressources, une nouvelle fonctionnalité d'Apache Beam qui vous permet de spécifier les besoins en ressources pour l'ensemble du pipeline ou pour des étapes spécifiques du pipeline. Cette fonctionnalité vous permet de créer des nœuds de calcul personnalisés pour différentes étapes d'un pipeline. L'adaptation des ressources vous permet de spécifier des ressources de pipeline afin de maximiser l'efficacité, de réduire les coûts opérationnels et d'éviter les erreurs de mémoire insuffisante ainsi que d'autres erreurs liées aux ressources.

Pour la prévisualisation, tenez compte des points suivants concernant l'adaptation des ressources :

  • Elle est compatible avec les optimisations de ressources mémoire et GPU.

  • Vous devez disposer d'Apache Beam 2.30.0 ou d'une version ultérieure.

Pour plus d'informations, consultez la page Configurer l'adaptation des ressources Dataflow Prime.

Visualiseur de tâches

Cette fonctionnalité vous permet d'afficher les performances d'une tâche Dataflow et de les optimiser en recherchant le code inefficace, y compris des goulots d'étranglement de chargements en parallèle. Dans Cloud Console, vous pouvez cliquer sur n'importe quelle tâche Dataflow sur la page Tâches pour afficher les détails de la tâche. Vous pouvez également consulter la liste des phases associées à chaque étape du pipeline.

Pour en savoir plus, consultez la page Détails de l'exécution.

Recommandations intelligentes

Cette fonctionnalité vous permet d'optimiser et de résoudre les problèmes liés au pipeline en fonction des recommandations fournies dans l'onglet Diagnostic de la page des détails d'une tâche. Dans Cloud Console, vous pouvez cliquer sur n'importe quelle tâche Dataflow sur la page Tâches pour afficher les détails de la tâche.

Pour en savoir plus, consultez la section Recommandations et diagnostics.

Pipelines de données

Cette fonctionnalité vous permet de planifier des tâches, d'observer l'utilisation des ressources, de suivre les objectifs de fraîcheur des données destinées au streaming et d'optimiser les pipelines.

Pour plus d'informations, consultez la page Utiliser des pipelines de données.

Exigences liées aux quotas et aux limites

Les quotas et limites sont les mêmes pour Dataflow et Dataflow Prime. Pour en savoir plus, consultez la page Quotas et limites.

L'utilisation des pipelines de données a des implications supplémentaires pour les quotas et points de terminaison régionaux.

Avant d'utiliser Dataflow Prime

Pour utiliser Dataflow Prime, vous pouvez réutiliser le code de pipeline existant et activer l'option expérimentale Dataflow Prime via Cloud Shell ou par programmation.

Dataflow Prime est rétro-compatible avec les tâches par lot qui utilisent Dataflow Shuffle et les tâches de streaming utilisant Streaming Engine. Toutefois, nous vous recommandons de tester vos pipelines avec Dataflow Prime avant de les utiliser dans un environnement de production.

Pour utiliser Dataflow Prime si votre pipeline de streaming est en production, comme suit :

  1. Arrêtez le pipeline.

  2. Activez Dataflow Prime.

  3. Exécutez à nouveau le pipeline.

Activer Dataflow Prime

Pour activer Dataflow Prime pour un pipeline, procédez comme suit :

  1. Activez l'API Cloud Autoscaling.

    Activer l'API

    Dataflow Prime utilise l'API Cloud Autoscaling pour ajuster la mémoire de manière dynamique.

  2. Activez Prime dans vos options de pipeline.

    Vous pouvez définir les options du pipeline par programmation ou à l'aide de la ligne de commande. Pour les versions du SDK Apache Beam compatibles, activez l'option suivante :

Java

--dataflowServiceOptions=enable_prime

Python

SDK Apache Beam pour Python 2.29.0 ou version ultérieure :

--dataflow_service_options=enable_prime

SDK Apache Beam versions 2.21.0 à 2.28.0 :

--experiments=enable_prime

Utiliser Dataflow Prime avec des modèles

Si vous utilisez des modèles Dataflow, vous pouvez choisir d'activer Dataflow Prime de l'une des manières suivantes :

Console

  1. Accédez à la page Créer une tâche à partir d'un modèle.

    Accéder à la page Créer une tâche à partir d'un modèle

  2. Dans le champ Test supplémentaire, saisissez enable_prime.

Shell

  • Exécutez le code du pipeline avec l'option --experiments définie sur enable_prime.

Code du pipeline

  • Dans le code du pipeline, définissez l'argument additional_experiment sur enable_prime.

Remarques sur Dataflow Prime

Dataflow Prime n'est pas compatible avec les éléments suivants :

  • Optimisation de ressources pour les transformations multilingues. Pour plus d'informations sur cette limitation, consultez la documentation d'Apache Beam.

  • Définition de types de VM spécifiques à l'aide de l'option --worker_machine_type ou --machine_type pour les pipelines Python et --workerMachineType pour les pipelines Java.

  • Affichage ou utilisation de SSH pour se connecter aux VM de nœud de calcul.

  • Les classes MapState et OrderedListState pour les pipelines Java.

  • Types de fenêtres personnalisées.

  • Planification flexible des ressources (FlexRS)

Comparaison des fonctionnalités entre Dataflow et Dataflow Prime

Le tableau suivant compare les fonctionnalités disponibles pour les deux variantes de Dataflow.

Caractéristique Dataflow Prime Dataflow
Exécuteur V2 Fonctionnalité par défaut sans option de désactivation Fonctionnalité facultative
Dataflow Shuffle pour les tâches par lot Fonctionnalité par défaut sans option de désactivation Fonctionnalité par défaut avec option de désactivation
Streaming Engine Fonctionnalité par défaut sans option de désactivation Fonctionnalité facultative pour les pipelines Java et option de désactivation pour les pipelines Python
Autoscaling horizontal Fonctionnalité facultative Fonctionnalité facultative
Autoscaling vertical Fonctionnalité par défaut sans option de désactivation Non applicable
Adaptation des ressources Fonctionnalité facultative Non applicable
Visualiseur de tâches Fonctionnalité par défaut sans option de désactivation Fonctionnalité par défaut sans option de désactivation
Tâches recommandées Fonctionnalité par défaut sans option de désactivation Fonctionnalité par défaut sans option de désactivation
Pipelines de données Fonctionnalité facultative Fonctionnalité facultative
Facturation Facturation sans serveur Ancien mode de facturation

Étape suivante