Déclarer des dépendances

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 fonction ref, vous devez définir la propriété hasOutput sur true ; 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 bloc config.

Vous pouvez définir la relation de dépendance de différentes manières:

Avant de commencer

  1. Créez et initialisez un espace de travail de développement dans votre dépôt.
  2. Facultatif: Déclarez une source de données.
  3. 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 mais doivent être exécutées avant que la table, l'assertion une opération SQL personnalisée, procédez comme suit:

  1. Dans le volet Fichiers de votre espace de travail de développement, développez le répertoire definitions/.
  2. Sélectionnez la table, l'assertion ou le fichier SQLX de l'opération SQL personnalisée qui à modifier.
  3. 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.

  4. (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