Informazioni sulle esecuzioni pianificate dei workflow
Puoi impostare la frequenza di esecuzione del flusso di lavoro SQL Dataform creando un job Cloud Scheduler che attivi un flusso di lavoro Workflows. Workflows esegue i servizi in un flusso di lavoro di orchestrazione definito da te.
I flussi di lavoro eseguono il flusso di lavoro SQL Dataform in un procedura in due fasi. Innanzitutto, 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 SQL Dataform e lo esegue con la 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 i flussi di lavoro,
chiedi all'amministratore di concederti il ruolo IAM Editor di Dataform (roles/dataform.editor
) nei repository.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creare un flusso di lavoro di orchestrazione pianificato
Per eseguire esecuzioni pianificate del flusso di lavoro SQL Dataform, utilizza Workflows per creare un flusso di lavoro di orchestrazione e aggiungi un job Cloud Scheduler come attivatore.
Workflows utilizza gli account di servizio per concedere ai flussi di lavoro l'accesso alle risorseGoogle Cloud . Crea un account di servizio e assegnagli il ruolo Editor di Dataform, nonché le autorizzazioni minime necessarie per gestire il workflow di orchestrazione. Per ulteriori informazioni, consulta Concedere un'autorizzazione dei flussi di lavoro per l'accesso alle risorse. Google Cloud
Crea un flusso di lavoro di orchestrazione e utilizza 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 Google Cloud progetto
- REPOSITORY_LOCATION: la posizione 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,
sostituire con
main
.
Pianifica il flusso di lavoro di orchestrazione utilizzando Cloud Scheduler.
Personalizzare la richiesta di risultato di compilazione della creazione del flusso di lavoro SQL di Dataform
Puoi aggiornare il flusso di lavoro di orchestrazione esistente
e definire le impostazioni della richiesta di creazione del risultato della compilazione del flusso di lavoro SQL Dataform in formato YAML. Per ulteriori informazioni sulle impostazioni, consulta la documentazione di riferimento della risorsa REST projects.locations.repositories.compilationResults
.
Ad esempio, per aggiungere un _dev
schemaSuffix
a tutte le azioni durante la compilazione,
sostituire 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 questi argomenti utilizzando le variabili. Per ulteriori informazioni, consulta Passare gli argomenti di runtime in una richiesta di esecuzione.
Personalizzare la richiesta di chiamata del flusso di lavoro SQL di Dataform
Puoi aggiornare il flusso di lavoro di orchestrazione esistente
e definire le impostazioni della richiesta di chiamata del flusso di lavoro SQL Dataform
in formato YAML. Per ulteriori informazioni sulle impostazioni della richiesta di chiamata, consulta la guida di riferimento della projects.locations.repositories.workflowInvocations
risorsa REST.
Ad esempio, per eseguire solo azioni con il tag hourly
con tutte le dipendenze transitive incluse, 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 questi argomenti utilizzando le variabili. Per ulteriori informazioni, consulta Passare gli argomenti di runtime in una richiesta di esecuzione.
Passaggi successivi
- Per scoprire di più sulla configurazione delle pianificazioni dei cron job in Cloud Scheduler, consulta Configurare le pianificazioni dei cron job.
- Per scoprire di più sui prezzi di Workflows, consulta la pagina relativa ai prezzi di Workflows.
- Per scoprire di più sui prezzi di Cloud Scheduler, consulta Prezzi di Scheduler.
- Per scoprire come pianificare le esecuzioni con Cloud Composer, consulta Pianificare le esecuzioni con Cloud Composer.