데이터를 Dataflow에서 Bigtable로 쓰려면 Apache Beam Bigtable I/O 커넥터를 사용합니다.
동시 로드
동시 로드는 Bigtable 클러스터의 노드 수에 따라 제어됩니다. 부하 분산의 일부로 키 범위가 노드 간에 이동할 수 있지만, 각 노드는 하나 이상의 키 범위를 관리합니다. 자세한 내용은 Bigtable 문서의 성능 이해를 참조하세요.
인스턴스 클러스터의 노드 수에 따라 비용이 청구됩니다. Bigtable 가격 책정을 참조하세요.
성능
다음 표는 Bigtable I/O 쓰기 작업의 성능 측정항목을 보여줍니다. 워크로드는 자바용 Apache Beam SDK 2.48.0을 사용해 하나의 e2-standard2
작업자에서 실행되었습니다. Runner v2를 사용하지 않았습니다.
레코드 1억 건 | 1KB | 열 1개 | 처리량(바이트) | 처리량(요소) |
---|---|---|
쓰기 | 65MBps | 초당 요소 60,000개 |
이러한 측정항목은 간단한 일괄 파이프라인을 기반으로 합니다. 이는 I/O 커넥터 간 성능을 비교하기 위한 것이며 실제 파이프라인을 나타내지는 않습니다. Dataflow 파이프라인 성능은 복잡하며 VM 유형, 처리 중인 데이터, 외부 소스 및 싱크의 성능, 사용자 코드와 상관관계가 있습니다. 측정항목은 Java SDK 실행을 기반으로 하며 다른 언어 SDK의 성능 특성을 나타내지 않습니다. 자세한 내용은 Beam IO 성능을 참조하세요.
권장사항
일반적으로 트랜잭션은 사용하지 않는 것이 좋습니다. 트랜잭션은 멱등성을 보장하지 않으며 Dataflow가 재시도로 인해 이를 여러 번 호출하여 예상치 못한 값이 발생할 수 있습니다.
단일 Dataflow 작업자가 여러 키 범위의 데이터를 처리할 수 있으므로 Bigtable에 비효율적인 쓰기가 발생할 수 있습니다.
GroupByKey
를 사용하여 Bigtable 키로 데이터를 그룹화하면 쓰기 성능이 크게 향상될 수 있습니다.Bigtable에 대규모 데이터 세트를 쓰는 경우
withFlowControl
호출을 고려하세요. 이 설정은 Bigtable 서버에 데이터를 제공하는 데 충분한 리소스가 있도록 Bigtable 서버에 대한 트래픽 비율을 자동으로 제한합니다.
다음 단계
- Bigtable I/O 커넥터 문서 참조
- Google 제공 템플릿 목록 참조