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 essere spostati da un nodo all'altro nell'ambito del bilanciamento del carico. Per ulteriori informazioni, consulta Informazioni sulle prestazioni nella documentazione di Bigtable.

Ti viene addebitato il numero di nodi nei cluster della tua istanza. Consulta i prezzi di Bigtable.

Prestazioni

La seguente tabella mostra le metriche delle prestazioni 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 Runner v2.

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

Queste metriche si basano su semplici pipeline in modalità batch. Hanno lo scopo di confrontare le prestazioni dei connettori I/O e non sono necessariamente rappresentativi di pipeline reali. Le prestazioni della pipeline Dataflow sono complesse e dipendono dal tipo di VM, dai dati elaborati, dalle prestazioni dei sink e delle origini esterne e dal codice utente. Le metriche si basano sull'esecuzione dell'SDK Java e non sono rappresentative delle caratteristiche delle prestazioni degli SDK di altri linguaggi. Per maggiori informazioni, consulta Prestazioni degli IO 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 di nuovi tentativi, causando valori imprevisti.

  • Un singolo worker Dataflow potrebbe elaborare dati per molti intervalli di chiavi, causando scritture inefficienti in Bigtable. L'utilizzo di GroupByKey per raggruppare i dati in base alla chiave Bigtable può migliorare notevolmente le prestazioni 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, in modo che i server Bigtable abbiano risorse disponibili sufficienti per gestire i dati.

Passaggi successivi