Ce document vous explique comment :
- Définissez une instruction SQL à exécuter avant la création de la table.
- Définissez une instruction SQL à exécuter après la création de la table.
- Désactivez la création de tables.
- Ajoutez des tags d'exécution.
Avant de commencer
Dans la console Google Cloud , accédez à la page Dataform.
Sélectionnez ou créez un dépôt.
Sélectionnez ou créez un espace de travail de développement.
Définissez un fichier SQLX de l'un des types suivants :
Rôles requis
Pour obtenir les autorisations nécessaires pour effectuer les tâches de ce document, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Dataform (roles/dataform.editor
) sur les espaces de travail.
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 avec des rôles personnalisés ou d'autres rôles prédéfinis.
Définir une instruction SQL à exécuter avant la création de la table
Vous pouvez configurer Dataform pour exécuter une ou plusieurs instructions SQL avant de créer une table sélectionnée dans BigQuery. Pour exécuter une instruction SQL avant que Dataform ne crée une table sélectionnée, ajoutez votre instruction au bloc pre_operations
dans le fichier SQLX de définition de la table.
Pour créer une instruction SQL personnalisée exécutée avant que Dataform ne crée une table spécifique, procédez comme suit :
- Accédez à votre espace de travail de développement.
- Dans le volet Fichiers, développez
definitions/
. - Ouvrez un fichier de définition de table SQLX.
- En dehors du bloc
config
, saisissezpre_operations { ... }
. - Dans
pre_operations { ... }
, ajoutez votre instruction SQL. - Facultatif : Pour ajouter plusieurs instructions, séparez-les par
---
. - (Facultatif) Cliquez sur Format.
L'exemple de code suivant montre une instruction pre_operations
qui crée une fonction temporaire pouvant être utilisée dans l'instruction select :
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
Définir une instruction SQL à exécuter après la création de la table
Vous pouvez configurer Dataform pour exécuter une ou plusieurs instructions SQL après avoir créé une table sélectionnée dans BigQuery. Pour exécuter une instruction SQL après que Dataform a créé une table sélectionnée, ajoutez votre instruction au bloc post_operations
dans le fichier SQLX de définition de la table. Vous pouvez ajouter plusieurs instructions SQL au bloc post_operations
.
Pour créer une instruction SQL personnalisée exécutée après la création d'une table spécifique par Dataform, procédez comme suit :
- Accédez à votre espace de travail de développement.
- Dans le volet Fichiers, développez
definitions/
. - Ouvrez un fichier de définition de table SQLX.
- En dehors du bloc
config
, saisissezpost_operations { ... }
. - Dans
post_operations { ... }
, ajoutez votre instruction SQL. - (Facultatif) Cliquez sur Format.
L'exemple de code suivant montre des instructions post_operations
qui accordent aux groupes un accès à la table créée :
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Désactiver la création de tableaux
Pour empêcher Dataform de créer une table sélectionnée dans BigQuery, vous pouvez la désactiver dans son fichier de définition de table SQLX. Dataform conserve une table désactivée dans le graphique des dépendances, mais ne la compile ni ne la crée. Cela peut être utile, par exemple, si une table échoue et que vous ne souhaitez pas que l'ensemble de votre workflow échoue pendant que vous corrigez le problème.
Pour désactiver une table, procédez comme suit :
- Accédez à votre espace de travail de développement.
- Dans le volet Fichiers, développez
definitions/
. - Sélectionnez un fichier de définition de table SQLX.
- Dans le bloc
config
du fichier, saisissezdisabled: true
. - (Facultatif) Cliquez sur Format.
L'exemple de code suivant montre un tableau désactivé :
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
Ajouter des tags d'exécution
Cette section explique comment ajouter des balises aux fichiers SQLX du noyau Dataform pour catégoriser votre workflow.
Pour organiser les composants de votre workflow en collections, vous pouvez ajouter des balises personnalisées aux fichiers SQLX des types suivants :
table
view
incremental
assertion
operations
Lors de l'exécution du workflow, vous ne pouvez exécuter que les fichiers associés à une balise sélectionnée.
Avec Cloud Composer ou Workflows avec Cloud Scheduler, vous pouvez créer une planification qui exécute un workflow Dataform avec une balise sélectionnée à un intervalle spécifique.
Ajouter un tag
Vous pouvez ajouter plusieurs balises à un fichier SQLX.
Pour ajouter une balise à un fichier SQLX, procédez comme suit :
- Accédez à votre espace de travail de développement.
- Dans le volet Fichiers, développez
definitions/
. - Sélectionnez un fichier SQLX.
Dans le bloc
config
, ajoutez une balise au format suivant :tags: ["CUSTOM_TAG"]
Remplacez
CUSTOM_TAG
par votre balise.Facultatif : Pour ajouter plusieurs balises, séparez-les par une virgule (
,
).(Facultatif) Cliquez sur Format.
L'exemple de code suivant montre la vue user_counts
avec les balises daily
et hourly
:
config {
type: "view",
name: "user_counts",
tags: ["daily", "hourly"]
}
Étapes suivantes
- Pour découvrir comment configurer les paramètres Dataform dans
workflow_settings.yaml
, consultez la section Configurer les paramètres de workflow Dataform. - Pour découvrir comment tester les données de table à l'aide d'assertions, consultez la section Tester des tables à l'aide d'assertions.
- Pour savoir comment réutiliser du code avec des inclusions, consultez la section Réutiliser du code dans un seul dépôt avec des inclusions.
- Pour savoir comment déclencher manuellement des exécutions, consultez la section Déclencher l'exécution.
- Pour savoir comment ajouter des tags de stratégie BigQuery dans Dataform, consultez Ajouter des tags de stratégie BigQuery.