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 por 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 del balanceo de cargas. Para obtener más información, consulta Información sobre el rendimiento en la documentación de Bigtable.

Se te cobra por la cantidad de nodos en los clústeres de tu instancia. Consulta 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 Runner v2.

100 millones de registros | 1 KB | 1 columna Capacidad de procesamiento (bytes) Capacidad de procesamiento (elementos)
Escritura 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 podría invocarlas varias veces debido a reintentos, lo que causa 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 la escritura.

  • Si escribes grandes conjuntos de datos 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?