Von Dataflow in Bigtable schreiben

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