일괄 작업은 기본적으로 Dataflow Shuffle을 사용합니다. Dataflow 셔플은 셔플 작업을 작업자 VM에서 Dataflow 서비스 백엔드로 이동합니다.
Dataflow Shuffle 정보
- Dataflow Shuffle은
GroupByKey
,CoGroupByKey
,Combine
과 같은 Dataflow 변환의 기본 연산입니다. - Dataflow shuffle 작업은 확장 가능하고 효율적이며 내결함성이 있는 방식으로 키를 사용해 데이터를 분할하고 그룹화합니다.
Dataflow Shuffle의 이점
서비스 기반 Dataflow Shuffle에는 다음과 같은 이점이 있습니다.
- 대부분의 파이프라인 작업 유형에 대한 일괄 파이프라인의 실행 시간 단축
- 작업자 VM에서 소비되는 CPU, 메모리, 영구 디스크 스토리지 리소스 감소
- VM이 셔플 데이터를 보유하지 않으므로 더 일찍 축소할 수 있도록 수평 자동 확장 개선
- 내결함성 향상: Cloud Dataflow Shuffle 데이터를 보유하는 비정상 VM이 있어도 전체 작업이 실패하지 않습니다.
지원 및 제한 사항
- 스트리밍 작업에는 Dataflow 셔플을 사용할 수 없습니다.
- 이 기능을 Dataflow가 지원되는 모든 리전에서 사용할 수 있습니다. 사용 가능한 위치를 확인하려면 Dataflow 위치를 참조하세요. 지역마다 실적 차이가 있을 수 있습니다.
- 작업자는 Dataflow 작업과 동일한 리전에 배포되어야 합니다.
zone
파이프라인 옵션을 지정하지 마세요. 대신region
를 지정하고 값을 사용할 수 있는 리전 중 하나로 설정합니다. Dataflow가 지정한 리전에서 영역을 자동으로 선택합니다.zone
파이프라인 옵션을 지정하고 사용 가능한 리전 외부의 영역으로 설정하면 Dataflow 작업에서 오류가 반환됩니다.region
및zone
의 호환되지 않는 조합을 설정하면 작업에서 Dataflow Shuffle을 사용할 수 없습니다.Python의 경우 Dataflow Shuffle을 사용하려면 Python용 Apache Beam SDK 버전 2.1.0 이상이 필요합니다.
디스크 크기 고려사항
각 일괄 작업의 기본 부팅 디스크 크기는 25GB입니다. 일부 일괄 작업의 경우 디스크 크기를 수정해야 할 수 있습니다. 한 가지 예를 살펴보겠습니다.
- 작업자 VM은 운영체제, 바이너리, 로그, 컨테이너에 25GB의 디스크 공간 중 일부를 사용합니다. Dataflow Shuffle을 사용하면 디스크 용량이 크고 남은 디스크 용량을 초과하는 작업이 실패할 수 있습니다.
- 작은 디스크의 성능으로 인해 많은 디스크 I/O를 사용하는 작업은 느려질 수 있습니다. 디스크 크기 간 성능 차이에 대한 자세한 내용은 Compute Engine Persistent Disk 성능을 참조하세요.
Dataflow 셔플 작업에 디스크 크기를 더 크게 지정하려면 --disk_size_gb
매개변수를 사용하면 됩니다.
가격 책정
대부분의 작업자 리소스 감소는 셔플 작업을 Dataflow 서비스로 오프로드하는 데서 비롯됩니다. 따라서 Dataflow Shuffle 사용과 관련된 요금이 발생합니다. 실행 시간은 실행할 때마다 다를 수 있습니다. 중요한 기한이 있는 파이프라인을 실행하는 경우, 기한 전에 충분한 여유 시간을 할당하는 것이 좋습니다.