Los datos operativos almacenados en Bigtable suelen necesitar procesamiento, agregación o exportación para análisis downstream sin degradar el rendimiento de las aplicaciones en vivo. La transferencia de datos de Bigtable a Dataflow te permite usar canalizaciones paralelas y escalables para controlar registros operativos de gran volumen para flujos de trabajo de ETL, agregaciones analíticas y exportaciones de data lakes.
Para compilar canalizaciones de datos personalizadas, puedes usar el conector de E/S de Bigtable de Apache Beam. Para tareas comunes, como exportar tablas a Cloud Storage, también puedes usar las plantillas de Dataflow proporcionadas por Google para implementar canalizaciones compiladas previamente sin escribir código personalizado.
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 estos pueden moverse entre nodos como parte del balanceo de cargas. Para obtener más información, consulta Lecturas y 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 lectura
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) |
|---|---|---|
| Leer | 180 MBps | 170,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
Para las canalizaciones nuevas, usa el conector
BigtableIO, noCloudBigtableIO.Crea perfiles de app independientes para cada tipo de canalización. Los perfiles de app habilitan mejores métricas para diferenciar el tráfico entre canalizaciones, para brindar asistencia y realizar un seguimiento del uso.
Supervisa los nodos de Bigtable. Si experimentas cuellos de botella en el rendimiento, verifica si los recursos, como el uso de CPU, están limitados en Bigtable. Para obtener más información, consulta Supervisión.
En general, los tiempos de espera predeterminados están bien ajustados para la mayoría de las canalizaciones. Si una canalización de transmisión parece atascarse cuando lee desde Bigtable, intenta llamar a
withAttemptTimeoutpara ajustar el tiempo de espera del intento.Considera habilitar el ajuste de escala automático de Bigtable o cambiar el tamaño del clúster de Bigtable para que se ajuste al tamaño de tus trabajos de Dataflow.
Considera configurar
maxNumWorkersen el trabajo de Dataflow para limitar la carga en el clúster de Bigtable.Si se realiza un procesamiento significativo en un elemento de Bigtable antes de una redistribución, es posible que se agote el tiempo de espera de las llamadas a Bigtable. En ese caso, puedes llamar a
withMaxBufferElementCountpara almacenar elementos en el búfer. Este método convierte la operación de lectura de transmisión a paginada, lo que evita el problema.Si usas un solo clúster de Bigtable para las canalizaciones de transmisión y por lotes, y el rendimiento se degrada en el lado de Bigtable, considera configurar la replicación en el clúster. Luego, separa las canalizaciones por lotes y de transmisión para que lean desde diferentes réplicas. Para obtener más información, consulta Descripción general de la replicación.
Próximos pasos
- Lee la documentación del conector de E/S de Bigtable.
- Consulta la lista de plantillas que proporciona Google.