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:

Conector de E/SLerGravação
Apache Iceberg Ler no Apache Iceberg Gravar no Apache Iceberg
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
Pub/Sub Ler do Pub/Sub Gravar no Pub/Sub

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.

Nome do conector de E/S Java Python Go
AvroIO Compatível Compatível Compatível
BigQueryIO Compatível Compatível Compatível
BigTableIO Compatível Coletor compatível Coletor compatível
DatastoreIO Compatível Compatível Compatível
FhirIO (saúde) Compatível Indisponível Compatível
FileIO Compatível Compatível Compatível
GcsFileSystem Compatível Compatível Compatível
JdbcIO Compatível Suporte a vários idiomas Suporte a vários idiomas
KafkaIO Compatível Suporte a vários idiomas Suporte a vários idiomas
LocalFileSystem Compatível Compatível Compatível
ParquetIO Compatível Compatível Compatível
PubSubIO Compatível Compatível Compatível
SpannerIO Compatível Suporte a vários idiomas Compatível
TextIO Compatível Compatível Compatível
TFRecordIO Compatível Compatível Indisponível

A seguir