Verwenden Sie den Bigtable-E/A-Connector von Apache Beam, 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. Runner v2 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
Vermeiden Sie im Allgemeinen die Verwendung von Transaktionen. 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 Daten mit
GroupByKey
nach Bigtable-Schlüssel gruppieren, lässt sich die Schreibleistung erheblich verbessern.Wenn Sie große Datensätze in Bigtable schreiben, sollten Sie
withFlowControl
aufrufen. Mit dieser Einstellung wird der Traffic zu Bigtable automatisch begrenzt, damit den Bigtable-Servern genügend Ressourcen für die Bereitstellung von Daten zur Verfügung stehen.
Nächste Schritte
- Lesen Sie die Dokumentation zum Bigtable-E/A-Connector.
- Sehen Sie sich die Liste der von Google bereitgestellten Vorlagen an.