Notes de version du SDK Cloud Dataflow pour Python

REMARQUE : La page de téléchargements d'Apache Beam contient les notes de version des différentes versions du SDK Apache Beam.

Cette page répertorie les mises à jour en production du SDK Cloud Dataflow pour Python. Consultez-la régulièrement pour obtenir des informations sur les fonctionnalités nouvelles ou mises à jour, les corrections de bugs, les problèmes connus et les fonctionnalités obsolètes.

Le SDK Cloud Dataflow pour Python est désormais compatible avec l'exécution en flux continu (bêta) à partir de la version 2.5.0.

La page État de la compatibilité des versions du SDK contient des informations sur l'état de compatibilité de chaque version du SDK Dataflow.

Pour installer et utiliser le SDK Cloud Dataflow, reportez-vous au guide d'installation du SDK Cloud Dataflow.

Contenu de la distribution du SDK Cloud Dataflow

La distribution du SDK Cloud Dataflow contient un sous-ensemble de l'écosystème Apache Beam. Ce sous-ensemble comprend les composants qui permettent de définir un pipeline et de l'exécuter localement ou sur le service Cloud Dataflow, y compris les suivants :

  • Le SDK de base
  • Les exécuteurs DirectRunner et DataflowRunner
  • Les composants d'E/S associés à d'autres services Google Cloud Platform (GCP)

La distribution du SDK Cloud Dataflow n'inclut pas certains autres composants Beam, tels que les suivants :

  • Les exécuteurs destinés à d'autres moteurs de traitement distribué
  • Les composants d'E/S associés à des services autres que GCP

Notes de version

Cette section présente les modifications les plus pertinentes de chaque version pour les clients Cloud Dataflow.

17 décembre 2018

Les versions suivantes du SDK seront mises hors service le 25 mars 2019 en raison de l'interruption de la compatibilité avec le protocole JSON-RPC et les points de terminaison mondiaux pour les requêtes HTTP par lots. Peu après cette date, vous ne pourrez plus soumettre de tâches Cloud Dataflow ni mettre à jour des tâches Cloud Dataflow en cours d'exécution qui utilisent des SDK mis hors service. De plus, il se peut que les tâches traitées par flux existantes utilisant ces versions du SDK échouent.

  • SDK Apache Beam pour Java, versions 2.0.0 à 2.4.0 (incluses)
  • SDK Apache Beam pour Python, versions 2.0.0 à 2.4.0 (incluses)
  • SDK Cloud Dataflow pour Java, versions 2.0.0 à 2.4.0 (incluses)
  • SDK Cloud Dataflow pour Python, versions 2.0.0 à 2.4.0 (incluses)

Consultez la page État de la compatibilité des versions du SDK pour connaître l'état détaillé de la compatibilité du SDK.

2.5.0 (27 juin 2018)

AVIS D'OBSOLESCENCE FUTURE : La version 2.5.0 du SDK Cloud Dataflow sera la dernière version du SDK Cloud Dataflow pour Python distincte du SDK Apache Beam. Le service Cloud Dataflow sera entièrement compatible avec les versions officielles du SDK Apache Beam. Les utilisateurs sont invités à prévoir d'utiliser le SDK Apache Beam pour leurs pipelines au lieu du SDK Cloud Dataflow. Le service Cloud Dataflow sera également compatible avec les versions précédentes du SDK Apache Beam à partir de la version 2.0.0. Reportez-vous à la page d'assistance de Cloud Dataflow pour connaître l'état de compatibilité des différentes versions du SDK.

La version 2.5.0 est basée sur un sous-ensemble d'Apache Beam 2.5.0. Consultez l'annonce de la version 2.5.0 d'Apache Beam (https://lists.apache.org/thread.html/9cd70450319147ef1fd34305089216fed156a26d9ee77f386c024629@%3Cuser.beam.apache.org%3E) pour en savoir plus.

Ajout de la compatibilité des entrées secondaires avec les pipelines de traitement par flux.

Modification de ReadFromPubSub et PTransform pour permettre la compatibilité avec label_ids et timestamp_attributes.

