Configurer les paramètres de workflow Dataform

Cette page explique comment modifier le traitement du workflow Dataform SQL pour un dépôt spécifique.

Vous pouvez modifier le fichier de paramètres pour renommer les schémas ou ajouter des paramètres personnalisés variables de compilation dans votre dépôt.

À propos des paramètres de dépôt

Chaque dépôt Dataform contient un workflow unique fichier de paramètres. Le fichier contient l'ID du projet Google Cloud et le schéma dans Dataform publie des éléments dans BigQuery. Dataform utilise les paramètres par défaut que vous pouvez remplacer afin de mieux adapter en modifiant le fichier de paramètres.

Depuis Dataform Core 3.0.0, les paramètres de workflow sont stockés par défaut dans le fichier workflow_settings.yaml. Dans les versions antérieures de Dataform Core, les paramètres de workflow sont stockés dans le fichier dataform.json. Le fichier workflow_settings.yaml Dataform Core 3.0 est rétrocompatible avec dataform.json. Vous pouvez continuer à utiliser dataform.json pour stocker les paramètres de workflow. Nous vous recommandons paramètres de workflow de migration de votre dépôt au format workflow_settings.yaml pour une compatibilité future.

À propos de workflow_settings.yaml

Le fichier workflow_settings.yaml, présenté dans Dataform Core 3.0, stocke les paramètres de workflow Dataform au format YAML ;

L'exemple de code suivant montre un exemple de fichier workflow_settings.yaml:

  defaultProject: my-gcp-project-id
  defaultDataset: dataform
  defaultLocation: australia-southeast2
  defaultAssertionDataset: dataform_assertions

Dans l'exemple de code précédent, les paires clé-valeur sont décrites comme suit:

  • defaultProject: ID de votre projet BigQuery Google Cloud.
  • defaultDataset: ensemble de données BigQuery dans lequel Dataform crée des éléments, appelés dataform par défaut.
  • defaultLocation: région par défaut de votre ensemble de données BigQuery. Pour en savoir plus sur les emplacements des ensembles de données BigQuery, Voir la section Emplacements des ensembles de données À cet emplacement, Dataform traite votre code et le stocke les données exécutées. Cette région de traitement doit correspondre à l'emplacement de vos ensembles de données BigQuery, mais il n'est pas nécessaire dans la région du dépôt Dataform.
  • defaultAssertionDataset: ensemble de données BigQuery dans lequel Dataform crée des vues avec des résultats d'assertion, appelés dataform_assertions par défaut.

Pour en savoir plus sur les propriétés workflow_settings.yaml, consultez Documentation de référence sur les configurations pour les paramètres de workflow dans GitHub.

Vous pouvez accéder aux propriétés définies dans workflow_settings.yaml dans votre Code Dataform en tant que propriétés de dataform.projectConfig .

Les mappages suivants des options workflow_settings.yaml avec le code accessible Les options dataform.projectConfig s'appliquent:

  • defaultProject => defaultDatabase
  • defaultDataset => defaultSchema
  • defaultAssertionDataset => assertionSchema
  • projectSuffix => databaseSuffix
  • datasetSuffix => schemaSuffix
  • namePrefix => tablePrefix

L'exemple de code suivant montre l'objet dataform.projectConfig appelé dans une SELECT dans une vue:

  config { type: "view" }
  SELECT ${when(
    !dataform.projectConfig.tablePrefix,
    "table prefix is set!",
    "table prefix is not set!"
  )}

À propos de dataform.json

Le fichier dataform.json stocke les paramètres de workflow Dataform au format JSON.

L'exemple de code suivant montre un exemple de fichier dataform.json:

  {
    "warehouse": "bigquery",
    "defaultDatabase": "my-gcp-project-id",
    "defaultSchema": "dataform",
    "defaultLocation": "australia-southeast2",
    "assertionSchema": "dataform_assertions"
  }

Dans l'exemple de code précédent, les paires clé-valeur sont décrites comme suit:

  • warehouse: pointeur vers BigQuery, où Dataform crée des assets.
  • defaultDatabase: ID de votre projet BigQuery Google Cloud.
  • defaultSchema: ensemble de données BigQuery dans lequel Dataform crée des composants.
  • defaultLocation: région par défaut de votre ensemble de données BigQuery. Pour en savoir plus sur les emplacements des ensembles de données BigQuery, consultez la page Emplacements des ensembles de données. À cet emplacement, Dataform traite votre code et le stocke les données exécutées. Cette région de traitement doit correspondre à l'emplacement de vos ensembles de données BigQuery, mais il n'est pas nécessaire dans la région du dépôt Dataform.
  • assertionSchema: ensemble de données BigQuery dans lequel Dataform crée des vues avec des résultats d'assertion, appelés dataform_assertions par défaut.

