Écrire des données depuis Dataflow vers Bigtable

Pour écrire des données depuis Dataflow vers Bigtable, utilisez le connecteur d'E/S Bigtable d'Apache Beam.

Parallélisme

Le parallélisme est contrôlé par le nombre de nœuds dans le cluster Bigtable. Chaque nœud gère une ou plusieurs plages de clés, bien que les plages de clés puissent être déplacées entre les nœuds dans le cadre de l'équilibrage de charge. Pour en savoir plus, consultez la page Analyser les performances dans la documentation de Bigtable.

Le nombre de nœuds dans les clusters de votre instance vous est facturé. Consultez la page sur les tarifs de Bigtable.

Performances

Le tableau suivant présente les métriques de performances pour les opérations d'écriture d'E/S Bigtable. Les charges de travail ont été exécutées sur un nœud de calcul e2-standard2 à l'aide du SDK Apache Beam 2.48.0 pour Java. Elles n'ont pas utilisé l'exécuteur v2.

100 millions d'enregistrements | 1 Ko | 1 colonne Débit (octets) Débit (éléments)
Écriture 65 Mbit/s 60 000 éléments par seconde

Ces métriques sont basées sur des pipelines de traitement par lot simples. Elles ont pour but de comparer les performances entre les connecteurs d'E/S et ne sont pas nécessairement représentatives des pipelines réels. Les performances des pipelines Dataflow sont complexes et dépendent du type de machine virtuelle, des données traitées, des performances des sources et des récepteurs externes, ainsi que du code utilisateur. Les métriques sont basées sur l'exécution du SDK Java et ne sont pas représentatives des caractéristiques de performances des SDK d'autres langages. Pour en savoir plus, consultez la page Performances d'E/S Beam.

Bonnes pratiques

  • En général, évitez d'utiliser des transactions. Les transactions ne sont pas nécessairement idempotentes, et Dataflow peut les appeler plusieurs fois en raison de nouvelles tentatives, ce qui entraîne des valeurs inattendues.

  • Un seul nœud de calcul Dataflow peut traiter des données pour de nombreuses plages de clés, ce qui entraîne des écritures inefficaces dans Bigtable. L'utilisation de GroupByKey pour regrouper les données par clé Bigtable peut améliorer considérablement les performances d'écriture.

  • Si vous écrivez des ensembles de données volumineux dans Bigtable, envisagez d'appeler withFlowControl. Ce paramètre limite automatiquement le débit du trafic vers Bigtable afin de s'assurer que les serveurs Bigtable disposent de suffisamment de ressources pour diffuser des données.

Étapes suivantes