O processamento de dados no Dataflow pode ser altamente paralelizado. Grande parte deste paralelismo é processada automaticamente pelo Dataflow. Os conetores de E/S encontram-se no limite entre o pipeline e outras partes da sua arquitetura, como o armazenamento de ficheiros, as bases de dados e os sistemas de mensagens. Como tal, os conetores de E/S têm frequentemente considerações específicas para alcançar o paralelismo.
Práticas recomendadas gerais
A lista seguinte descreve as práticas recomendadas gerais para usar conetores de E/S no Dataflow.
Leia a documentação Javadoc, Pydoc ou Go para os conetores no seu pipeline. Para mais informações, consulte a secção Conetores de E/S na documentação do Apache Beam.
Use a versão mais recente do SDK do Apache Beam. Os conetores de E/S estão a ser melhorados continuamente, adicionando funcionalidades e corrigindo problemas conhecidos.
Ao desenvolver um pipeline, é importante equilibrar o paralelismo da tarefa. Se uma tarefa tiver um paralelismo demasiado baixo, pode ser lenta e os dados podem acumular-se na origem. No entanto, um paralelismo excessivo pode sobrecarregar um destino com demasiados pedidos.
Não dependa da ordem dos elementos. Em geral, o Dataflow não garante a ordem dos elementos numa coleção.
Se um conetor de E/S não estiver disponível no seu SDK preferencial, considere usar a estrutura multilíngue para usar um conetor de E/S de outro SDK. Além disso, os conetores nem sempre têm paridade de funcionalidades entre os SDKs. Se um conector de outro SDK fornecer uma funcionalidade de que precisa, pode usá-lo como uma transformação entre idiomas.
Em geral, escrever conetores de E/S personalizados é um desafio. Use um conetor existente sempre que possível. Se precisar de implementar um conetor de E/S personalizado, leia Desenvolver um novo conetor de E/S.
Se um pipeline falhar, verifique se existem erros registados pelos conetores de E/S. Consulte o artigo Resolva problemas de erros do Dataflow.
Quando realizar escritas do Dataflow para um conector, considere usar um ErrorHandler para processar quaisquer escritas com falhas ou leituras com erros de formatação. Este tipo de processamento de erros é suportado para as seguintes E/S Java nas versões 2.55.0 e posteriores do Apache Beam: BigQueryIO, BigtableIO, PubSubIO, KafkaIO, FileIO, TextIO e AvroIO.
Práticas recomendadas para conectores de E/S individuais
Os tópicos seguintes apresentam práticas recomendadas para conectores de E/S individuais:
| Conetor de E/S | Leitura | Escrita |
|---|---|---|
| Apache Iceberg | Leia a partir do Apache Iceberg | Escreva no Apache Iceberg |
| Apache Kafka | Leia a partir do Apache Kafka | Escreva no Apache Kafka |
| BigQuery | Leia a partir do BigQuery | Escreva no BigQuery |
| Bigtable | Leia a partir do Bigtable | Escrever no Bigtable |
| Cloud Storage | Ler a partir do Cloud Storage | Escrever no Cloud Storage |
| Pub/Sub | Ler a partir do Pub/Sub | Escrever no Pub/Sub |
Conetores de E/S suportados pela Google
A tabela seguinte indica os conetores de E/S do Apache Beam suportados pelo Dataflow. Para ver uma lista completa dos conetores de E/S do Apache Beam, incluindo os desenvolvidos pela comunidade do Apache Beam e suportados por outros executores, consulte Conetores de E/S na documentação do Apache Beam.
| Nome do conetor de E/S | Java | Python | Go |
|---|---|---|---|
| AvroIO | Suportado | Suportado | Suportado |
| BigQueryIO | Suportado | Suportado | Suportado |
| BigTableIO | Suportado | Lavatório suportado | Lavatório suportado |
| DatastoreIO | Suportado | Suportado | Suportado |
| FhirIO (cuidados de saúde) | Suportado | Não disponível | Suportado |
| FileIO | Suportado | Suportado | Suportado |
| GcsFileSystem | Suportado | Suportado | Suportado |
| JdbcIO | Suportado | Compatibilidade com vários idiomas | Compatibilidade com vários idiomas |
| KafkaIO | Suportado | Compatibilidade com vários idiomas | Compatibilidade com vários idiomas |
| LocalFileSystem | Suportado | Suportado | Suportado |
| ParquetIO | Suportado | Suportado | Suportado |
| PubSubIO | Suportado | Suportado | Suportado |
| SpannerIO | Suportado | Compatibilidade com vários idiomas | Suportado |
| TextIO | Suportado | Suportado | Suportado |
| TFRecordIO | Suportado | Suportado | Não disponível |
O que se segue?
- Leia a documentação do Apache Beam para conetores de E/S.