Gravar do Dataflow para o Bigtable

Para gravar dados do Dataflow para o Bigtable, use o conector de E/S do Bigtable do Apache Beam.

Paralelismo

O paralelismo é controlado pelo número de nós no cluster do Bigtable. Cada nó gerencia um ou mais intervalos de chaves, mas eles podem se mover entre os nós como parte do balanceamento de carga. Para mais informações, confira Entender o desempenho na documentação do Bigtable.

Você é cobrado pelo número de nós nos clusters da sua instância. Confira Preços do Bigtable.

Performance

A tabela a seguir mostra as métricas de desempenho das operações de gravação de E/S do Bigtable. As cargas de trabalho foram executadas em um worker e2-standard2 usando o SDK do Apache Beam 2.48.0 para Java. Eles não usaram o Runner v2.

100 milhões de registros| 1 KB | 1 coluna Capacidade de processamento (bytes) Capacidade de processamento (elementos)
Gravar 65 MBps 60.000 elementos por segundo

Essas métricas são baseadas em pipelines de lote simples. Elas servem para comparar o desempenho entre conectores de E/S e não representam necessariamente pipelines reais. O desempenho do pipeline do Dataflow é complexo e depende do tipo de VM, dos dados processados, do desempenho de origens e coletores externos e do código do usuário. As métricas se baseiam na execução do SDK do Java e não representam as características de desempenho de outros SDKs da linguagem. Para mais informações, confira Desempenho do E/S do Beam.

Práticas recomendadas

  • Em geral, evite usar transações. Não há garantia de que as transações sejam idempotentes, e o Dataflow pode invocá-las várias vezes devido a novas tentativas, gerando valores inesperados.

  • Um único worker do Dataflow pode processar dados para muitos intervalos de chaves, levando a gravações ineficientes no Bigtable. O uso de GroupByKey para agrupar dados por chave do Bigtable pode melhorar significativamente o desempenho de gravação.

  • Se você grava grandes conjuntos de dados no Bigtable, chame o withFlowControl. Essa configuração limita automaticamente a taxa de tráfego ao Bigtable para garantir que os servidores do Bigtable tenham recursos suficientes disponíveis para veicular os dados.

A seguir