Dataflow 구성요소

DataflowPythonJobOp를 사용하면 Python으로 작성된 Apache Beam 작업을 실행하도록 Dataflow에 제출하여 데이터를 준비하는 Vertex AI Pipelines 구성요소를 만들 수 있습니다.

Python Beam 코드는 Dataflow Runner로 실행됩니다. Dataflow 서비스로 파이프라인을 실행할 때 실행기는 실행 가능한 코드(python_module_path로 지정됨) 매개변수 및 종속 항목을 Cloud Storage 버킷(temp_location으로 지정됨)에 업로드하고 Google Cloud의 관리형 리소스에서 Apache Beam 파이프라인을 실행하는 Dataflow 작업을 만듭니다.

Dataflow Runner에 대해 자세히 알아보려면 Dataflow Runner 사용을 참조하세요.

Dataflow Python 구성요소에는 Beam Runner를 통해 Apache Beam 코드로 전달되는 인수 목록이 사용됩니다. 이러한 인수는 args로 지정됩니다. 예를 들어 이러한 인수를 사용하여 Dataflow 작업을 실행할 때 네트워크, 서브네트워크, 고객 관리 암호화 키(CMEK), 기타 옵션을 지정하도록 apache_beam.options.pipeline_options를 설정할 수 있습니다.

WaitGcpResourcesOp

Dataflow 작업은 종종 완료하는 데 시간이 오래 걸릴 수 있습니다. busy-wait 컨테이너(Dataflow 작업을 실행하고 결과를 기다리는 컨테이너)의 비용이 높을 수 있습니다.

대신 Beam Runner를 통해 Dataflow 작업을 제출한 후 DataflowPythonJobOp 구성요소가 즉시 종료됩니다. job_id는 구성요소에서 직렬화된 gcp_resources proto로 반환됩니다. 이 출력을 WaitGcpResourcesOp 구성요소에 전달하여 Dataflow 작업 완료를 기다릴 수 있습니다.

    dataflow_python_op = DataflowPythonJobOp(
        project=project_id,
        location=location,
        python_module_path=python_file_path,
        temp_location = staging_dir,
        requirements_file_path = requirements_file_path,
        args = ['--output', OUTPUT_FILE],
    )
  
    dataflow_wait_op =  WaitGcpResourcesOp(
        gcp_resources = dataflow_python_op.outputs["gcp_resources"]
    )

Vertex AI Pipelines는 서버 리스 방식으로 실행하도록 WaitGcpResourcesOp를 최적화하고, 제로 비용을 포함합니다.

또한 DataflowPythonJobOp가 요구사항을 충족하지 않는 경우(예를 들어 Beam Runner를 실행하기 전에 사전 처리가 필요하거나 Beam 자바와 같은 다른 언어를 사용하는 경우), gcp_resources 매개변수를 출력하는 자체 구성요소를 만들어 WaitGcpResourcesOp 구성요소를 활용할 수 있습니다. gcp_resources 출력 매개변수를 만드는 방법에 대한 자세한 내용은 Google Cloud Console 링크를 표시하는 구성요소 작성을 참조하세요.

API 참조

구성요소 참조는 google_cloud_pipeline_components SDK 참조를 확인하세요.

튜토리얼

버전 기록 및 변경 로그

날짜 버전 참고
03/2022 GCPC v1.0 구성요소 버전 1.0 출시 버전입니다.
02/2022 GCPC v0.3 구성요소의 새 실험용 버전입니다.
11/2021 GCPC v0.2 구성요소의 실험용 출시 버전입니다.

기술 지원 담당자

궁금한 점이 있다면 kubeflow-pipelines-components@google.com으로 연락하시기 바랍니다.