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 décrites dans ce document, demandez à votre administrateur de vous accorder les rôles IAM suivants :
- Éditeur Dataform (
roles/dataform.editor) sur l'espace de travail -
Pour synchroniser les métadonnées avec Knowledge Catalog :
Éditeur de catalogue Dataplex (
roles/dataplex.catalogEditor) sur le projet ou le groupe d'entrées@bigquery
Pour en savoir plus sur l'attribution de rôles, consultez 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 table.
Pour créer une instruction SQL personnalisée qui s'exécute avant que Dataform ne crée une table spécifique :
- 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 qu'il exécute une ou plusieurs instructions SQL après la création d'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 qui s'exécute après la création d'une table spécifique par Dataform :
- 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 les instructions post_operations qui accordent aux groupes l'accès à la table créée :
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Enrichissement automatique des métadonnées
Dataform permet d'enrichir automatiquement les métadonnées des tables et des vues BigQuery créées avec des workflows SQLX. Lorsqu'une action de table se termine correctement, Dataform tente d'écrire les métadonnées définies dans l'entrée Knowledge Catalog correspondante. Ce processus est dissocié de l'exécution SQL de plusieurs façons :
- Latence : la synchronisation est asynchrone, ce qui signifie que vos jobs BigQuery n'attendent pas la fin de la mise à jour de Knowledge Catalog.
- Fiabilité : si la synchronisation échoue (par exemple, en raison de limites de fréquence de l'API), Dataform relance automatiquement la mise à jour. L'échec d'une mise à jour des métadonnées n'entraîne pas l'échec de votre action ou workflow Dataform.
L'exemple de code suivant montre comment définir des métadonnées pour Knowledge Catalog dans le bloc de configuration d'un fichier SQLX :
config {
type: "table",
metadata: {
overview: "This table provides standardized trip data.",
extraProperties: {
generic: {
system: "BigQuery",
type: "table"
}
}
}
}
Pour vérifier l'état d'une mise à jour des métadonnées, suivez les instructions de la section Inspecter les journaux d'exécution de l'espace de travail.
Pour afficher les métadonnées enrichies, vous pouvez rechercher vos tables et vues BigQuery dans Knowledge Catalog. Pour en savoir plus, consultez Rechercher des ressources.
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 résolvez le problème.
Pour désactiver un tableau, 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
configdu 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 tags aux fichiers SQLX Dataform Core pour catégoriser votre workflow.
Pour organiser les composants de votre workflow dans des collections, vous pouvez ajouter des tags personnalisés aux fichiers SQLX des types suivants :
tableviewincrementalassertionoperations
Lors de l'exécution d'un workflow, vous pouvez exécuter uniquement les fichiers associés à un tag sélectionné.
Avec Managed Service for Apache Airflow ou Workflows associé à Cloud Scheduler, vous pouvez créer une planification qui exécute un workflow Dataform avec un tag sélectionné à un intervalle spécifique.
Ajouter un tag
Vous pouvez ajouter plusieurs tags à un fichier SQLX.
Pour ajouter un tag à 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 un tag au format suivant :tags: ["CUSTOM_TAG"]Remplacez
CUSTOM_TAGpar votre tag.Facultatif : Pour ajouter plusieurs tags, 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 savoir comment configurer les paramètres Dataform dans
workflow_settings.yaml, consultez Configurer les paramètres de workflow Dataform. - Pour savoir comment tester les données d'une table avec des assertions, consultez Tester la qualité des données.
- Pour savoir comment réutiliser du code avec des inclusions, consultez Réutiliser du code dans un même dépôt avec des inclusions.
- Pour savoir comment déclencher manuellement des exécutions, consultez Déclencher manuellement des exécutions.
- Pour savoir comment ajouter des tags avec stratégie BigQuery dans Dataform, consultez Contrôler l'accès aux colonnes.