Tentang eksekusi alur kerja terjadwal
Anda dapat menetapkan frekuensi eksekusi alur kerja Dataform SQL dengan membuat tugas Cloud Scheduler yang memicu alur kerja Alur Kerja. Alur kerja mengeksekusi layanan dalam alur kerja orkestrasi yang Anda tentukan.
Alur kerja menjalankan alur kerja SQL Dataform Anda dalam proses dua langkah. Pertama, alat ini mengambil kode repositori Dataform dari penyedia Git dan mengompilasikannya menjadi hasil kompilasi. Kemudian, alat ini menggunakan hasil kompilasi untuk membuat alur kerja SQL Dataform dan menjalankannya 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 guna menjadwalkan eksekusi Dataform dengan Alur Kerja,
minta administrator untuk memberi Anda
peran IAM Dataform Editor (roles/dataform.editor
) di repositori.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
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, gunakan Alur Kerja untuk membuat alur kerja orkestrasi dan tambahkan tugas Cloud Scheduler sebagai pemicu.
Alur kerja menggunakan akun layanan untuk memberi alur kerja akses ke resource Google Cloud. Buat akun layanan dan berikan peran Dataform Editor serta izin minimum yang diperlukan untuk mengelola alur kerja orkestrasi Anda. Untuk 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
.
Jadwalkan alur kerja orkestrasi menggunakan Cloud Scheduler.
Menyesuaikan permintaan hasil kompilasi pembuatan alur kerja SQL Dataform
Anda dapat memperbarui alur kerja orkestrasi yang ada
dan menentukan setelan permintaan hasil kompilasi pembuatan alur kerja SQL Dataform 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 informasi selengkapnya, lihat Teruskan 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 SQL Dataform
dalam format YAML. Untuk mengetahui informasi selengkapnya tentang setelan permintaan
pemanggilan, lihat
referensi resource REST projects.locations.repositories.workflowInvocations
.
Misalnya, untuk hanya mengeksekusi tindakan dengan tag hourly
dengan semua dependensi
transitif yang 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 informasi selengkapnya, lihat Teruskan argumen runtime dalam permintaan eksekusi.
Langkah selanjutnya
- Untuk mempelajari lebih lanjut cara mengonfigurasi jadwal tugas cron di Cloud Scheduler, lihat Mengonfigurasi jadwal tugas cron.
- Untuk mempelajari harga Workflows lebih lanjut, lihat Harga Workflows.
- Untuk mempelajari harga Cloud Scheduler lebih lanjut, lihat Harga penjadwal.
- Untuk mempelajari cara menjadwalkan eksekusi dengan Cloud Composer, lihat Menjadwalkan eksekusi dengan Cloud Composer.