Ajout du système de fichiers FileSystem HDFS.

Correction de plusieurs problèmes liés à la stabilité, aux performances et à la documentation.

2.4.0 (30 mars 2018)

La version 2.4.0 est basée sur un sous-ensemble d'Apache Beam 2.4.0. Consultez l'annonce de la version 2.4.0 d'Apache Beam pour en savoir plus.

Ajout d'un exécuteur DirectRunner Python, qui est jusqu'à 15 fois plus rapide que le précédent.

Ajout de la transformation tfrecordio.ReadAllFromTfRecord, qui lit une PCollection de fichiers glob contenant des fichiers TfRecord.

Ajout de la compatibilité initiale avec le système de fichiers HDFS (Hadoop Distributed File System).

Correction de plusieurs problèmes liés à la stabilité, aux performances et à la documentation.

2.3.0 (28 février 2018)

La version 2.3.0 est basée sur un sous-ensemble d'Apache Beam 2.3.0. Consultez l'annonce de la version 2.3.0 d'Apache Beam pour en savoir plus.

Ajout du connecteur d'ES vcfio pour le format VCF (Variant Call Format).

Les journaux Stackdriver affichent désormais des messages d'inactivité chaque fois qu'un nœud de calcul conserve le même état pendant plus de cinq minutes.

Ajout de la compatibilité avec l'API DoFn divisible dans DirectRunner.

Le comportement par défaut de DirectRunner consiste désormais à relancer les lots.

Correction d'un problème lié à la méthode cancel de DataflowPipelineResult.

La lecture des fichiers Cloud Storage publics ne nécessite plus d'authentification.

2.2.0 (8 décembre 2017)

La version 2.2.0 est basée sur un sous-ensemble d'Apache Beam 2.2.0. Consultez les notes de version d'Apache Beam 2.2.0 pour en savoir plus.

Ajout de deux transformations Read PTransforms (textio.ReadAllFromText et avroio.ReadAllFromText), qui permettent de lire un très grand nombre de fichiers.

Ajout de la compatibilité avec la limitation adaptative de la bande passante de DatastoreIO.

Améliorations apportées à DirectRunner : DirectRunner peut désormais relancer le traitement des lots échoués. Les pipelines de traitement par flux peuvent également être annulés à l'aide de Ctrl + C.

Améliorations apportées à DataflowRunner : ajout de la compatibilité avec les commandes cancel et wait_until_finish(duration), ainsi que les libellés de tâche.

Amélioration du texte et de la mise en forme de Pydoc.

Correction de plusieurs problèmes liés à la stabilité, aux performances et à la documentation.

2.1.1 (22 septembre 2017)

La version 2.1.1 est basée sur un sous-ensemble d'Apache Beam 2.1.1.

Correction d'un problème de compatibilité avec le package Python six.

2.1.0 (1er septembre 2017)

La version 2.1.0 est basée sur un sous-ensemble d'Apache Beam 2.1.0. Consultez les notes de version d'Apache Beam 2.1.0 pour en savoir plus.

Problème identifié : Cette version pose un problème de compatibilité avec le package Python six 1.11.0. Exécutez pip install google-cloud-dataflow==2.1.0 six==1.10.0 pour contourner le problème.

Compatibilité limitée des flux continus de DirectRunner avec les sources et récepteurs Cloud Pub/Sub, et les récepteurs BigQuery.

Ajout de la compatibilité avec les nouvelles options de pipeline --subnetwork et --dry_run. Ajout de la compatibilité expérimentale avec la nouvelle option de pipeline --beam_plugins.

Correction d'un problème qui entraînait la lecture partielle des fichiers bzip2. Ajout de la compatibilité avec les fichiers bzip2 concaténés.

Correction de plusieurs problèmes liés à la stabilité, aux performances et à la documentation.

2.0.0 (31 mai 2017)

La version 2.0.0 est basée sur un sous-ensemble d'Apache Beam 2.0.0. Consultez les notes de version d'Apache Beam 2.0.0 pour en savoir plus.

