Práticas recomendadas do conector de E/S do Apache Beam

O processamento de dados no Dataflow pode ser carregado em paralelo. Grande parte desse paralelismo é processado automaticamente pelo Dataflow. Os conectores de E/S ficam no limite entre o pipeline e outras partes da arquitetura, como armazenamento de arquivos, bancos de dados e sistemas de mensagens. Assim, os conectores de E/S geralmente têm considerações específicas para alcançar o paralelismo.

Neste documento, descrevemos algumas práticas recomendadas gerais para usar conectores de E/S no Dataflow.

  • Leia a documentação do Javadoc, Pydoc ou Go para os conectores no pipeline. Para mais informações, confira Conectores de E/S na documentação do Apache Beam.

  • Use a versão mais recente do SDK do Apache Beam. Os conectores de E/S são continuamente aprimorados, com adição de recursos e correção de problemas conhecidos.

  • Ao desenvolver um pipeline, é importante equilibrar o paralelismo do job. Se um job tiver pouco paralelismo, ele pode ficar lento e os dados podem se acumular na origem. No entanto, o excesso de paralelismo pode sobrecarregar o coletor com muitas solicitações.

  • Não dependa da ordem dos elementos. Em geral, o Dataflow não garante a ordem dos elementos em uma coleção.

  • Se o seu SKD não tiver um conector de E/S disponível, use o framework entre linguagens para usar um conector de E/S de outro SDK. Além disso, os conectores nem sempre têm paridade de recursos entre SDKs. Se um conector de outro SDK fornecer um recurso necessário, você poderá usá-lo como uma transformação entre linguagens.

  • Em geral, criar conectores de E/S personalizados é um desafio. Use um conector existente sempre que possível. Se você precisar implementar um conector de E/S personalizado, confira Como desenvolver um novo conector de E/S.

  • Se um pipeline falhar, verifique se há erros registrados pelos conectores de E/S. Confira Resolver erros do Dataflow.

Os tópicos a seguir listam as práticas recomendadas para conectores de E/S individuais:

Conector de E/SLerGravar
O BigQuery Ler pelo BigQuery gravar no BigQuery
Bigtable Ler do Bigtable Gravar para o Bigtable
Cloud Storage Ler do Cloud Storage Gravar no Cloud Storage

A seguir