Informazioni sulle esecuzioni pianificate dei flussi di lavoro
Puoi impostare la frequenza delle esecuzioni del flusso di lavoro SQL di Dataform creando un job Cloud Scheduler che attivi un flusso di lavoro Workflows. Workflows esegue servizi in un flusso di lavoro di orchestrazione da te definito.
Workflows esegue il flusso di lavoro SQL di Dataform in un processo in due passaggi. Per prima cosa, estrae il codice del repository Dataform dal provider Git e lo compila in un risultato di compilazione. Quindi, utilizza il risultato della compilazione per creare un flusso di lavoro Dataform SQL e lo esegue alla frequenza impostata.
Prima di iniziare
Nella console Google Cloud, vai alla pagina Dataform.
Seleziona o crea un repository.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per pianificare le esecuzioni di Dataform con Workflows,
chiedi all'amministratore di concederti il ruolo IAM
Editor Dataform (roles/dataform.editor
) per i repository.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea un flusso di lavoro di orchestrazione pianificato
Per eseguire esecuzioni pianificate del flusso di lavoro Dataform SQL, utilizza Workflows per creare un flusso di lavoro di orchestrazione e aggiungere un job Cloud Scheduler come trigger.
Workflows utilizza gli account di servizio per concedere ai flussi di lavoro l'accesso alle risorse Google Cloud. Crea un account di servizio e concedigli il ruolo Editor Dataform, nonché le autorizzazioni minime richieste per gestire il flusso di lavoro di orchestrazione. Per ulteriori informazioni, consulta Concedere l'autorizzazione dei flussi di lavoro per l'accesso alle risorse Google Cloud.
Crea un flusso di lavoro di orchestrazione e usa il seguente codice sorgente YAML come definizione del flusso di lavoro:
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}
Sostituisci quanto segue:
- PROJECT_ID: l'ID del progetto Google Cloud
- REPOSITORY_LOCATION: la località del repository Dataform
- REPOSITORY_ID: il nome del tuo repository Dataform
- GIT_COMMITISH: il ramo Git da cui vuoi eseguire
il codice Dataform. Per un repository appena creato, sostituiscilo con
main
.
Pianifica il flusso di lavoro di orchestrazione utilizzando Cloud Scheduler.
Personalizza la richiesta di risultato per la creazione di una compilazione del flusso di lavoro SQL di Dataform
Puoi aggiornare il flusso di lavoro di orchestrazione esistente e definire il flusso di lavoro Dataform SQL per la creazione delle impostazioni delle richieste dei risultati di compilazione in formato YAML. Per ulteriori informazioni sulle impostazioni, consulta il riferimento alla risorsa REST projects.locations.repositories.compilationResults
.
Ad esempio, per aggiungere un schemaSuffix
_dev
a tutte le azioni durante la compilazione, sostituisci il corpo del passaggio createCompilationResult
con il seguente snippet di codice:
- createCompilationResult:
call: http.post
args:
url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/compilationResults"}
auth:
type: OAuth2
body:
gitCommitish: GIT_COMMITISH
codeCompilationConfig:
schemaSuffix: dev
Puoi anche passare impostazioni aggiuntive come argomenti di runtime in una richiesta di esecuzione di Workflows e accedere a tali argomenti utilizzando le variabili. Per maggiori informazioni, consulta Trasmettere argomenti di runtime in una richiesta di esecuzione.
Personalizza la richiesta di chiamata del flusso di lavoro SQL di Dataform
Puoi aggiornare il flusso di lavoro di orchestrazione esistente e definire le impostazioni delle richieste di chiamata del flusso di lavoro SQL di Dataform nel formato YAML. Per ulteriori informazioni sulle impostazioni della richiesta di chiamata, consulta il riferimento della risorsa REST projects.locations.repositories.workflowInvocations
.
Ad esempio, per eseguire azioni solo con il tag hourly
in cui sono incluse tutte le dipendenze transitive, sostituisci il corpo createWorkflowInvocation
con il seguente snippet di codice:
- 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
Puoi anche passare impostazioni aggiuntive come argomenti di runtime in una richiesta di esecuzione di Workflows e accedere a tali argomenti utilizzando le variabili. Per maggiori informazioni, consulta Trasmettere argomenti di runtime in una richiesta di esecuzione.
Passaggi successivi
- Per saperne di più sulla configurazione delle pianificazioni dei cron job in Cloud Scheduler, vedi Configurare le pianificazioni dei cron job.
- Per ulteriori informazioni sui prezzi di Workflows, vedi Prezzi di Workflows.
- Per saperne di più sui prezzi di Cloud Scheduler, consulta Prezzi dello scheduler.
- Per scoprire come pianificare le esecuzioni con Cloud Composer e consultare Pianificare le esecuzioni con Cloud Composer.