Cette version inclut des modifications importantes.

Problème identifié : Cette version pose un problème de compatibilité avec le package Python six 1.11.0. Exécutez pip install google-cloud-dataflow==2.0.0 six==1.10.0 pour contourner le problème.

Ajout de la compatibilité avec l'interface Stackdriver Error Reporting.

Ajout de la compatibilité des modèles Cloud Dataflow avec les sources et récepteurs basés sur des fichiers (tels que TextIO, TfRecordIO et AvroIO).

Ajout de la compatibilité avec l'indicateur region.

Ajout d'une exigence relative aux API Google : vous devez désormais activer l'API Cloud Resource Manager.

Déplacement des options de pipeline vers des modules d'options.

finish_bundle ne permet désormais plus que d'émettre des valeurs fenêtrées.

Déplacement du code relatif au test vers apache_beam.testing. Déplacement de assert_that, equal_to et is_empty vers apache_beam.testing.util.

Modification des noms suivants :

  • Utilisez apache_beam.io.filebasedsink au lieu de apache_beam.io.file.
  • Utilisez apache_beam.io.filesystem au lieu de apache_beam.io.fileio.
  • Utilisez TaggedOutput au lieu de SideOutputValue.
  • Utilisez AfterAny au lieu de AfterFirst.
  • Utilisez apache_beam.options au lieu de apache_beam.util pour pipeline_options et les importations associées.

Suppression de la possibilité d'émettre des valeurs à partir de start_bundle.

Suppression de la compatibilité avec des identifiants autres que ceux par défaut de l'application. Suppression des indicateurs --service_account_name et --service_account_key_file.

Suppression de IOChannelFactory, désormais remplacé par BeamFileSystem.

Suppression du paramètre obsolète context de DoFn.

Suppression de SingletonPCollectionView, IterablePCollectionView, ListPCollectionView et DictPCollectionView. Utilisez AsSingleton, AsIter, AsList et AsDict à la place.

Correction de plusieurs problèmes liés à la stabilité, aux performances et à la documentation.


Remarque : Toutes les versions antérieures à la version 2.0.0 sont désormais OBSOLÈTES.

0.6.0 (23 mars 2017)

Cette version inclut des modifications importantes.

Problème identifié : Les pipelines Cloud Dataflow qui lisent des résultats GroupByKey plus d'une fois (lorsque plusieurs opérations ParDo consomment les mêmes résultats GroupByKey ou que les mêmes données sont réitérées dans le code de pipeline) peuvent perdre certaines données. Pour éviter de rencontrer ce problème, mettez à niveau le SDK Cloud Dataflow pour Python vers la version 2.0.0 ou ultérieure.

Ajout de la compatibilité de l'API Metrics avec DataflowRunner.

Ajout de la compatibilité avec la lecture et l'écriture des en-têtes dans les fichiers texte.

Déplacement des modules d'E/S spécifiques à GCP vers l'espace de noms apache_beam.io.gcp.

Suppression du libellé en tant que premier argument facultatif pour toutes les transformations PTransform. Utilisez label >> PTransform(...) à la place.

Suppression de BlockingDataflowPipelineRunner.

Suppression de DataflowPipelineRunner et DirectPipelineRunner. Utilisez DataflowRunner et DirectRunner à la place.

Correction de plusieurs problèmes liés à la stabilité, aux performances et à la documentation.

0.5.5 (8 février 2017)

Cette version inclut des modifications importantes.

Ajout d'une nouvelle métrique, le temps total d'exécution, dans l'interface de surveillance de Cloud Dataflow.

Suppression de l'API Aggregator. Notez que l'API Metrics propose des fonctionnalités semblables.

Suppression de l'utilisation des fonctions DoFn non basées sur des annotations.

Correction de plusieurs problèmes liés à la stabilité et aux performances.

0.5.1 (27 janvier 2017)

Cette version inclut des modifications importantes.

Ajout de la compatibilité de l'API Metrics avec DirectRunner.

Ajout des mises en œuvre des sources et récepteurs pour TFRecordsIO.

