Tentang eksekusi alur kerja terjadwal
Anda dapat menyetel frekuensi eksekusi alur kerja SQL Dataform dengan membuat tugas Cloud Scheduler yang memicu alur kerja Alur kerja. Workflows menjalankan layanan dalam alur kerja orkestrasi yang Anda tentukan.
Workflows menjalankan alur kerja Dataform SQL Anda dalam proses dua langkah. Pertama, aplikasi ini mengambil kode repositori Dataform Anda dari penyedia Git Anda dan mengompilasinya menjadi hasil kompilasi. Kemudian, kode ini akan menggunakan hasil kompilasi untuk membuat alur kerja Dataform SQL dan mengeksekusinya pada frekuensi yang Anda tetapkan.
Sebelum memulai
Di konsol Google Cloud, buka halaman Dataform.
Pilih atau buat repositori.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk menjadwalkan eksekusi Dataform dengan Workflows,
minta administrator untuk memberi Anda peran IAM
Editor Dataform (roles/dataform.editor
) di repositori.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat alur kerja orkestrasi terjadwal
Untuk menjalankan eksekusi terjadwal alur kerja Dataform SQL Anda, gunakan Alur kerja untuk membuat alur kerja orkestrasi dan menambahkan tugas Cloud Scheduler sebagai pemicu.
Workflows menggunakan akun layanan untuk memberikan akses alur kerja ke resource Google Cloud. Buat akun layanan dan berikan peran Editor Dataform serta izin minimum yang diperlukan untuk mengelola alur kerja orkestrasi Anda. Untuk mengetahui informasi selengkapnya, lihat Memberikan izin alur kerja untuk mengakses resource Google Cloud.
Buat alur kerja orkestrasi dan gunakan kode sumber YAML berikut sebagai definisi alur kerja Anda:
main: steps: - init: assign: - repository: projects/PROJECT_ID/locations/REPOSITORY_LOCATION/repositories/REPOSITORY_ID - createCompilationResult: call: http.post args: url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/compilationResults"} auth: type: OAuth2 body: gitCommitish: GIT_COMMITISH result: compilationResult - createWorkflowInvocation: call: http.post args: url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/workflowInvocations"} auth: type: OAuth2 body: compilationResult: ${compilationResult.body.name} result: workflowInvocation - complete: return: ${workflowInvocation.body.name}
Ganti kode berikut:
- PROJECT_ID: ID project Google Cloud Anda
- REPOSITORY_LOCATION: lokasi repositori Dataform Anda
- REPOSITORY_ID: nama repositori Dataform Anda
- GIT_COMMITISH: cabang Git tempat Anda ingin menjalankan kode Dataform. Untuk repositori yang baru dibuat,
ganti dengan
main
.
Menjadwalkan alur kerja orkestrasi menggunakan Cloud Scheduler.
Menyesuaikan permintaan hasil kompilasi pembuatan alur kerja Dataform SQL
Anda dapat memperbarui alur kerja orkestrasi yang ada dan menentukan setelan permintaan hasil kompilasi alur kerja Dataform SQL dalam format YAML. Untuk mengetahui informasi selengkapnya tentang setelan,
lihat referensi resource REST projects.locations.repositories.compilationResults
.
Misalnya, untuk menambahkan _dev
schemaSuffix
ke semua tindakan selama kompilasi,
ganti isi langkah createCompilationResult
dengan cuplikan kode berikut:
- createCompilationResult:
call: http.post
args:
url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/compilationResults"}
auth:
type: OAuth2
body:
gitCommitish: GIT_COMMITISH
codeCompilationConfig:
schemaSuffix: dev
Anda juga dapat meneruskan setelan tambahan sebagai argumen runtime dalam permintaan eksekusi alur kerja dan mengakses argumen tersebut menggunakan variabel. Untuk mengetahui informasi selengkapnya, lihat Meneruskan argumen runtime dalam permintaan eksekusi.
Menyesuaikan permintaan pemanggilan alur kerja Dataform SQL
Anda dapat memperbarui alur kerja orkestrasi yang ada dan menentukan setelan permintaan pemanggilan alur kerja Dataform SQL dalam format YAML. Untuk mengetahui informasi selengkapnya tentang setelan permintaan
pemanggilan, lihat referensi
resource REST projects.locations.repositories.workflowInvocations
.
Misalnya, untuk hanya menjalankan tindakan dengan tag hourly
dengan semua dependensi transitif disertakan, ganti isi createWorkflowInvocation
dengan cuplikan kode berikut:
- createWorkflowInvocation:
call: http.post
args:
url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/workflowInvocations"}
auth:
type: OAuth2
body:
compilationResult: ${compilationResult.body.name}
invocationConfig:
includedTags:
- hourly
transitiveDependenciesIncluded: true
Anda juga dapat meneruskan setelan tambahan sebagai argumen runtime dalam permintaan eksekusi alur kerja dan mengakses argumen tersebut menggunakan variabel. Untuk mengetahui informasi selengkapnya, lihat Meneruskan argumen runtime dalam permintaan eksekusi.
Langkah selanjutnya
- Untuk mempelajari lebih lanjut cara mengonfigurasi jadwal cron job di Cloud Scheduler, lihat Mengonfigurasi jadwal cron job.
- Untuk mempelajari harga Workflows lebih lanjut, lihat Harga alur kerja.
- Untuk mempelajari harga Cloud Scheduler lebih lanjut, lihat Harga Penjadwal.
- Untuk mempelajari cara menjadwalkan eksekusi dengan Cloud Composer, lihat Menjadwalkan eksekusi dengan Cloud Composer.