YAML Apache Beam memungkinkan Anda mengemas dan menggunakan kembali transformasi melalui penyedia YAML Beam. Penyedia memungkinkan Anda merangkum transformasi ke dalam unit yang dapat digunakan kembali yang kemudian dapat Anda impor dalam pipeline YAML Beam. Transformasi Apache Beam YAML, Python, dan Java dapat dipaketkan dengan cara ini.
Dengan builder tugas, Anda dapat memuat penyedia dari Cloud Storage untuk menggunakannya dalam tugas.
Penyedia layanan penulisan
Penyedia YAML Beam ditentukan dalam file YAML. File ini menentukan penerapan dan konfigurasi transformasi yang disediakan. Listingan penyedia individual dinyatakan sebagai item daftar YAML dengan kunci type
dan config
. Penyedia Java dan Python juga memiliki kunci config
yang menentukan penerapan transformasi. Implementasi penyedia yang ditentukan YAML dinyatakan secara inline.
Penyedia YAML
Penyedia YAML menentukan transformasi YAML baru sebagai peta nama ke definisi transformasi. Misalnya, penyedia ini menentukan transformasi yang menguadratkan kolom dari inputnya:
- type: yaml
transforms:
SquareElement:
body:
type: chain
transforms:
- type: MapToFields
config:
language: python
append: true
fields:
power: "element ** 2"
Penyedia YAML juga dapat menentukan parameter transformasi dengan kunci config_schema
dalam definisi transformasi dan menggunakan parameter ini menggunakan templat 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}}"
Jika fungsi transformasi yang diberikan berfungsi sebagai sumber, fungsi tersebut harus menetapkan requires_inputs: false
:
- type: yaml
transforms:
CreateTestElements:
requires_inputs: false
body: |
type: Create
config:
elements: [1,2,3,4]
Anda juga dapat menentukan transformasi gabungan:
- 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}}
Penyedia Python
Transformasi Python dapat diberikan menggunakan sintaksis berikut:
- type: pythonPackage
config:
packages:
- pypi_package>=version
transforms:
MyCustomTransform: "pkg.module.PTransformClassOrCallable"
Untuk contoh mendalam, lihat project awal penyedia Python di GitHub.
Penyedia Java
Transformasi Java dapat diberikan menggunakan sintaksis berikut:
- type: javaJar
config:
jar: gs://your-bucket/your-java-transform.jar
transforms:
MyCustomTransform: "urn:registered:in:transform"
Untuk contoh mendalam, lihat project starter penyedia Java di GitHub.
Menggunakan penyedia di pembuat tugas
Transformasi yang ditentukan di penyedia dapat diimpor dari Cloud Storage dan digunakan di builder tugas. Untuk menggunakan penyedia di builder tugas:
Simpan penyedia sebagai file YAML di Cloud Storage.
Buka halaman Jobs di konsol Google Cloud .
Klik
Buat tugas dari builder.Temukan bagian Penyedia YAML. Anda mungkin perlu men-scroll.
Di kotak Jalur penyedia YAML, masukkan lokasi Cloud Storage file penyedia.
Tunggu hingga penyedia dimuat. Jika penyedia valid, transformasi yang ditentukan di penyedia akan muncul di bagian Transformasi yang dimuat.
Temukan nama transformasi Anda di bagian Transformasi yang dimuat, lalu klik tombol
untuk menyisipkan transformasi dalam tugas Anda.Jika transformasi Anda memerlukan parameter, tentukan parameter tersebut di editor konfigurasi transformasi YAML untuk transformasi Anda. Parameter harus ditentukan sebagai objek YAML yang memetakan nama parameter ke nilai parameter.
Langkah berikutnya
- Pelajari lebih lanjut penyedia YAML Beam.