Menjadwalkan 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 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

  1. Di konsol Google Cloud, buka halaman Dataform.

    Buka halaman Dataform

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

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

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