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/S | Lecture | Écriture |
---|---|---|
Apache Iceberg | Lire à partir d'Apache Iceberg | Écrire dans Apache Iceberg |
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.