Dataflow 작업 일시중지

pause-on-failure 서비스 옵션을 사용하여 Dataflow 일괄 작업의 상태를 보존합니다. 이 기능을 사용하면 작업 실행을 일시중지하고, 파이프라인 외부의 문제를 해결하고, 완료된 작업을 잃지 않고 처리를 재개할 수 있습니다. 이 기능을 사용하여 작업을 일시중지하면 머신 유형과 같은 파이프라인 코드 또는 작업자 VM 구성을 변경할 수 없습니다.

이 기능을 사용 설정하면 일시적인 중단 또는 할당량 제약 조건 중에 리소스 비용을 더 효과적으로 관리하고 작업 안정성을 개선할 수 있습니다. pause-on-failure를 사용 설정할 때 최대 일시중지 기간을 구성하여 파이프라인 수명 주기를 더 효과적으로 제어할 수 있습니다. pause-on-failure 플래그가 사용 설정된 파이프라인을 수동으로 일시중지하거나 재개할 수도 있습니다.

pause-on-failure의 이점

pause-on-failure 서비스 옵션을 사용하면 중단 중에 일괄 작업 진행률을 보존하여 총 컴퓨팅 시간과 리소스 지출을 줄일 수 있습니다.

  • 체크포인트 보관: 작업이 실패하면 처음부터 다시 시작하는 대신 마지막으로 기록된 체크포인트에서 작업을 재개할 수 있습니다. 이렇게 하면 완료된 데이터 블록을 다시 처리할 필요가 없으므로 성공적으로 완료된 작업을 다시 실행하는 데 비용을 지불하지 않아도 됩니다.
  • 외부 종속 항목 완화: 외부 서비스의 일시적인 중단 또는 비율 제한과 같은 일시적인 문제로부터 파이프라인을 보호합니다. 작업을 일시중지하면 완료된 작업을 잃지 않고 실행을 재개하기 전에 근본 원인을 해결할 수 있습니다.
  • 비결정적 실패 처리: 간헐적 또는 비결정적 실패가 발생하기 쉬운 워크로드의 경우 이 옵션을 사용하면 각 순차적 시도에서 증분 진행률을 확보하여 전체 작업 실패를 방지할 수 있습니다.
  • 리소스 및 할당량 관리: 우선순위가 낮은 일괄 작업을 일시중지하여 할당량을 일시적으로 확보하거나 GPU 또는 TPU와 같은 고가치 리소스를 기준 진행률을 잃지 않고 머신러닝 모델 학습 또는 추론과 같은 긴급한 워크로드에 재할당합니다.

지원 및 제한 사항

작업을 일시중지 (수동 또는 실패 시)하려면 다음과 같은 요구사항 및 제한사항이 있습니다.

  • Dataflow 작업은 일괄 작업이어야 합니다.
  • 작업은 Dataflow Shuffle을 사용해야 합니다.
  • 작업을 실행할 때 pause_on_failure 서비스 옵션을 지정해야 합니다.
  • 작업이 이전에 일시중지되지 않았어야 합니다.
  • 작업이 일시중지된 동안 작업의 임시 디렉터리 콘텐츠를 삭제해서는 안 됩니다.

pause-on-failure 작업 동작

pause-on-failure 기능을 사용 설정하면 작업 항목이 4번 실패한 후 작업이 자동으로 일시중지됩니다. 이러한 실패는 로그에서 작업 메시지에 Error message from worker이 포함되고 작업자 메시지에 Completed work item ITEM_NUMBER UNSUCCESSFULLY이 포함된 것으로 식별됩니다. 재고 부족 및 할당량 오류와 같은 다른 유형의 실패는 자동 일시중지를 트리거하지 않습니다. 대신 이러한 실패로 인해 작업이 정상적으로 실패합니다. pause-on-failure를 사용 설정하면 작업을 수동으로 일시중지할 수도 있습니다.

작업 상태 전환

Dataflow 작업이 일시중지되면 다음 상태를 거칩니다.

  1. 일시중지 중: 작업이 처리를 중지하고 작업자 VM을 삭제하고 백엔드 상태를 보관하는 중간 상태입니다. 서비스에서 VM 삭제를 완료할 때까지 VM 비용이 청구됩니다.
  2. 일시중지됨: 작업이 완전히 중지되었습니다. 이 시점에서는 보관된 Shuffle 데이터에 대해서만 비용이 청구됩니다.

예외적인 동작

다음 시나리오에서는 pause-on-failure가 예기치 않게 동작할 수 있습니다.

  • 완료에 가까운 작업을 수동으로 일시중지하면 작업이 일시중지되는 대신 완료될 수 있습니다.
  • 드물지만 작업이 일시중지되지 않을 수 있습니다. 이러한 경우 작업을 수동으로 일시중지하면 작업이 실행 중 상태로 돌아가고, 오류로 인해 작업이 일시중지되는 경우 작업이 실패 상태로 전환됩니다.

처리 재개

작업이 재개되면 서비스는 작업 항목을 다음과 같이 처리합니다.

  • 완료된 작업: 작업이 일시중지되었을 때 완전히 완료된 단계 또는 작업 항목은 서비스에서 다시 처리하지 않습니다.
  • 진행 중인 작업: 작업이 일시중지되었을 때 진행 중이던 작업 항목은 처음부터 다시 처리됩니다.
  • 실패 횟수: 모든 작업 항목 실패 횟수가 0으로 재설정됩니다. 즉, 작업 항목이 4번 더 실패할 때까지 작업이 자동으로 다시 일시중지되지 않습니다.

