Utiliser Dataflow Prime

Dataflow Prime est une plate-forme de traitement de données sans serveur pour les pipelines Apache Beam. Basé sur Dataflow, Dataflow Prime utilise une architecture de calcul séparée par des états. Dans les cas suivants, Dataflow Prime peut améliorer l'efficacité du pipeline :

Dataflow Prime est compatible avec les pipelines de traitement par lot et par flux. Par défaut, Dataflow Prime utilise Dataflow Shuffle et Dataflow Runner v2 pour les pipelines de traitement par lot.

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

  • SDK Apache Beam pour Go version 2.44.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). Il est compatible avec les pipelines de traitement en flux continu en Python, Java et Go.
  • Adaptation des ressources (optimisations de ressources). Il est compatible avec les pipelines de traitement par lot en Python et Java.
  • Visualiseur de tâches. Il est compatible avec les pipelines de traitement par lot en Python et Java.
  • Recommandations intelligentes. Il est compatible avec les pipelines de traitement en flux continu et par lot en Python et Java.
  • Pipelines de données. Il est compatible avec les pipelines de traitement en flux continu et par lot en 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 fonctionnalité d'Apache Beam. En utilisant les optimisations de ressources, vous pouvez 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'ajustement approprié 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 et d'autres ressources. Elle est compatible avec les optimisations de ressources mémoire et GPU.

L'adaptation des ressources nécessite Apache Beam 2.30.0 ou une version ultérieure.

Pour en savoir plus, consultez la section Adaptation des ressources.

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 la console Google Cloud, 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 la console Google Cloud, 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 régions.

Fonctionnalités non compatibles

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

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

  • La classe OrderedListState pour les pipelines Java.

  • Planification flexible des ressources (FlexRS)

  • Utilisez VPC Service Controls avec l'autoscaling vertical. Si vous activez Dataflow Prime et que vous lancez un nouveau job dans un périmètre VPC Service Controls, le job utilise Dataflow Prime sans autoscaling vertical.

  • Service multi-processus (MPS) NVIDIA.

  • Les pipelines Java qui répondent aux exigences suivantes peuvent utiliser les classes MapState et SetState:

    • utiliser Streaming Engine ;
    • utiliser le SDK Apache Beam version 2.58.0 ou ultérieure ;
    • n'utilisez pas Runner v2 ;

Toutes les options de pipeline qui ne sont pas explicitement mentionnées ci-dessus ou dans le tableau de comparaison des fonctionnalités fonctionnent de la même manière pour Dataflow et Dataflow Premium.

Avant d'utiliser Dataflow Prime

Pour utiliser Dataflow Prime, vous pouvez réutiliser le code de pipeline existant et activer l'option 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

Go

--dataflow_service_options=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 :

  1. Pour les tâches lancées à partir de la page Créer une tâche à partir d'un modèle :

    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.

  2. Pour les tâches lancées à partir d'un modèle via l'interface de ligne de commande, transmettez l'option --additional-experiments=enable_prime.

  3. Pour activer Dataflow Prime lorsque vous créez un modèle, définissez l'option --experiments=enable_prime.

Utiliser Dataflow Prime dans des notebooks Apache Beam

Si vous utilisez un notebook Apache Beam, vous pouvez activer Dataflow Prime par programmation en utilisant PipelineOptions :

options = pipeline_options.PipelineOptions(
    flags=[],
    dataflow_service_options=['enable_prime'],
)

Pour en savoir plus sur la définition des options Dataflow dans un notebook, consultez la page Lancer des jobs Dataflow à partir d'un pipeline créé dans votre notebook.

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 pour les tâches par lot et facultative pour les tâches par flux Fonctionnalité par défaut avec option de désactivation pour les tâches par lot et facultative pour les jobs par flux
Dataflow Shuffle pour les tâches par lot Fonctionnalité par défaut avec option de désactivation Fonctionnalité par défaut avec option de désactivation
Streaming Engine pour les tâches par flux Fonctionnalité facultative pour les pipelines Java et toujours activée pour les pipelines Python Fonctionnalité facultative pour les pipelines Java et toujours activée pour les pipelines Python depuis la version 2.45.0
Autoscaling horizontal Fonctionnalité par défaut sans option de désactivation Fonctionnalité par défaut sans option de désactivation
Autoscaling vertical Fonctionnalité par défaut sans option de désactivation Non applicable
Adaptation des ressources Fonctionnalité facultative Fonctionnalité facultative
Facturation Facturation sans serveur Facturation standard

Étapes suivantes