Dataflow 템플릿

Dataflow 템플릿을 사용하면 Google Cloud에서 파이프라인을 스테이징하고 Google Cloud Console, gcloud 명령줄 도구 또는 REST API 호출을 사용하여 실행할 수 있습니다. 기본 템플릿은 Cloud Storage에서 실행 그래프로 스테이징되고 Flex 템플릿은 파이프라인을 Docker 이미지로 패키징하고 이 이미지를 프로젝트의 Container Registry에 스테이징합니다. Google에서 제공하는 템플릿 중 하나를 사용하거나 템플릿을 직접 만들 수 있습니다.

템플릿은 템플릿 없는 Dataflow 배포와 비교할 때 다음과 같은 추가적인 이점을 제공합니다.

  • 개발 환경 및 템플릿 없는 Dataflow배포에 일반적인 종속 항목 없이 파이프라인을 실행할 수 있습니다. 이 템플릿은 반복되는 일괄 작업을 예약하는 데 유용합니다.
  • 템플릿은 개발자가 수행하는 파이프라인 구성을 파이프라인 실행과 분리합니다. 따라서 파이프라인을 실행할 때마다 코드를 다시 컴파일할 필요가 없습니다.
  • 런타임 매개변수를 사용하면 파이프라인 실행을 커스터마이즈할 수 있습니다.
  • 기술적 전문 지식이 없는 사용자는 Google Cloud Console, gcloud 명령줄 도구, REST API를 사용하여 템플릿을 실행할 수 있습니다.

템플릿 작업과 템플릿 없는 작업 비교

Dataflow 템플릿은 템플릿 없는 작업 실행 워크플로와 다른 새로운 개발 및 실행 워크플로를 도입합니다. 템플릿 워크플로는 개발 단계와 실행 단계를 분리합니다.

템플릿 없는 Dataflow 작업

Apache Beam 파이프라인 개발 및 작업 실행은 일반적으로 모두 개발 환경 내에서 이루어집니다.

템플릿 없는 Dataflow 작업의 일반적인 워크플로:

  1. 개발자는 개발 환경을 만들고 파이프라인을 개발합니다. 이 환경에는 Apache Beam SDK와 기타 종속 항목이 포함됩니다.
  2. 사용자는 개발 환경에서 파이프라인을 실행합니다. Apache Beam SDK가 Cloud Storage에서 파일을 스테이징하고 작업 요청 파일을 만든 다음 Dataflow 서비스에 파일을 제출합니다.

템플릿 기반 Dataflow 작업

기본 템플릿 또는 Flex 템플릿을 사용하는 경우 스테이징과 실행은 별도의 단계입니다. 따라서 작업을 실행할 수 있는 작업자와 위치를 유연하게 결정할 수 있습니다.

템플릿 Dataflow 작업의 일반적인 워크플로:

  1. 개발자는 개발 환경을 만들고 파이프라인을 개발합니다. 이 환경에는 Apache Beam SDK와 기타 종속 항목이 포함됩니다.
  2. 이 단계는 사용하는 템플릿 유형에 따라 다릅니다.
    • 기본 템플릿 개발자가 파이프라인을 실행하고 템플릿을 만듭니다. Apache Beam SDK는 Cloud Storage에서 파일을 스테이징하고, 작업 요청과 유사한 템플릿 파일을 만들고, 템플릿 파일을 Cloud Storage에 저장합니다.
    • Flex 템플릿 개발자는 파이프라인을 Docker 이미지로 패키징한 다음 gcloud 명령줄 도구를 사용하여 Cloud Storage에 Flex 템플릿 사양 파일을 빌드하고 저장합니다.
  3. 다른 사용자는 Cloud Console, gcloud 명령줄 도구, REST API를 사용하여템플릿 파일 실행 요청을 Dataflow 서비스에 제출해 쉽게 작업을 실행할 수 있습니다.

또한 Dataflow 모니터링 사용자 인터페이스를 통해 기본 템플릿 작업을 클론할 수 있습니다. 클론된 작업의 제출 양식에는 매개변수 값이 미리 입력되어 있습니다. 하지만 작업을 실행하기 전에 수정할 수 있습니다.