pause-on-failure 사용 설정

작업에 pause-on-failure를 사용 설정하려면 작업을 실행할 때 pause_on_failure Dataflow 서비스 옵션을 사용합니다.

자바

--dataflowServiceOptions=pause_on_failure

Python

--dataflow_service_options=pause_on_failure

Go

--dataflow_service_options=pause_on_failure

최대 일시중지 기간 지정

기본적으로 작업은 최대 7일 (7d) 동안 일시중지된 상태로 유지됩니다. 이 최대 일시중지 기간을 1시간 (1h)에서 7일 (7d) 사이로 수동으로 구성할 수 있습니다.

d (일) 및 h (시간)만 지원됩니다. 하루는 24시간으로 정의됩니다. 일광 절약 시간과 같은 요인으로 인해 달력의 날짜 길이와 일치하지 않을 수 있습니다.

최대 일시중지 기간이 지나면 작업이 다음 시간 내에 취소됩니다. 작업이 취소된 후에는 작업을 재개할 수 없습니다.

예를 들어 다음 예에서는 최대 일시중지 기간을 1일로 설정합니다.

자바

--dataflowServiceOptions=pause_on_failure=pause_duration:1d

Python

--dataflow_service_options=pause_on_failure=pause_duration:1d

Go

--dataflow_service_options=pause_on_failure=pause_duration:1d

Dataflow 작업 수동 일시중지

작업을 수동으로 일시중지하려면 다음 단계를 수행합니다.

콘솔

  1. Dataflow 작업 페이지로 이동합니다.

    작업으로 이동

  2. 일시중지할 작업을 클릭합니다.

    작업을 일시중지하려면 작업 상태가 실행 중 이어야 합니다.

  3. 작업 세부정보 페이지에서 일시중지 를 클릭합니다.

    일시중지 버튼이 표시되지 않으면 pause-on-failure 제한으로 인해 작업을 일시중지할 수 없습니다.

gcloud

Dataflow 작업을 일시중지하려면 gcloud dataflow jobs 명령어를 Cloud Shell 또는 gcloud CLI를 통해 설치된 로컬 터미널에서 사용하면 됩니다.

  1. 셸을 엽니다.

  2. 실행 중인 Dataflow 작업의 작업 ID를 나열한 후 일시중지할 작업의 작업 ID를 기록해 둡니다.

    gcloud dataflow jobs list
    

    --region 플래그를 설정하지 않으면 사용 가능한 모든 리전의 Dataflow 작업이 표시됩니다.

  3. 다음을 실행합니다.

    gcloud dataflow jobs pause JOB_ID --region=REGION
    

    JOB_ID을 기록해 둔 작업 ID로 바꾸고 REGION을 작업 리전으로 바꿉니다.

API

Dataflow REST API를 사용하여 작업을 일시중지하려면 Dataflow REST API를 사용하고 projects.locations.jobs.update 엔드포인트를 사용하고 다음 요청 본문을 전달합니다.

{
  "requestedState": "JOB_STATE_PAUSING"
}

중요: JOB_STATE_PAUSEDrequestedState로 실수로 전달하지 마세요.

일시중지 중이거나 일시중지된 Dataflow 작업 취소

일시중지 중이거나 일시중지된 Dataflow 작업을 정상적으로 취소할 수 있습니다. 작업을 취소한 후에는 더 이상 비용이 청구되지 않지만 작업을 재개할 수는 없습니다.

일시중지된 작업은 최대 일시중지 기간이 만료된 후 자동으로 취소됩니다.

Dataflow 작업 재개

일시중지된 작업을 수동으로 재개하려면 다음 단계를 따르세요.

콘솔

  1. Dataflow 작업 페이지로 이동합니다.

    작업으로 이동

  2. 재개할 작업을 클릭합니다.

    작업을 재개하려면 작업 상태가 일시중지됨(일시중지 아님)이어야 합니다.

  3. 작업 세부정보 페이지에서 재개 를 클릭합니다.

gcloud

Dataflow 작업을 재개하려면 Cloud Shell의 gcloud dataflow jobs 명령어 또는 gcloud CLI를 통해 설치된 로컬 터미널을 사용하면 됩니다.

  1. 셸을 엽니다.

  2. 일시중지된 Dataflow 작업의 작업 ID를 나열한 후 재개할 작업의 작업 ID를 기록해 둡니다.

    gcloud dataflow jobs list
    

    --region 플래그를 설정하지 않으면 사용 가능한 모든 리전의 Dataflow 작업이 표시됩니다.

  3. 다음을 실행합니다.

    gcloud dataflow jobs resume JOB_ID --region=REGION
    

    JOB_ID을 작업 ID로 바꾸고 REGION을 작업 리전으로 바꿉니다.

API

Dataflow REST API를 사용하여 작업을 재개하려면 projects.locations.jobs.update 엔드포인트를 사용하고 다음 요청 본문을 전달합니다.

{
  "requestedState": "JOB_STATE_RUNNING"
}

다음 단계