Escribir de Dataflow en 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 el número de nodos del clúster de Bigtable. Cada nodo gestiona uno o varios intervalos de claves, aunque estos pueden moverse entre nodos como parte del equilibrio de carga. Para obtener más información, consulta Información sobre el rendimiento en la documentación de Bigtable.

Se te cobra por el número de nodos de 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 e2-standard2 trabajador con el SDK de Apache Beam 2.48.0 para Java. No usaron Runner v2.

100 M de registros | 1 kB | 1 columna Rendimiento (bytes) Rendimiento (elementos)
Escribir 65 MB/s 60.000 elementos por segundo

Estas métricas se basan en sencillas canalizaciones por lotes. Su objetivo es comparar el rendimiento entre conectores de E/S y no representan necesariamente las canalizaciones del mundo real. El rendimiento de las canalizaciones de Dataflow es complejo y depende 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 SDKs de lenguaje. Para obtener más información, consulta Rendimiento de Beam IO.

Prácticas recomendadas

  • En general, evita usar transacciones. No se garantiza que las transacciones sean idempotentes y es posible que Dataflow las invoque varias veces debido a reintentos, lo que puede provocar valores inesperados.

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

  • Si escribes conjuntos de datos grandes en Bigtable, te recomendamos que llames a withFlowControl. Este ajuste limita automáticamente la velocidad del tráfico a Bigtable para asegurarse de que los servidores de Bigtable tengan suficientes recursos disponibles para servir datos.

Siguientes pasos