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?
- Lee la documentación del conector de E/S de Bigtable.
- Consulta la lista de plantillas que proporciona Google.