Per scrivere dati da Dataflow in 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 questi possono spostarsi da un nodo all'altro nell'ambito del bilanciamento del carico. Per saperne di più, consulta Informazioni sul rendimento nella documentazione di Bigtable.
Ti viene addebitato il numero di nodi nei cluster della tua istanza. Vedi Prezzi di Bigtable.
Prestazioni
La tabella seguente mostra le metriche sul rendimento per le operazioni di scrittura I/O di Bigtable. I carichi di lavoro sono stati eseguiti su un e2-standard2
worker 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) |
---|---|---|
Scrivere | 65 MB/s | 60.000 elementi al secondo |
Queste metriche si basano su semplici pipeline batch. Sono progettati per confrontare il rendimento tra i connettori I/O e non sono necessariamente rappresentativi delle pipeline reali. Le prestazioni della pipeline Dataflow sono complesse e dipendono dal tipo di VM, dai dati in fase di elaborazione, dalle prestazioni di origini e destinazioni esterne e dal codice utente. Le metriche si basano sull'esecuzione dell'SDK Java e non sono rappresentative delle caratteristiche di prestazioni di altri SDK per lingua. Per ulteriori informazioni, consulta Rendimento IO di Beam.
Best practice
In generale, evita di utilizzare le transazioni. Non è garantito che le transazioni siano idempotenti e Dataflow potrebbe invocarle più volte a causa dei tentativi di nuovo invio, causando valori imprevisti.
Un singolo worker Dataflow potrebbe elaborare i dati per molti intervalli di chiavi, con conseguente scrittura inefficiente 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, ti consigliamo 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
- Leggi la documentazione del connettore Bigtable I/O.
- Consulta l'elenco dei modelli forniti da Google.