Apache Beam YAML을 사용하면 Beam YAML 제공자를 통해 변환을 패키징하고 재사용할 수 있습니다. 제공자를 사용하면 변환을 재사용 가능한 단위로 캡슐화한 후 Beam YAML 파이프라인으로 가져올 수 있습니다. YAML, Python, Java Apache Beam 변환은 모두 이러한 방식으로 패키징할 수 있습니다.
작업 빌더를 사용하면 Cloud Storage에서 제공자를 로드하여 작업에 사용할 수 있습니다.
쓰기 제공업체
Beam YAML 제공자는 YAML 파일에 정의됩니다. 이 파일은 제공된 변환의 구현과 구성을 지정합니다. 개별 제공업체 등록정보는 type
및 config
키가 있는 YAML 목록 항목으로 표현됩니다. Java 및 Python 제공자에게는 변환 구현을 지정하는 config
키도 있습니다. YAML 정의 제공자 구현은 인라인으로 표현됩니다.
YAML 제공업체
YAML 제공자는 변환 정의에 대한 이름의 맵으로 새 YAML 변환을 정의합니다. 예를 들어 이 제공자는 입력에서 필드를 제곱하는 변환을 정의합니다.
- type: yaml
transforms:
SquareElement:
body:
type: chain
transforms:
- type: MapToFields
config:
language: python
append: true
fields:
power: "element ** 2"
YAML 제공자는 변환 정의에서 config_schema
키를 사용하여 변환 매개변수를 지정하고 Jinja2 템플릿화를 사용하여 이러한 매개변수를 사용할 수도 있습니다.
- type: yaml
transforms:
RaiseElementToPower:
config_schema:
properties:
n: {type: integer}
body:
type: chain
transforms:
- type: MapToFields
config:
language: python
append: true
fields:
power: "element ** {{n}}"
제공된 변환이 소스로 작동하는 경우 requires_inputs: false
를 설정해야 합니다.
- type: yaml
transforms:
CreateTestElements:
requires_inputs: false
body: |
type: Create
config:
elements: [1,2,3,4]
복합 변환을 정의할 수도 있습니다.
- type: yaml
transforms:
ConsecutivePowers:
config_schema:
properties:
end: {type: integer}
n: {type: integer}
requires_inputs: false
body: |
type: chain
transforms:
- type: Range
config:
end: {{end}}
- type: RaiseElementToPower
config:
n: {{n}}
Python 제공자
Python 변환은 다음 구문을 사용하여 제공할 수 있습니다.
- type: pythonPackage
config:
packages:
- pypi_package>=version
transforms:
MyCustomTransform: "pkg.module.PTransformClassOrCallable"
자세한 예는 GitHub의 Python 제공업체 스타터 프로젝트를 참고하세요.
Java 제공자
Java 변환은 다음 구문을 사용하여 제공할 수 있습니다.
- type: javaJar
config:
jar: gs://your-bucket/your-java-transform.jar
transforms:
MyCustomTransform: "urn:registered:in:transform"
자세한 예시는 GitHub의 Java 제공자 스타터 프로젝트를 참고하세요.
작업 빌더에서 제공자 사용
제공자에 정의된 변환은 Cloud Storage에서 가져와 작업 빌더에서 사용할 수 있습니다. 작업 빌더에서 제공자를 사용하려면 다음 단계를 따르세요.
Cloud Storage에 제공업체를 YAML 파일로 저장합니다.
Google Cloud 콘솔에서 작업 페이지로 이동합니다.
빌더에서 작업 만들기를 클릭합니다.
YAML 제공업체 섹션을 찾습니다. 스크롤해야 할 수도 있습니다.
YAML 제공업체 경로 상자에 제공업체 파일의 Cloud Storage 위치를 입력합니다.
제공업체가 로드될 때까지 기다립니다. 제공자가 유효한 경우 제공자에 정의된 변환이 로드된 변환 섹션에 표시됩니다.
로드된 변환 섹션에서 변환의 이름을 찾아
버튼을 클릭하여 작업에 변환을 삽입합니다.변환에 매개변수가 필요한 경우 변환의 YAML 변환 구성 편집기에서 매개변수를 정의합니다. 매개변수는 매개변수 이름을 매개변수 값에 매핑하는 YAML 객체로 정의해야 합니다.
다음 단계
- Beam YAML 제공업체에 대해 자세히 알아보세요.