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 커넥터 개발을 참조하세요.
파이프라인이 실패하면 I/O 커넥터에서 로깅한 오류가 있는지 확인합니다. Dataflow 오류 문제 해결을 참조하세요.
Dataflow에서 커넥터로 쓰기를 수행할 때는 실패한 쓰기 또는 잘못된 형식의 읽기를 처리하기 위해 ErrorHandler를 사용하는 것이 좋습니다. 이러한 유형의 오류 처리는 Apache Beam 버전 2.55.0 이상에서 Java I/O(BigQueryIO, BigtableIO, PubSubIO, KafkaIO, FileIO, TextIO, AvroIO)에 대해 지원됩니다.
개별 I/O 커넥터 권장사항
다음 주제에서는 개별 I/O 커넥터에 대한 권장사항을 보여줍니다.
I/O 커넥터 | 읽기 | 쓰기 |
---|---|---|
Apache Iceberg | Apache Iceberg에서 읽기 | Apache Iceberg에 쓰기 |
BigQuery | BigQuery에서 읽어오기 | BigQuery에 쓰기 |
Bigtable | Bigtable에서 읽기 | Bigtable에 쓰기 |
Cloud Storage | Cloud Storage에서 읽기 | Cloud Storage에 쓰기 |
Pub/Sub | Pub/Sub에서 읽기 | Pub/Sub에 쓰기 |
Google 지원 I/O 커넥터
다음 표에는 Dataflow에서 지원하는 Apache Beam I/O 커넥터가 나와 있습니다. Apache Beam 커뮤니티에서 개발하고 다른 실행기에서 지원하는 커넥터를 포함하여 Apache Beam I/O 커넥터의 전체 목록은 Apache Beam 문서에서 I/O 커넥터를 참조하세요.
I/O 커넥터 이름 | 자바 | Python | Go |
---|---|---|---|
AvroIO | 지원됨 | 지원됨 | 지원됨 |
BigQueryIO | 지원됨 | 지원됨 | 지원됨 |
BigTableIO | 지원됨 | 싱크 지원 | 싱크 지원 |
DatastoreIO | 지원됨 | 지원됨 | 지원됨 |
FhirIO(의료) | 지원됨 | 사용 불가능 | 지원됨 |
FileIO | 지원됨 | 지원됨 | 지원됨 |
GcsFileSystem | 지원됨 | 지원됨 | 지원됨 |
JdbcIO | 지원됨 | 교차 언어 지원 | 교차 언어 지원 |
KafkaIO | 지원됨 | 교차 언어 지원 | 교차 언어 지원 |
LocalFileSystem | 지원됨 | 지원됨 | 지원됨 |
ParquetIO | 지원됨 | 지원됨 | 지원됨 |
PubSubIO | 지원됨 | 지원됨 | 지원됨 |
SpannerIO | 지원됨 | 교차 언어 지원 | 지원됨 |
TextIO | 지원됨 | 지원됨 | 지원됨 |
TFRecordIO | 지원됨 | 지원됨 | 사용 불가능 |
다음 단계
- I/O 커넥터에 대한 Apache Beam 문서 참조