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 からインポートしてジョブビルダーで使用できます。ジョブビルダーでプロバイダを使用するには:
プロバイダを YAML ファイルとして Cloud Storage に保存します。
Google Cloud コンソールの [ジョブ] ページに移動します。
[
ビルダーからジョブを作成] をクリックします。[YAML Providers] セクションを見つけます。スクロールが必要な場合があります。
[YAML プロバイダのパス] ボックスに、プロバイダ ファイルがある Cloud Storage の場所を入力します。
プロバイダが読み込まれるのを待ちます。プロバイダが有効な場合、プロバイダで定義された変換が [読み込まれた変換] セクションに表示されます。
[読み込まれた変換] セクションで変換の名前を見つけ、[
] ボタンをクリックしてジョブに変換を挿入します。変換にパラメータが必要な場合は、変換の YAML 変換構成エディタでパラメータを定義します。パラメータは、パラメータ名をパラメータ値にマッピングする YAML オブジェクトとして定義する必要があります。
次のステップ
- Beam YAML プロバイダの詳細を確認する。