Dataflow의 데이터 처리에서는 동시 로드가 많이 발생할 수 있습니다. 이러한 대부분의 동시 로드는 Dataflow에서 자동으로 처리됩니다. I/O 커넥터는 파이프라인과 파일 스토리지, 데이터베이스, 메시징 시스템 등 아키텍처의 다른 부분 사이의 경계에 위치합니다. 따라서 I/O 커넥터에는 동시 로드를 위한 특정 고려사항이 있는 경우가 많습니다.
일반 권장사항
다음 목록에서는 Dataflow에서 I/O 커넥터를 사용할 경우의 일반적인 권장사항을 설명합니다.
파이프라인의 커넥터는 Javadoc, Pydoc, Go 문서를 읽어보세요. 자세한 내용은 Apache Beam 문서의 I/O 커넥터를 참조하세요.
Apache Beam SDK의 최신 버전을 사용하세요. 기능을 추가하고 알려진 문제를 해결하는 등 I/O 커넥터가 계속해서 개선되고 있습니다.
파이프라인을 개발할 때 작업의 동시 로드를 분산하는 것이 중요합니다. 작업에 동시 로드가 너무 적으면 속도가 느려지고 데이터가 소스에 빌드될 수 있습니다. 그러나 동시 로드가 과도하면 너무 많은 요청으로 인해 싱크에 부담을 줄 수 있습니다.
요소의 순서에 의존하지 마세요. 일반적으로 Dataflow는 컬렉션에서 요소 순서를 보장하지 않습니다.
선택한 SDK에서 I/O 커넥터를 사용할 수 없으면 교차 언어 프레임워크를 사용하여 다른 SDK의 I/O 커넥터를 사용하는 것이 좋습니다. 또한 커넥터는 SDK 간에 항상 동일한 기능을 유지하지 않습니다. 다른 SDK의 커넥터가 필요한 기능을 제공하는 경우 교차 언어 변환으로 이를 사용할 수 있습니다.
일반적으로 커스텀 I/O 커넥터를 작성하는 것은 쉽지 않습니다. 가능하면 기존 커넥터를 사용하세요. 커스텀 I/O 커넥터를 구현해야 하면 새 I/O 커넥터 개발을 참조하세요.
Dataflow에서 커넥터로 쓰기를 수행할 경우에는 ErrorHandler를 사용하여 실패한 쓰기나 잘못된 형식의 읽기를 처리하는 것이 좋습니다. 이러한 유형의 오류 처리는 Apache Beam 버전 2.55.0 이상의 Java I/O(BigQueryIO, BigtableIO, PubSubIO, KafkaIO, FileIO, TextIO, AvroIO)에서 지원됩니다.
다음 표에는 Dataflow에서 지원하는 Apache Beam I/O 커넥터가 나와 있습니다. Apache Beam 커뮤니티에서 개발하고 다른 실행기에서 지원하는 커넥터를 포함하여 Apache Beam I/O 커넥터의 전체 목록은 Apache Beam 문서에서 I/O 커넥터를 참조하세요.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(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/)."]]