Vous pouvez accéder aux propriétés définies dans dataform.json dans le code de votre projet en tant que Propriétés du dataform.projectConfig .

Avant de commencer

  1. Créez un dépôt.

  2. Créez et initialisez un espace de travail de développement dans votre dépôt.

Rôles requis

Pour obtenir les autorisations dont vous avez besoin pour configurer les paramètres Dataform, demandez à votre administrateur de vous accorder le Rôle IAM Administrateur Dataform (roles/dataform.admin) sur les dépôts. 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.

Configurer les noms de schéma

Pour configurer les noms de schéma, vous devez modifier les champs defaultDataset et defaultAssertionSchema établissements dans le fichier workflow_settings.yaml ou defaultSchema et assertionSchema dans le fichier dataform.json.

Pour configurer le nom d'un schéma, procédez comme suit:

workflow_settings.yaml

  1. Dans le volet Fichiers de votre espace de travail de développement, cliquez sur le fichier workflow_settings.yaml.

  2. Modifiez la valeur de defaultDataset, defaultAssertionSchema ou les deux.

L'exemple de code suivant montre un nom defaultDataset personnalisé défini dans le fichier workflow_settings.yaml:

  ...
  defaultDataset: mytables
  ...

dataform.json

  1. Dans le volet Fichiers de votre espace de travail de développement, cliquez sur le fichier dataform.json.

  2. Modifiez la valeur de defaultSchema, assertionSchema ou les deux.

L'exemple de code suivant montre un nom defaultSchema personnalisé défini dans Fichier dataform.json:

{
  ...
  "defaultSchema": "mytables",
  ...
}

Créer des variables de compilation personnalisées

Les variables de compilation contiennent des valeurs que vous pouvez modifier grâce à la compilation dans une configuration de version ou dans une requête API Dataform.

Après avoir défini une variable de compilation dans workflow_settings.yaml et l'avoir ajoutée à tables sélectionnées, vous pouvez modifier sa valeur dans une configuration de version ou Remplacements de compilation de l'API Dataform pour exécuter des tables de manière conditionnelle.

Pour en savoir plus sur l'exécution de tables de manière conditionnelle en utilisant de compilation, consultez Présentation du cycle de vie du code dans Dataform

Pour créer une variable de compilation que vous pouvez utiliser dans un dépôt, procédez comme suit:

workflow_settings.yaml

  1. Accédez à votre espace de travail de développement Dataform.
  2. Dans le volet Fichiers, sélectionnez le fichier workflow_settings.yaml.
  3. Saisissez l'extrait de code suivant:

    "vars": {
      "YOUR_VARIABLE":"VALUE"
    }
    

    Remplacez les éléments suivants :

    • YOUR_VARIABLE par le nom de la variable.
    • VALUE par la valeur par défaut de la variable de compilation.

L'exemple de code suivant montre l'ensemble de variables de compilation myVariableName à myVariableValue dans le fichier workflow_settings.yaml:

...
vars:
  myVariableName: myVariableValue
...

L'exemple de code suivant montre le fichier workflow_settings.yaml avec le Variable de compilation executionSetting définie sur dev:

defaultProject: default_bigquery_database
defaultLocation: us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev

dataform.json

  1. Accédez à votre espace de travail de développement Dataform.
  2. Dans le volet Fichiers, sélectionnez le fichier dataform.json.
  3. Saisissez l'extrait de code suivant:

    "vars": {
      "YOUR_VARIABLE":"VALUE"
    }
    

    Remplacez les éléments suivants :

    • YOUR_VARIABLE par le nom de la variable.
    • VALUE par la valeur par défaut de la variable de compilation.

L'exemple de code suivant montre l'ensemble de variables de compilation myVariableName à myVariableValue dans le fichier dataform.json:

{
  ...
  "vars": {
    "myVariableName": "myVariableValue"
  },
  ...
}

L'exemple de code suivant montre le fichier dataform.json avec le Variable de compilation executionSetting définie sur dev:

{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
"executionSetting":"dev"
}
}

Ajouter une variable de compilation à une table

