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.

Práticas recomendadas gerais

A lista a seguir descreve as 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.

  • Ao realizar gravações do Dataflow em um conector, use um ErrorHandler para processar gravações com falha ou leituras com formato incorreto. Esse tipo de processamento de erros é compatível com as seguintes E/S Java nas versões 2.55.0 e mais recentes do Apache Beam: BigQueryIO, BigtableIO, PubSubIO, KafkaIO, FileIO, TextIO e AvroIO.

Práticas recomendadas para conectores de E/S individuais

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

Conectores de E/S compatíveis com o Google

A tabela a seguir lista os conectores de E/S do Apache Beam compatíveis com o Dataflow. Para conferir uma lista completa de conectores de E/S do Apache Beam, incluindo aqueles desenvolvidos pela comunidade do Apache Beam e aceitos por outros executores, consulte Conectores de E/S na documentação do Apache Beam.

A seguir