Ce document explique comment définir la relation entre les objets de votre Workflow SQL dans Dataform en déclarant des dépendances.
Vous pouvez définir une relation de dépendance entre les objets d'un workflow SQL. Dans une relation de dépendance, l'exécution de l'objet dépendant dépend l'exécution de l'objet de dépendance. Autrement dit, Dataform exécute la dépendance après la dépendance. Vous définissez la relation par déclarer des dépendances dans le fichier de définition SQLX de l'objet dépendant ;
Les déclarations de dépendances constituent une arborescence de dépendances de votre workflow SQL. qui détermine l'ordre dans lequel Dataform exécute vos Objets de workflow SQL.
Vous pouvez définir la relation de dépendance entre les éléments Objets de workflow SQL:
- Déclarations de sources de données
- Déclarations de sources de données BigQuery vous permettant de faire référence à ces éléments sources de données dans les définitions de table Dataform et les opérations SQL. Vous pouvez définir une déclaration de source de données en tant que dépendance, mais pas en tant que dépendance.
- Tables
- Tables que vous créez dans Dataform en fonction des données déclarées sources ou d'autres tables dans votre workflow SQL. Dataform est compatible avec types de tables suivants: table, table incrémentielle, vue et vue matérialisée. Vous pouvez définir une table en tant que dépendance et en tant que dépendance.
- Opérations SQL personnalisées
- Les instructions SQL que Dataform exécute dans BigQuery telles quelles
sans les modifier. Vous pouvez définir une opération SQL personnalisée définie dans un
type: operations
en tant que dépendance et en tant que dépendance. Pour déclarer un l'opération SQL en tant que dépendance dans la fonctionref
, vous devez définir la propriétéhasOutput
surtrue
; dans le fichier de définition SQLX de l'opération SQL personnalisée. - Assertions
- Requêtes de test de qualité des données que vous pouvez utiliser pour tester les données d'une table.
Dataform exécute des assertions à chaque fois qu'il met à jour votre workflow SQL.
il vous alerte en cas d'échec d'une assertion. Vous pouvez définir une assertion
type: assertion
comme dépendance et comme dépendance en déclarant dépendances dans le blocconfig
.
Vous pouvez définir la relation de dépendance de différentes manières:
- Déclarez une dépendance à l'aide de la fonction de base
ref
Dataform pour la référencer dans une instructionSELECT
. - Déclarez une liste de dépendances dans le bloc
config
d'un fichier de définition SQLX.
Avant de commencer
- Créez et initialisez un espace de travail de développement dans votre dépôt.
- Facultatif: Déclarez une source de données.
- Créez au moins deux objets de workflow SQL: Tables assertions, déclarations de sources de données, ou opérations.
Rôles requis
Pour obtenir les autorisations nécessaires pour déclarer des dépendances pour les tables, les assertions et les sources de données
les déclarations et les opérations SQL personnalisées,
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 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.
Déclarez une dépendance en tant qu'argument de la fonction ref
Pour référencer et déclarer automatiquement une dépendance dans une instruction SELECT
, procédez comme suit :
Ajoutez la dépendance en tant qu'argument de la fonction ref
.
ref
est une fonction intégrée de base de Dataform qui vous permet
et dépendent automatiquement de toute table, déclaration de source de données
opération SQL personnalisée avec la propriété hasOutput
définie sur true
dans votre workflow SQL.
Pour en savoir plus sur la fonction ref
, consultez
Documentation de référence sur les méthodes de contexte de base Dataform
Pour en savoir plus sur l'utilisation de la fonction ref
dans une définition de table, consultez
À propos des définitions de tableau
L'exemple de code suivant montre la déclaration de source de données source_data
ajoutée
en tant qu'argument de la fonction ref
dans le code SQLX incremental_table.sqlx
.
d'une table incrémentielle:
// filename is incremental_table.sqlx
config { type: "incremental" }
SELECT * FROM ${ref("source_data")}
Dans l'exemple de code précédent, source_data
est automatiquement déclaré comme
la dépendance de incremental_table
.
L'exemple de code suivant montre l'ajout du fichier SQLX de définition de table some_table
en tant qu'argument de la fonction ref
dans custom_assertion.sqlx
Fichier de définition SQLX d'une assertion:
// filename is custom_assertion.sqlx
config { type: "assertion" }
SELECT
*
FROM
${ref("some_table")}
WHERE
a is null
or b is null
or c is null
Dans l'exemple de code précédent, some_table
est automatiquement déclaré comme
la dépendance de custom_assertion
. Pendant l'exécution, Dataform exécute
some_table
, puis exécute custom_assertion
une fois some_table
créé.
Déclarer des dépendances dans le bloc config
Pour déclarer des dépendances qui ne sont pas référencées dans la définition de l'instruction SQL des éléments dépendants, mais doivent être exécutées avant que la table, l'assertion une opération SQL personnalisée, procédez comme suit:
- Dans le volet Fichiers de votre espace de travail de développement, développez
le répertoire
definitions/
. - Sélectionnez la table, l'assertion ou le fichier SQLX de l'opération SQL personnalisée qui à modifier.
Dans le bloc
config
du fichier, saisissez l'extrait de code suivant:dependencies: [ "DEPENDENCY", ]
Remplacez DEPENDENCY par le nom de fichier de la table, assertion, une déclaration de source de données ou une opération SQL personnalisée que vous souhaitez ajouter en tant que dépendance. Vous pouvez saisir plusieurs noms de fichiers, séparés par une virgule.
(Facultatif) Cliquez sur Format.
L'exemple de code suivant montre la table some_table
et some_assertion
assertion ajoutée en tant que dépendances au bloc config
d'un fichier de définition de table:
config { dependencies: [ "some_table", "some_assertion" ] }
Étape suivante
- Pour savoir comment définir des assertions en tant que dépendances, consultez Tester des tables avec des assertions.
- Pour savoir comment déclarer une source de données, consultez Déclarez une source de données.
- Pour savoir comment définir des opérations SQL personnalisées, consultez Ajoutez des opérations SQL personnalisées.
- Pour savoir comment réutiliser du code dans votre workflow SQL avec des inclusions, consultez Réutiliser des variables et des fonctions avec des inclusions.