À propos des exécutions de workflow planifiées
Vous pouvez définir la fréquence d'exécution de votre workflow SQL Dataform en créant une tâche Cloud Scheduler qui déclenche un workflow Workflows. Workflows exécute les services dans un workflow d'orchestration que vous définissez.
Workflows exécute votre workflow SQL Dataform en deux étapes. Tout d'abord, il extrait le code de votre dépôt Dataform de votre fournisseur Git et le compile dans un résultat de compilation. Ensuite, il utilise le résultat de la compilation pour créer un workflow SQL Dataform et l'exécute à la fréquence que vous avez définie.
Avant de commencer
Dans la console Google Cloud, accédez à la page Dataform.
Sélectionnez ou créez un dépôt.
Rôles requis
Pour obtenir les autorisations dont vous avez besoin pour planifier des exécutions Dataform avec Workflows, demandez à votre administrateur de vous attribuer le rôle IAM Éditeur de données de données (roles/dataform.editor
) sur les dépôts.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Créer un workflow d'orchestration planifié
Pour exécuter des exécutions planifiées de votre workflow SQL Dataform, utilisez Workflows pour créer un workflow d'orchestration et ajouter une tâche Cloud Scheduler en tant que déclencheur.
Workflows utilise des comptes de service pour permettre aux workflows d'accéder aux ressources Google Cloud. Créez un compte de service et accordez-lui le rôle Éditeur Dataform, ainsi que les autorisations minimales requises pour gérer votre workflow d'orchestration. Pour en savoir plus, consultez Autoriser un workflow à accéder aux ressources Google Cloud.
Créez un workflow d'orchestration et utilisez le code source YAML suivant comme définition de workflow:
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}
Remplacez les éléments suivants :
- PROJECT_ID: ID de votre projet Google Cloud
- REPOSITORY_LOCATION: emplacement de votre dépôt Dataform
- REPOSITORY_ID: nom de votre dépôt Dataform
- GIT_COMMITISH: branche Git à partir de laquelle vous souhaitez exécuter le code Dataform. Pour un dépôt nouvellement créé, remplacez-le par
main
.
Planifiez le workflow d'orchestration à l'aide de Cloud Scheduler.
Personnaliser la requête de création de résultat de compilation du workflow Dataform SQL
Vous pouvez mettre à jour le workflow d'orchestration existant et définir les paramètres de requête de création de résultats de compilation du workflow Dataform SQL au format YAML. Pour en savoir plus sur les paramètres, consultez la documentation de référence sur la ressource REST projects.locations.repositories.compilationResults
.
Par exemple, pour ajouter un schemaSuffix
_dev
à toutes les actions lors de la compilation, remplacez le corps de l'étape createCompilationResult
par l'extrait de code suivant:
- createCompilationResult:
call: http.post
args:
url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/compilationResults"}
auth:
type: OAuth2
body:
gitCommitish: GIT_COMMITISH
codeCompilationConfig:
schemaSuffix: dev
Vous pouvez également transmettre des paramètres supplémentaires en tant qu'arguments d'exécution dans une requête d'exécution de workflows et accéder à ces arguments à l'aide de variables. Pour en savoir plus, consultez la section Transmettre des arguments d'exécution dans une requête d'exécution.
Personnaliser la demande d'appel du workflow SQL Dataform
Vous pouvez mettre à jour le workflow d'orchestration existant et définir les paramètres de requête d'appel du workflow SQL Dataform au format YAML. Pour en savoir plus sur les paramètres de requête d'appel, consultez la documentation de référence sur la ressource REST projects.locations.repositories.workflowInvocations
.
Par exemple, pour n'exécuter que les actions comportant la balise hourly
en incluant toutes les dépendances transitives, remplacez le corps createWorkflowInvocation
par l'extrait de code suivant:
- 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
Vous pouvez également transmettre des paramètres supplémentaires en tant qu'arguments d'exécution dans une requête d'exécution de workflows et accéder à ces arguments à l'aide de variables. Pour en savoir plus, consultez la section Transmettre des arguments d'exécution dans une requête d'exécution.
Étapes suivantes
- Pour en savoir plus sur la configuration des planifications de job Cron dans Cloud Scheduler, consultez la section Configurer des job Cron Cron.
- Pour en savoir plus sur les tarifs de Workflows, consultez la page Tarifs de Workflows.
- Pour en savoir plus sur les tarifs de Cloud Scheduler, consultez la section Tarifs de programmeur.
- Pour savoir comment planifier des exécutions avec Cloud Composer et pour consulter la page Planifier des exécutions avec Cloud Composer,