Bonnes pratiques concernant le connecteur d'E/S Apache Beam

Dans Dataflow, le traitement des données peut être hautement parallélisé. Une grande partie de ce parallélisme est gérée automatiquement par Dataflow. Les connecteurs d'E/S se trouvent à la limite entre le pipeline et les autres parties de votre architecture, telles que le stockage de fichiers, les bases de données et les systèmes de messagerie. Ainsi, les connecteurs d'E/S ont souvent des considérations spécifiques pour parvenir à ce parallélisme.

Bonnes pratiques générales

La liste suivante décrit les bonnes pratiques générales concernant l'utilisation des connecteurs d'E/S dans Dataflow.

  • Consultez la documentation Javadoc, Pydoc ou Go pour les connecteurs de votre pipeline. Pour plus d'informations, consultez la section sur les connecteurs d'E/S dans la documentation d'Apache Beam.

  • Utilisez la dernière version du SDK Apache Beam. Les connecteurs d'E/S bénéficient d'améliorations constantes, ajoutant des fonctionnalités et corrigeant les problèmes connus.

  • Lors du développement d'un pipeline, il est important d'équilibrer le parallélisme de la tâche. Si une tâche présente trop peu de parallélisme, elle peut être lente et les données peuvent s'accumuler dans la source. Toutefois, un parallélisme trop important peut surcharger un récepteur avec un trop grand nombre de requêtes.

  • Ne vous fiez pas à l'ordre des éléments. En général, Dataflow ne garantit pas l'ordre des éléments dans une collection.

  • Si un connecteur d'E/S n'est pas disponible dans le SDK de votre choix, envisagez d'utiliser le framework multilangage pour utiliser un connecteur d'E/S d'un autre SDK. De plus, les connecteurs ne présentent pas toujours les mêmes fonctionnalités d'un SDK à l'autre. Si un connecteur d'un autre SDK fournit une fonctionnalité dont vous avez besoin, vous pouvez l'utiliser comme transformation multilangage.

  • En général, l'écriture de connecteurs d'E/S personnalisés est difficile. Dans la mesure du possible, utilisez un connecteur existant. Si vous devez implémenter un connecteur d'E/S personnalisé, consultez la section Développer un nouveau connecteur d'E/S.

  • En cas de défaillance d'un pipeline, recherchez les erreurs enregistrées par les connecteurs d'E/S. Consultez la page Résoudre les erreurs Dataflow.

  • Lorsque vous effectuez des écritures à partir de Dataflow sur un connecteur, pensez à utiliser ErrorHandler pour gérer les écritures ayant échoué ou les lectures incorrectes. Ce type de traitement des erreurs est compatible avec les E/S Java suivantes dans les versions 2.55.0 et ultérieures d'Apache Beam : BigQueryIO, BigtableIO, PubSubIO, KafkaIO, FileIO, TextIO et AvroIO.

Bonnes pratiques concernant les connecteurs d'E/S individuels

Les rubriques suivantes présentent les bonnes pratiques concernant les connecteurs d'E/S individuels :

Connecteur d'E/SLectureÉcriture
BigQuery Lire à partir de BigQuery Écrire dans BigQuery
Bigtable Lire à partir de Bigtable Écrire dans Bigtable
Cloud Storage Lire à partir de Cloud Storage Écrire dans Cloud Storage
Pub/Sub Lire à partir de Pub/Sub Écrire dans Pub/Sub

Connecteurs d'E/S compatibles avec Google

Le tableau suivant répertorie les connecteurs d'E/S Apache Beam compatibles avec Dataflow. Pour obtenir la liste complète des connecteurs d'E/S Apache Beam, y compris ceux développés par la communauté Apache Beam et compatibles avec d'autres exécuteurs, consultez la page Connecteurs d'E/S dans la documentation Apache Beam.

Nom du connecteur d'E/S Java Python Go
AvroIO Compatible Compatible Compatible
BigQueryIO Compatible Compatible Compatible
BigTableIO Compatible Récepteur compatible Récepteur compatible
DatastoreIO Compatible Compatible Compatible
FhirIO (santé) Compatible Non disponible Compatible
FileIO Compatible Compatible Compatible
GcsFileSystem Compatible Compatible Compatible
JdbcIO Compatible Compatibilité multilingue Compatibilité multilingue
KafkaIO Compatible Compatibilité multilingue Compatibilité multilingue
LocalFileSystem Compatible Compatible Compatible
ParquetIO Compatible Compatible Compatible
PubsubIO Compatible Compatible Compatible
SpannerIO Compatible Compatibilité multilingue Compatible
TextIO Compatible Compatible Compatible
TFRecordIO Compatible Compatible Non disponible

Étapes suivantes

  • Consultez la documentation d'Apache Beam pour en savoir plus sur les connecteurs d'E/S.