Pour ajouter une variable de compilation à un fichier de définition de table SQLX, procédez comme suit:

  1. Accédez à votre espace de travail de développement Dataform.
  2. Dans le volet Fichiers, sélectionnez un fichier de définition de table SQLX.
  3. Dans le fichier, saisissez une clause when au format suivant:

    ${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
    

    Remplacez les éléments suivants :

    • YOUR_VARIABLE par le nom de votre variable ; Exemple : executionSetting.
    • SET_VALUE par une valeur pour la variable ; Exemple : staging.
    • CONDITION par une condition d'exécution de la table.

L'exemple de code suivant montre un fichier SQLX de définition de table avec un when et la variable executionSetting qui exécute 10% des données paramètre d'exécution en préproduction:

  select
    *
  from ${ref("data")}
  ${when(
    dataform.projectConfig.vars.executionSetting === "staging",
    "where mod(farm_fingerprint(id) / 10) = 0",
  )}

L'exemple de code suivant montre un fichier SQLX de définition de vue avec un when et la variable myVariableName:

  config { type: "view" }
  SELECT ${when(
    dataform.projectConfig.vars.myVariableName === "myVariableValue",
    "myVariableName is set to myVariableValue!",
    "myVariableName is not set to myVariableValue!"
  )}

Migrer les paramètres de workflow vers workflow_settings.yaml

Pour vous assurer que votre fichier de paramètres de workflow est compatible avec les futurs Versions du framework de base Dataform : vous devez migrer votre workflow du fichier dataform.json au fichier workflow_settings.yaml.

Le fichier workflow_settings.yaml remplace le fichier dataform.json.

Si Dataform Core est le seul package de dépendances dans votre dépôt, le fichier workflow_settings.yaml remplace également le fichier package.json. Pour savoir comment remplacer package.json par workflow_settings.yaml, consultez Gérer le package principal Dataform

Le tableau suivant montre les correspondances entre les propriétés des paramètres de workflow et dataform.json à workflow_settings.yaml:

Établissement à dataform.json Établissement à workflow_settings.yaml Description
assertionSchema defaultAssertionDataset Obligatoire. Ensemble de données par défaut pour les assertions.
defaultDatabase defaultProject Obligatoire. Nom du projet Google Cloud par défaut.
defaultLocation defaultLocation Obligatoire. Emplacement BigQuery par défaut dans lequel Dataform créera des tables. Pour en savoir plus sur les emplacements BigQuery, consultez la section Emplacements des ensembles de données.
defaultSchema defaultDataset Obligatoire. Ensemble de données par défaut.
databaseSuffix projectSuffix Facultatif. Suffixe à ajouter à toutes les références de projet Google Cloud.
schemaSuffix datasetSuffix Facultatif. Suffixe à ajouter à tous les ensembles de données d'action.
tablePrefix namePrefix Facultatif. Préfixe à ajouter à tous les noms d'actions.
vars vars Facultatif. Variables définies par l'utilisateur mises à la disposition du code du projet lors de la compilation. Objet contenant une liste de paires key: value.
warehouse - Obligatoire dans dataform.json. Doit être défini sur bigquery. Non disponible dans ce pays : workflow_settings.yaml.
- dataformCoreVersion Non disponible dans ce pays : dataform.json. Présenté par défaut dans workflow_settings.yaml pour les nouveaux dépôts. Pour en savoir plus, consultez Gérer le package principal Dataform.

Pour migrer les paramètres de workflow vers workflow_settings.yaml, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Dataform page.

    Accéder à la page Dataform

  2. Sélectionnez un dépôt, puis un espace de travail.

  3. Dans le volet Fichiers, cliquez sur addAdd, puis cliquez sur Créer un fichier.

  4. Dans le champ Ajouter un chemin d'accès au fichier, saisissez workflow_settings.yaml.

  5. Cliquez sur Créer un fichier.

  6. Dans le fichier workflow_settings.yaml, ajoutez les paramètres de votre dataform.json, mappé au format YAML.

  7. Dans le volet Fichiers, cliquez sur le menu Plus à côté de dataform.json. puis cliquez sur Supprimer.

  8. Pour confirmer la suppression de dataform.json, cliquez sur Supprimer.

L'exemple de code suivant montre les paramètres de workflow définis dans Un fichier dataform.json:

{
  "warehouse": "bigquery",
  "defaultDatabase": "dataform-demos",
  "defaultLocation": "US",
  "defaultSchema": "dataform",
  "assertionSchema": "dataform_assertions"
  "vars": {
    "environmentName": "development"
  }
}

L'exemple de code suivant montre le fichier dataform.json précédent. convertie en workflow_settings.yaml:

defaultProject: dataform-demos
defaultLocation: US
defaultDataset: dataform
defaultAssertionDataset: dataform_assertions
vars:
    environmentName: "development"

Étape suivante