Escribe de Dataflow a Bigtable

Para escribir datos de Dataflow en Bigtable, usa el conector de E/S de Bigtable de Apache Beam.

Paralelismo

El paralelismo se controla mediante la cantidad de nodos en el clúster de Bigtable. Cada nodo administra uno o más rangos de claves, aunque los rangos de claves pueden moverse entre nodos como parte de balanceo de cargas. Para obtener más información, consulta Comprende el rendimiento en la documentación de Bigtable.

Se te cobra por la cantidad de nodos en los clústeres de tu instancia. Consulta los precios de Bigtable.

Rendimiento

En la siguiente tabla, se muestran las métricas de rendimiento de las operaciones de escritura de E/S de Bigtable. Las cargas de trabajo se ejecutaron en un trabajador e2-standard2, con el SDK de Apache Beam 2.48.0 para Java. No usaron el ejecutor portátil.

100 millones de registros | 1 KB | 1 columna Capacidad de procesamiento (bytes) Capacidad de procesamiento (elementos)
Escribir 65 MBps 60,000 elementos por segundo

Estas métricas se basan en canalizaciones por lotes simples. Están diseñadas para comparar el rendimiento entre los conectores de E/S y no representan necesariamente las canalizaciones del mundo real. El rendimiento de la canalización de Dataflow es complejo y es una función del tipo de VM, los datos que se procesan, el rendimiento de las fuentes y los receptores externos y el código de usuario. Las métricas se basan en la ejecución del SDK de Java y no representan las características de rendimiento de otros SDK de lenguaje. Para obtener más información, consulta Rendimiento de E/S de Beam.

Prácticas recomendadas

  • En general, evita usar transacciones. No se garantiza que las transacciones sean idempotentes, y Dataflow puede invocarlas varias veces debido a los reintentos, lo que provoca valores inesperados.

  • Un solo trabajador de Dataflow puede procesar datos para muchos rangos de claves, lo que genera escrituras ineficientes en Bigtable. Usar GroupByKey para agrupar datos por clave de Bigtable puede mejorar significativamente el rendimiento de escritura.

  • Si escribes conjuntos de datos grandes en Bigtable, considera llamar a withFlowControl. Esta configuración limita de forma automática el tráfico a Bigtable para garantizar que los servidores de Bigtable tengan suficientes recursos disponibles para entregar datos.

¿Qué sigue?