À 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.
Les workflows exécutent 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 en résultat de compilation. Il utilise ensuite le résultat de la compilation pour créer un workflow SQL Dataform et l'exécute à la fréquence que vous définissez.
Avant de commencer
Dans la console Google Cloud, accédez à la page Dataform page.
Sélectionnez ou créez un dépôt.
Rôles requis
Pour obtenir les autorisations nécessaires pour planifier des exécutions Dataform avec des workflows, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Dataform (roles/dataform.editor
) sur les dépôts.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
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 comme déclencheur.
Workflows utilise des comptes de service pour accorder aux workflows un accès aux ressourcesGoogle Cloud . Créez un compte de service et attribuez-lui le rôle Éditeur Dataform, ainsi que les autorisations minimales requises pour gérer votre workflow d'orchestration. Pour en savoir plus, consultez la section Accorder à un workflow l'autorisation d'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 Google Cloud projet
- 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 SQL Dataform
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 SQL Dataform 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'environnement d'exécution dans une requête d'exécution de workflow et y accéder à l'aide de variables. Pour en savoir plus, consultez la section Transmettre des arguments d'environnement d'exécution dans une requête d'exécution.
Personnaliser la requête d'appel du workflow SQL Dataform
Vous pouvez mettre à jour le workflow d'orchestration existant et définir les paramètres de la requête d'appel du workflow SQL Dataform au format YAML. Pour en savoir plus sur les paramètres de la 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 des actions avec la balise hourly
avec toutes les dépendances transitives incluses, 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'environnement d'exécution dans une requête d'exécution de workflow et y accéder à l'aide de variables. Pour en savoir plus, consultez la section Transmettre des arguments d'environnement d'exécution dans une requête d'exécution.
Étape suivante
- Pour en savoir plus sur la configuration des planifications de tâches Cron dans Cloud Scheduler, consultez la section Configurer des planifications de tâches 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 Scheduler.
- Pour découvrir comment planifier des exécutions avec Cloud Composer, consultez Planifier des exécutions avec Cloud Composer.