Jadwalkan eksekusi dengan Workflows dan Cloud Scheduler

Dokumen ini menunjukkan cara menjalankan eksekusi terjadwal alur kerja SQL Dataform menggunakan Workflows dan Cloud Scheduler.

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

  1. Di konsol Google Cloud, buka halaman Dataform.

    Buka halaman Dataform

  2. 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.

  1. 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.

  2. 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.
  3. 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