일괄 작업에 대한 Dataflow Shuffle

일괄 작업은 기본적으로 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 작업에서 오류가 반환됩니다. regionzone의 호환되지 않는 조합을 설정하면 작업에서 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 사용과 관련된 요금이 발생합니다. 실행 시간은 실행할 때마다 다를 수 있습니다. 중요한 기한이 있는 파이프라인을 실행하는 경우, 기한 전에 충분한 여유 시간을 할당하는 것이 좋습니다.