Template Dataflow memungkinkan Anda memaketkan pipeline Dataflow untuk deployment. Siapa saja 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 standar untuk skenario umum.
Manfaat
Template memiliki beberapa keunggulan dibandingkan langsung men-deploy pipeline ke Dataflow:
- Template memisahkan desain pipeline dari deployment. Misalnya, developer dapat membuat template, dan data scientist 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 panggilan Google Cloud Console, Google Cloud CLI, atau 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 dalam 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 informasi selengkapnya tentang template yang tersedia, lihat Template yang disediakan Google.
Bandingkan template Flex dan template klasik
Dataflow mendukung dua jenis template: template Flex, yang merupakan template lebih baru, dan template klasik. Jika Anda membuat template Dataflow baru, sebaiknya buat template 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 dari 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 Flex 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 pra-pemrosesan pada virtual machine (VM) selama konstruksi pipeline. Misalnya, bagian ini mungkin 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 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 menempatkan template ke Cloud Storage.
- Pengguna lain mengirimkan permintaan ke layanan Dataflow untuk menjalankan template.
- Dataflow membuat pipeline dari template. Pipeline memerlukan waktu 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 semua resource yang dirujuk tugas pipeline, termasuk sumber dan sink yang digunakan template. Untuk mengetahui informasi selengkapnya, lihat Mengakses resource Google Cloud.
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 baru.
Memperluas template
Anda dapat membuat template Anda sendiri dengan memperluas template Dataflow open source. Misalnya, untuk template yang menggunakan durasi jendela tetap, data
yang masuk di luar jendela mungkin akan dihapus. Untuk menghindari perilaku ini, gunakan kode template sebagai dasar, lalu ubah kode untuk memanggil operasi .withAllowedLateness
.