Ajout de la compatibilité avec les fonctions DoFn basées sur des annotations.

L'autoscaling sera désormais activé par défaut pour les tâches exécutées à l'aide du service Cloud Dataflow, sauf si l'argument autoscaling_algorithm est explicitement défini sur NONE.

PTransform.apply a été renommé en PTransform.expand.

apache_beam.utils.options a été renommé en apache_beam.utils.pipeline_options.

Plusieurs modifications ont été apportées aux options de pipeline :

  • L'option job_name option est désormais facultative et définie par défaut sur beamapp-username-date(mmddhhmmss)-microseconds.
  • L'option temp_location est désormais requise.
  • L'option staging_location est désormais facultative et définie par défaut sur temp_location option.
  • Les options teardown_policy, disk_source_image, no_save_main_session et pipeline_type_check ont été supprimées.
  • Les alias d'option machine_type et disk_type ont été supprimés.

DataflowPipelineRunner a été renommé en DataflowRunner.

DirectPipelineRunner a été renommé en DirectRunner.

DirectPipelineRunner ne bloque plus l'exécution. Pour bloquer l'exécution jusqu'à la fin du pipeline, utilisez la méthode wait_until_finish() de l'objet PipelineResult renvoyé par la méthode run() de l'exécuteur.

BlockingDataflowPipelineRunner est désormais obsolète et sera supprimé dans une prochaine version.

0.4.4 (13 décembre 2016)

Ajout de la possibilité d'utiliser le langage SQL standard de BigQuery.

Ajout de la compatibilité avec les données d'affichage.

Mise à jour de DirectPipelineRunner pour permettre la compatibilité avec l'exécution basée sur des lots.

L'indicateur --profile a été renommé en --profile_cpu.

Les entrées secondaires fenêtrées sont maintenant correctement acceptées.

Amélioration de l'authentification basée sur le compte de service. (Remarque : l'option de ligne de commande --service_account_key_file nécessite l'installation de pyOpenSSL.)

Correction de plusieurs problèmes liés à la stabilité et aux performances.

0.4.3 (17 octobre 2016)

Correction des exigences relatives aux packages.

0.4.2 (28 septembre 2016)

À compter du 14 octobre 2016, les installations disposant de cette version utiliseront une nouvelle version de oauth2client qui inclut des modifications importantes. Notez que le SDK AI Platform n'est pas concerné.
Solution : Exécutez pip install google-cloud-dataflow oauth2client==3.0.0.

Amélioration des performances et de la stabilité des opérations d'E/S.

Correction de plusieurs bugs mineurs.

0.4.1 (1er septembre 2016)

TopCombineFn peut désormais exploiter un argument clé au lieu d'un comparateur.

Correction de certains problèmes liés aux performances et à la stabilité dans gcsio.

Correction de plusieurs problèmes de performances.

0.4.0 (27 juillet 2016)

Cette première version bêta inclut des modifications importantes.

Le package google.cloud.dataflow a été renommé en apache_beam.

Mise à jour de la session principale pour qu'elle ne soit plus enregistrée par défaut. Exploitez l'option de pipeline save_main_session pour enregistrer la session principale.

Annonce d'un framework de test pour les sources personnalisées.

Annonce d'un nouveau module filebasedsource, qui fournit un framework permettant de créer des sources pour de nouveaux types de fichiers.

Annonce d'une nouvelle source AvroSource fournie par le SDK, qui peut lire les fichiers Avro.

Annonce de la compatibilité avec la compression zlib et DEFLATE.

Annonce de la compatibilité de l'opérateur >> avec l'attribution de libellés pour PTransforms.

Annonce de la compatibilité avec l'estimation de la taille pour les codeurs du SDK Python

Correction de plusieurs problèmes de performances.

Apache Beam est une marque commerciale d'Apache Software Foundation ou de ses filiales aux États-Unis et/ou dans d'autres pays.

0.2.7


