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,
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 configurer les paramètres Dataform.
À 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ésdataform
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ésdataform_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 éléments, appelésdataform
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.assertionSchema
: ensemble de données BigQuery dans lequel Dataform crée des vues avec des résultats d'assertion, appelésdataform_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
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
Dans le volet Fichiers de votre espace de travail de développement, cliquez sur le fichier
workflow_settings.yaml
.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
Dans le volet Fichiers de votre espace de travail de développement, cliquez sur le fichier
dataform.json
.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
- Accédez à votre espace de travail de développement Dataform.
- Dans le volet Fichiers, sélectionnez le fichier
workflow_settings.yaml
. 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
- Accédez à votre espace de travail de développement Dataform.
- Dans le volet Fichiers, sélectionnez le fichier
dataform.json
. 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:
- Accédez à votre espace de travail de développement Dataform.
- Dans le volet Fichiers, sélectionnez un fichier de définition de table SQLX.
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.
- YOUR_VARIABLE par le nom de votre variable ;
Exemple :
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!"
)}
Étape suivante
Pour en savoir plus sur les paramètres de projet Dataform, consultez Référence
IProjectConfig
.Pour en savoir plus sur le code de contrôle des versions dans Dataform, consultez Contrôlez les versions de votre code.
Pour savoir comment définir un tableau, consultez Créez une table.