Ce document explique comment configurer des paramètres de table supplémentaires dans un fichier de définition de table. Le cœur Dataform vous permet de définir pre_operations
et post_operations
pour exécuter une instruction SQL avant ou après la création de la table. Vous pouvez également ignorer les paramètres de la table, tels que database
ou schema
, et désactiver sa création.
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.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer des paramètres de table supplémentaires, demandez à votre administrateur de vous attribuer le rôle IAM Éditeur de formulaire de données (roles/dataform.editor
) sur les espaces de travail.
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.
Remplacer les paramètres du tableau
Vous pouvez ignorer le schéma, la base de données et le nom d'une table sélectionnée.
Par défaut, une table suit la configuration du schéma et de la base de données que vous avez définie dans dataform.json
. Le nom d'une table est identique à celui du fichier SQLX de définition de table.
Pour ignorer le schéma et le nom d'une table sélectionnée, 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.
Dans le bloc
config
, saisissez l'extrait de code suivant:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
Remplacez
OVERRIDDEN_SCHEMA
par l'ensemble de données BigQuery dans lequel vous souhaitez créer la table.Remplacez
OVERRIDDEN_DATABASE
par l'ID du projet BigQuery dans lequel vous souhaitez créer la table.Remplacez
OVERRIDDEN_NAME
par le nom de la table, différent du nom du fichier de définition de table SQLX.
Référencer une table dont le nom a été ignoré
- Pour référencer une table avec un nom de table ignoré, saisissez le nom de la table remplacée dans
name: ""
dans la fonctionref
.
L'exemple de code suivant fait référence à une table dont le nom est remplacé par overridden_name
:
SELECT * FROM ${ref("overridden_name")}
Définir une instruction SQL à exécuter avant la création de la table
Vous pouvez configurer Dataform pour qu'il exécute 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 crée une table sélectionnée, ajoutez votre instruction au bloc pre_operations
dans le fichier SQLX de définition de table.
Pour créer une instruction SQL personnalisée exécutée avant que Dataform 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
---
.
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 qu'il exécute 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 table. Vous pouvez ajouter plusieurs instructions SQL au bloc post_operations
.
Pour créer une instruction SQL personnalisée exécutée après que Dataform a créé 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
, saisissezpost_operations { ... }
.Dans
post_operations { ... }
, ajoutez votre instruction SQL.
L'exemple de code suivant montre les instructions post_operations
qui accordent aux groupes l'accès à la table créée:
post_operations {
GRANT SELECT ON ${self()} TO GROUP "allusers@example.com";
GRANT SELECT ON ${self()} TO GROUP "otherusers@example.com";
}
Désactiver la création de tables
Pour empêcher Dataform de créer une table sélectionnée dans BigQuery, vous pouvez désactiver la table dans son fichier de définition de table SQLX. Dataform conserve une table désactivée dans le graphique de dépendances, mais ne la compile pas et ne la crée pas. 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
.
L'exemple de code suivant présente une table désactivée:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
Étapes suivantes
Pour savoir comment configurer les paramètres Dataform dans
dataform.json
, consultez Configurer les paramètres Dataform.Pour savoir comment valider les données d'une table avec des assertions, consultez Valider des tables avec des assertions.
Pour savoir comment réutiliser le code avec des inclusions, consultez Réutiliser des variables et des fonctions avec des inclusions.
Pour savoir comment déclencher manuellement une exécution, consultez la section Déclencher l'exécution.