Dengan template Dataflow, Anda dapat memaketkan pipeline Dataflow untuk deployment. Siapa pun yang memiliki izin yang benar kemudian dapat menggunakan template untuk men-deploy pipeline yang dipaketkan. Anda dapat membuat template Dataflow kustom Anda sendiri, dan Google menyediakan template bawaan untuk skenario umum.
Manfaat
Template memiliki beberapa keunggulan dibandingkan men-deploy pipeline 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.
- 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 siap pakai 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 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, mengambil image Docker, dan menjalankan pipeline. Grafik eksekusi dibuat secara dinamis berdasarkan parameter runtime yang disediakan oleh
pengguna. Untuk menggunakan API guna meluncurkan tugas yang menggunakan template Flex, gunakan
metode projects.locations.flexTemplates.launch
.
Template klasik berisi serialisasi JSON grafik tugas Dataflow. Kode
untuk pipeline harus menggabungkan parameter runtime apa pun di antarmuka
ValueProvider
. Antarmuka ini memungkinkan pengguna menentukan parameter value saat mereka men-deploy template. Untuk menggunakan API agar berfungsi 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 mungkin memilih konektor I/O yang berbeda berdasarkan parameter input.
- Template Flex dapat melakukan prapemrosesan pada virtual machine (VM) selama pembuatan pipeline. Misalnya, kode ini dapat memvalidasi nilai parameter input.
Alur kerja template
Penggunaan template Dataflow melibatkan langkah-langkah tingkat tinggi berikut:
- Developer menyiapkan lingkungan pengembangan dan mengembangkan pipeline mereka. Lingkungan ini menyertakan 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 pekerja Dataflow menggunakan akun layanan pekerja untuk mengakses file pipeline dan resource lainnya. Akun layanan ini memerlukan akses ke resource apa pun yang dirujuk oleh tugas pipeline, termasuk sumber dan sink yang digunakan template. Untuk informasi selengkapnya, lihat Mengakses resource Google Cloud.
Pastikan kedua akun layanan ini memiliki peran yang sesuai. Untuk 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
.