Verwenden Sie den Apache Beam Bigtable-E/A-Connector, um Daten aus Dataflow in Bigtable zu schreiben.
Parallelität
Die Parallelität wird durch die Anzahl der Knoten im Bigtable-Cluster gesteuert. Jeder Knoten verwaltet einen oder mehrere Schlüsselbereiche, Schlüsselbereiche können jedoch im Rahmen des Load-Balancings zwischen Knoten verschoben werden. Weitere Informationen finden Sie in der Bigtable-Dokumentation unter Leistung verstehen.
Ihnen wird die Anzahl der Knoten in den Clustern Ihrer Instanz in Rechnung gestellt. Weitere Informationen finden Sie unter Bigtable-Preise.
Leistung
Die folgende Tabelle enthält Leistungsmesswerte für Bigtable-E/A-Schreibvorgänge. Die Arbeitslasten wurden mit dem Apache Beam SDK 2.48.0 für Java auf einem e2-standard2-Worker ausgeführt. Der portable Runner wurde nicht verwendet.
| 100 Mio. Datensatz | 1 KB | 1 Spalte | Durchsatz (Byte) | Durchsatz (Elemente) |
|---|---|---|
| Schreiben | 65 Mbit/s | 60.000 Elemente pro Sekunde |
Diese Messwerte basieren auf einfachen Batch-Pipelines. Sie dienen zum Vergleich der Leistung zwischen E/A-Anschlüssen und sind nicht unbedingt repräsentativ für reale Pipelines. Die Leistung der Dataflow-Pipeline ist komplex und eine Funktion des VM-Typs, der verarbeiteten Daten, der Leistung externer Quellen und Senken sowie des Nutzercodes. Die Messwerte basieren auf der Ausführung des Java SDK und sind nicht repräsentativ für die Leistungsmerkmale anderer Sprach-SDKs. Weitere Informationen finden Sie unter Beam E/A-Leistung.
Best Practices
Im Allgemeinen sollten Sie Transaktionen vermeiden. Es wird nicht garantiert, dass Transaktionen idempotent sind, und Dataflow kann sie aufgrund von Wiederholungsversuchen mehrmals aufrufen. Dies führt zu unerwarteten Werten.
Ein einzelner Dataflow-Worker kann Daten für viele Schlüsselbereiche verarbeiten, was zu ineffizienten Schreibvorgängen in Bigtable führt. Wenn Sie
GroupByKeyverwenden, um Daten nach Bigtable-Schlüssel zu gruppieren, kann die Schreibleistung erheblich verbessert werden.Wenn Sie große Datasets in Bigtable schreiben, sollten Sie
withFlowControlaufrufen. Mit dieser Einstellung wird der Traffic zu Bigtable automatisch begrenzt, damit die Bigtable-Server genügend Ressourcen zur Verfügung haben, um Daten bereitzustellen.
Nächste Schritte
- Lesen Sie die Dokumentation zum Bigtable-E/A-Connector.
- Sehen Sie sich die Liste der von Google bereitgestellten Vorlagen an.