La version 0.2.7 comprend les modifications suivantes :

  • Ajout de OperationCounters.should_sample, qui permet d'échantillonner des données afin d'en estimer la taille.
  • Mise en œuvre du partitionnement fixe dans TextFileSink.
  • La méthode finalize_write utilise désormais plusieurs threads de changement de nom de fichier.
  • Les opérations d'E/S idempotentes sont relancées à la fin du délai d'expiration de Cloud Storage.

0.2.6


La version 0.2.6 comprend les modifications suivantes :

  • Les objets de pipeline peuvent désormais être utilisés en Python à l'aide d'instructions.
  • Correction de plusieurs bugs, dont le pickling des dictionnaires de modules et les dépassements de mémoire tampon dans les flux de sortie rapides OutputStream.

0.2.5


La version 0.2.5 comprend les modifications suivantes :

  • Ajout de la possibilité de créer des sources personnalisées et de les lire depuis des pipelines exécutés à l'aide de DirectRunner et DataflowRunner.
  • Ajout de DiskCachedPipelineRunner, une alternative à DirectRunner reposant sur un disque.
  • Modification du traitement des sorties secondaires non déclarées des fonctions DoFn dans un exécuteur cloud. Elles sont maintenant ignorées.
  • Correction du problème de pickling survenant lors du chargement du package Seaborn.
  • Le récepteur de sortie des fichiers texte peut désormais écrire des fichiers compressés gzip.

0.2.4


La version 0.2.4 comprend les modifications suivantes :

  • Ajout de la compatibilité avec les grandes entrées secondaires itérables.
  • Ajout de la compatibilité avec tous les types de compteurs acceptés.
  • Modification du comportement de --requirements_file, qui met désormais localement les packages en cache.
  • Ajout de la compatibilité avec la classe TextFileSink non native.

0.2.3


La version 0.2.3 comprend les modifications suivantes :

  • La version google-apitools n'a plus besoin d'être épinglée.
  • La version oauth2client n'a plus besoin d'être épinglée.
  • Correction des erreurs d'importation générées lors de l'installation du dernier package gcloud et du SDK Cloud Dataflow à l'aide de l'instruction import google.
  • Correction du code, qui génère désormais la bonne exception en cas d'échec au début et à la fin des méthodes DoFn.

0.2.2


La version 0.2.3 comprend les modifications suivantes :

  • Amélioration de l'occupation de la mémoire pour DirectPipelineRunner.
  • Correction de plusieurs bugs :
    • Correction du traitement du type de champ d'enregistrement de schéma BigQuerySink
    • Ajout de messages d'erreur plus clairs pour les fichiers manquants
  • Création d'un exemple qui utilise des schémas BigQuery plus complexes.
  • Correction de plusieurs problèmes de performances :
    • Réduction de la journalisation des données de débogage
    • Compilation de certains fichiers avec Cython

0.2.1


La version 0.2.1 comprend les modifications suivantes :

  • Optimisation des performances pour les fonctionnalités suivantes :
    • Journalisation
    • Écriture de données brassées
    • Utilisation de codeurs
    • Compilation de certains modules de nœud de calcul avec Cython
  • Modification du comportement par défaut de l'exécution dans le cloud. Plutôt que de télécharger le SDK à partir d'un bucket Cloud Storage, vous l'obtenez désormais depuis GitHub sous forme de package tarball. Lorsque vous exécutez des tâches à l'aide du service Cloud Dataflow, la version du SDK utilisée correspond à la version que vous avez téléchargée (dans votre environnement local). Vous pouvez remplacer ce comportement et fournir un emplacement de package tarball explicite (chemin ou URL Cloud Storage) à l'aide de l'option de pipeline --sdk_location.
  • Correction de plusieurs problèmes de pickling liés à la sérialisation des données et des fonctions utilisateur dans Cloud Dataflow.
  • Correction de plusieurs problèmes d'expiration de la location des nœuds de calcul survenant lors du traitement de vastes ensembles de données.
  • Amélioration de la validation, qui détecte désormais bien plus tôt certaines erreurs courantes, telles que les problèmes d'accès ou les combinaisons de paramètres non valides.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.