Práticas recomendadas do conector de E/S do Apache Beam
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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:
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.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-12-22 UTC."],[[["\u003cp\u003eDataflow handles parallelism automatically, but I/O connectors require specific considerations for optimal parallel performance when interacting with external systems.\u003c/p\u003e\n"],["\u003cp\u003eUsing the latest version of the Apache Beam SDK is advised to leverage ongoing improvements in features and fixes for I/O connectors.\u003c/p\u003e\n"],["\u003cp\u003eBalancing job parallelism is crucial; too little can cause delays and data buildup, while too much can overwhelm data sinks with excess requests.\u003c/p\u003e\n"],["\u003cp\u003eDataflow does not guarantee the order of elements in a collection, so ordering should not be relied upon.\u003c/p\u003e\n"],["\u003cp\u003eAn ErrorHandler can be utilized when writing data to a connector to manage failed writes or malformed reads, and it is supported for several Java I/Os in Apache Beam versions 2.55.0 and later.\u003c/p\u003e\n"]]],[],null,["# Apache Beam I/O connector best practices\n\nData processing in Dataflow can be highly parallelized. Much of this\nparallelism is handled automatically by Dataflow. I/O connectors\nsit at the boundary between your pipeline and other parts of your architecture,\nsuch as file storage, databases, and messaging systems. As such, I/O connectors\noften have specific considerations for achieving parallelism.\n\nGeneral best practices\n----------------------\n\nThe following list describes general best practices for using I/O connectors in\nDataflow.\n\n- Read the Javadoc, Pydoc, or Go documentation for the connectors in your\n pipeline. For more information, see\n [I/O connectors](https://beam.apache.org/documentation/io/connectors/)\n in the Apache Beam documentation.\n\n- Use the latest version of the Apache Beam SDK. I/O connectors are\n continually being improved, adding features and fixing known issues.\n\n- When developing a pipeline, it's important to balance the parallelism of the\n job. If a job has too little parallelism, it can be slow, and data can build\n up in the source. However, too much parallelism can overwhelm a sink with too\n many requests.\n\n- Don't rely on the ordering of elements. In general, Dataflow\n does not guarantee the order of elements in a collection.\n\n- If an I/O connector isn't available in your SDK of choice, consider using the\n [cross-language framework](https://beam.apache.org/documentation/programming-guide/#use-x-lang-transforms)\n to use an I/O connector from another SDK. In addition, connectors don't always\n have feature parity between SDKs. If a connector from another SDK provides a\n feature that you need, you can use it as a cross-language transform.\n\n- In general, writing custom I/O connectors is challenging. Use an existing\n connector whenever possible. If you need to implement a custom I/O connector,\n read\n [Developing a new I/O connector](https://beam.apache.org/documentation/io/developing-io-overview/).\n\n- If a pipeline fails, check for errors logged by I/O connectors. See\n [Troubleshoot Dataflow errors](/dataflow/docs/guides/common-errors).\n\n- When performing writes from Dataflow to a connector, consider using\n an [ErrorHandler](https://beam.apache.org/releases/javadoc/current/org/apache/beam/sdk/transforms/errorhandling/ErrorHandler.html)\n to handle any failed writes or malformed reads. This type of error handling is\n supported for the following Java I/Os in Apache Beam versions 2.55.0 and later: BigQueryIO,\n BigtableIO, PubSubIO, KafkaIO, FileIO, TextIO, and AvroIO.\n\nBest practices for individual I/O connectors\n--------------------------------------------\n\nThe following topics list best practices for individual I/O connectors:\n\nGoogle-supported I/O connectors\n-------------------------------\n\nThe following table lists the Apache Beam I/O connectors supported by\nDataflow. For a full list of Apache Beam I/O connectors,\nincluding those developed by the Apache Beam community and supported\nby other runners, see\n[I/O connectors](https://beam.apache.org/documentation/io/connectors/)\nin the Apache Beam documentation.\n\nWhat's next\n-----------\n\n- Read the Apache Beam documentation for [I/O connectors](https://beam.apache.org/documentation/io/connectors/)."]]