Dengan template Dataflow, Anda dapat mengemas pipeline Dataflow untuk deployment. Siapa pun yang memiliki izin yang benar kemudian dapat menggunakan template untuk men-deploy pipeline yang dikemas. Anda dapat membuat template Dataflow kustom sendiri, dan Google menyediakan template bawaan untuk skenario umum.
Manfaat
Template memiliki beberapa keunggulan dibandingkan dengan men-deploy pipeline secara langsung ke Dataflow:
- Template memisahkan desain pipeline dari deployment. Misalnya, developer dapat membuat template, dan ilmuwan data dapat men-deploy template tersebut di lain waktu.
- Template dapat memiliki parameter yang memungkinkan Anda menyesuaikan pipeline saat men-deploy template.
- Anda dapat men-deploy template menggunakan konsol Google Cloud , Google Cloud CLI, atau panggilan REST API. Anda tidak memerlukan lingkungan pengembangan atau dependensi pipeline apa pun yang diinstal di mesin lokal Anda.
- Template adalah artefak kode yang dapat disimpan di repositori kontrol sumber dan digunakan dalam pipeline continuous integration (CI/CD).
Template yang disediakan Google
Google menyediakan berbagai template Dataflow open source bawaan yang dapat Anda gunakan untuk skenario umum. Untuk mengetahui informasi selengkapnya tentang template yang tersedia, lihat Template yang disediakan Google.
Membandingkan template Flex dan template klasik
Dataflow mendukung dua jenis template: Template Flex, yang lebih baru, dan template klasik. Jika Anda membuat template Dataflow baru, sebaiknya buat template tersebut sebagai template Flex.
Dengan template Flex, pipeline dikemas sebagai image Docker di
Artifact Registry, bersama dengan file spesifikasi template di Cloud Storage. Spesifikasi
template berisi pointer ke image Docker. Saat Anda menjalankan template, layanan Dataflow akan memulai VM peluncur, menarik image Docker, dan menjalankan pipeline. Grafik eksekusi dibuat secara dinamis berdasarkan parameter runtime yang diberikan oleh
pengguna. Untuk menggunakan API guna meluncurkan tugas yang menggunakan template Flex, gunakan
metode projects.locations.flexTemplates.launch
.
Template klasik berisi serialisasi JSON dari grafik tugas Dataflow. Kode
untuk pipeline harus membungkus parameter runtime apa pun dalam antarmuka ValueProvider
. Antarmuka ini memungkinkan pengguna menentukan nilai parameter saat men-deploy
template. Untuk menggunakan API guna bekerja dengan template klasik, lihat
dokumentasi referensi API
projects.locations.templates
.
Template fleksibel memiliki keunggulan berikut dibandingkan template klasik:
- Tidak seperti template klasik, template Flex tidak memerlukan antarmuka
ValueProvider
untuk parameter input. Tidak semua sumber dan sink Dataflow mendukungValueProvider
. - Meskipun template klasik memiliki grafik tugas statis, template Flex dapat membuat grafik tugas secara dinamis. Misalnya, template dapat memilih konektor I/O yang berbeda berdasarkan parameter input.
- Template Flex dapat melakukan praproses pada virtual machine (VM) selama konstruksi pipeline. Misalnya, fungsi ini dapat memvalidasi nilai parameter input.
Alur kerja template
Penggunaan template Dataflow mencakup langkah-langkah tingkat tinggi berikut:
- Developer menyiapkan lingkungan pengembangan dan mengembangkan pipeline mereka. Lingkungan mencakup Apache Beam SDK dan dependensi lainnya.
- Bergantung pada jenis template (Flex atau klasik):
- Untuk template Flex, developer mengemas pipeline ke dalam image Docker, mengirim image ke Artifact Registry, dan mengupload file spesifikasi template ke Cloud Storage.
- Untuk template klasik, developer menjalankan pipeline, membuat file template, dan melakukan staging template ke Cloud Storage.
- Pengguna lain mengirimkan permintaan ke layanan Dataflow untuk menjalankan template.
- Dataflow membuat pipeline dari template. Pipeline dapat memerlukan waktu hingga lima hingga tujuh menit untuk mulai berjalan.
Menetapkan izin IAM
Tugas Dataflow, termasuk tugas yang dijalankan dari template, menggunakan dua akun layanan IAM:
- Layanan Dataflow menggunakan akun layanan Dataflow untuk memanipulasi resource Google Cloud , seperti membuat VM.
- VM worker Dataflow menggunakan akun layanan worker untuk mengakses file dan resource lain pipeline Anda. Akun layanan ini memerlukan akses ke resource apa pun yang dirujuk oleh tugas pipeline, termasuk sumber dan sink yang digunakan template. Untuk mengetahui informasi selengkapnya, lihat Mengakses Google Cloud resource.
Pastikan kedua akun layanan ini memiliki peran yang sesuai. Untuk mengetahui informasi selengkapnya, lihat Keamanan dan izin Dataflow.
Persyaratan versi Apache Beam SDK
Untuk membuat template Anda sendiri, pastikan versi Apache Beam SDK Anda mendukung pembuatan template.
Java
Untuk membuat template dengan Apache Beam SDK 2.x untuk Java, Anda harus memiliki versi 2.0.0-beta3 atau yang lebih tinggi.
Python
Untuk membuat template dengan Apache Beam SDK 2.x untuk Python, Anda harus memiliki versi 2.0.0 atau yang lebih tinggi.
Untuk menjalankan template dengan Google Cloud CLI, Anda harus memiliki Google Cloud CLI versi 138.0.0 atau yang lebih tinggi.
Memperluas template
Anda dapat membuat template sendiri dengan memperluas template Dataflow
open source. Misalnya, untuk template yang menggunakan durasi periode tetap, data yang tiba di luar periode tersebut dapat dihapus. Untuk menghindari perilaku ini, gunakan kode template sebagai dasar, dan ubah kode untuk memanggil operasi .withAllowedLateness
.