작업을 클론하려면 다음 단계를 수행합니다.

  1. 클론할 작업의 작업 세부정보 페이지로 이동합니다.
  2. 복제를 클릭합니다.
  3. 필요한 경우 작업 매개변수를 업데이트합니다.
  4. 작업 실행을 클릭하여 새 작업을 제출합니다.

기본 템플릿 또는 Flex 템플릿 사용 여부와 관계없이 파이프라인 구성 및 실행의 여러 단계를 이해하려면 Dataflow 파이프라인을 재사용 가능한 템플릿으로 변환을 참조하세요.

사용할 템플릿 유형 평가

유연한 템플릿은 단일 템플릿에서 Dataflow 작업을 시작할 수 있도록 약간의 변형을 허용하고 모든 소스 또는 싱크 I/O 사용을 허용하여 기본 템플릿보다 더 많은 유연성을 제공합니다. 기본 템플릿의 경우 실행 그래프는 템플릿 생성 프로세스 중에 빌드됩니다. Flex 템플릿의 실행 그래프는 템플릿 실행될 때 사용자가 제공하는 런타임 매개변수를 기반으로 동적으로 빌드됩니다. 즉, Flex 템플릿을 사용할 경우 사소한 변형을 만들어서 소스 파일 또는 싱크 파일 형식 변경과 같은 동일한 기본 템플릿을 사용하는 여러가지 태스크를 수행할 수 있습니다.

템플릿 작업 비교

다음 표에는 기본 템플릿과 Flex 템플릿 간의 유사점과 차이점이 요약되어 있습니다.
기능 기본 템플릿 Flex 템플릿
스테이징 및 실행 단계 분리 Y Y
Google Cloud Console, gcloud 도구 또는 REST API 호출을 사용하여 템플릿 실행 Y Y
코드를 다시 컴파일하지 않고 파이프라인 실행 Y Y
개발 환경 및 관련 종속 항목 없이 파이프라인 실행 Y Y
런타임 매개변수로 파이프라인 실행 맞춤설정 Y Y
런타임 오류를 줄이기 위해 작업 그래프 생성 시 유효성 검사 실행 N Y
템플릿 생성 후 작업 실행 그래프를 변경할 수 있습니다. N Y
스트리밍 작업을 업데이트할 수 있습니다.1 Y Y
FlexRS 지원1 Y Y
SQL 매개변수 지원 N Y
ValueProvider 이외의 I/O 인터페이스 지원 N Y

참고

1. 스트리밍 업데이트 또는 FlexRS 기능을 사용하려면 사용자가 기본 이미지 버전 20210120_RC00으로 FlexRS 템플릿을 다시 빌드해야 합니다.

기본 템플릿과 Flex 템플릿 작업 모두 스테이징 및 실행이 서로 다른 단계에서 수행됩니다. 그러나 두 가지 유형의 템플릿 작업은 서로 다른 스테이징 아티팩트를 만듭니다. 기본 템플릿을 사용하는 경우 스테이징된 아티팩트는 JSON 직렬화 실행 그래프가 있는 템플릿입니다. Flex 템플릿을 사용하는 경우 스테이징된 아티팩트는 JAR 파일 또는 Python 코드가 포함된 Docker 이미지입니다.

SDK 버전 요구사항

템플릿을 직접 만들려면 사용 중인 Apache Beam SDK 버전이 템플릿 만들기를 지원하는지 확인합니다.

자바: SDK 2.x

자바용 Apache Beam SDK 2.x로 템플릿을 만들려면 버전 2.0.0-beta3 이상이 필요합니다.

Python

Python용 Apache Beam SDK 2.x로 템플릿을 만들려면 버전 2.0.0 이상이 필요합니다.

자바: SDK 1.x

gcloud 명령줄 도구로 템플릿을 실행하려면 Cloud SDK 버전 138.0.0 이상이 필요합니다.

다음 단계