Scrivere da Dataflow a Bigtable

Per scrivere dati da Dataflow a Bigtable, utilizza il connettore Bigtable I/O di Apache Beam.

Parallelismo

Il parallelismo è controllato dal numero di nodi nel cluster Bigtable. Ogni nodo gestisce uno o più intervalli di chiavi, anche se gli intervalli di chiavi possono spostarsi tra i nodi nell'ambito del bilanciamento del carico. Per ulteriori informazioni, consulta la sezione Comprendere il rendimento nella documentazione di Bigtable.

Ti viene addebitato un costo per il numero di nodi nei cluster dell'istanza. Consulta i prezzi di Bigtable.

Prestazioni

La tabella seguente mostra le metriche di rendimento per le operazioni di scrittura I/O di Bigtable. I carichi di lavoro sono stati eseguiti su un worker e2-standard2, utilizzando l'SDK Apache Beam 2.48.0 per Java. Non hanno utilizzato il runner portatile.

100 milioni di record | 1 kB | 1 colonna Velocità effettiva (byte) Velocità effettiva (elementi)
Scrittura 65 MB/s 60.000 elementi al secondo

Queste metriche si basano su semplici pipeline batch. Sono progettate per confrontare il rendimento tra i connettori I/O e non sono necessariamente rappresentative delle pipeline reali. Il rendimento delle pipeline Dataflow è complesso e dipende dal tipo di VM, dai dati elaborati, dal rendimento delle origini e dei sink esterni e dal codice utente. Le metriche si basano sull'esecuzione dell'SDK Java e non sono rappresentative delle caratteristiche di rendimento di altri SDK di linguaggio. Per ulteriori informazioni, consulta la sezione Rendimento I/O di Beam.

Best practice

  • In generale, evita di utilizzare le transazioni. Non è garantito che le transazioni siano idempotenti e Dataflow potrebbe richiamarle più volte a causa dei tentativi, causando valori imprevisti.

  • Un singolo worker Dataflow potrebbe elaborare i dati per molti intervalli di chiavi, causando scritture inefficienti in Bigtable. L'utilizzo di GroupByKey per raggruppare i dati per chiave Bigtable può migliorare notevolmente il rendimento di scrittura.

  • Se scrivi set di dati di grandi dimensioni in Bigtable, valuta la possibilità di chiamare withFlowControl. Questa impostazione limita automaticamente la frequenza del traffico verso Bigtable, per garantire che i server Bigtable dispongano di risorse sufficienti per pubblicare i dati.

Passaggi successivi