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