Ce document explique comment créer et exécuter un résultat de compilation avec les remplacements de compilation à l'aide de l'API Dataform.
À propos des remplacements de compilation de l'API Dataform
Pour exécuter votre workflow SQL, Dataform compile votre code en SQL pour : créez une compilation résultat. Puis, lors d'un workflow appel, Dataform exécute le résultat de la compilation dans BigQuery.
Par défaut, Dataform utilise les paramètres du fichier de paramètres de workflow pour créer le résultat de la compilation. Isoler les données exécutées à différentes étapes de votre cycle de vie de développement, vous pouvez remplacer les paramètres par défaut les remplacements de compilation.
En transmettant les requêtes API Dataform au terminal, vous pouvez créer et exécuter un un seul résultat de compilation avec remplacements de compilation. Vous pouvez créer un résultat de la compilation d'un espace de travail ou d'un commit Git sélectionné.
Pour créer un résultat de compilation avec des remplacements de compilation, vous devez générer le
API Dataform
compilationResults.create
requête. Dans la requête, vous devez spécifier une source, un
Workspace ou un commitish Git, pour que Dataform puisse compiler dans
résultat de la compilation. Dans
CodeCompilationConfig
de la requête compilationResults.create
, vous pouvez configurer la compilation
et les forçages.
Vous pouvez ensuite exécuter le résultat de la compilation créé dans une
API Dataform
workflowInvocations.create
requête.
Vous pouvez configurer les remplacements de compilation suivants à l'aide de l'API Dataform:
Google Cloud
projet
:
Projet Google Cloud dans lequel Dataform exécute le
Résultat de la compilation, défini dans workflow_settings.yaml
en tant que defaultProject
ou dans dataform.json
en tant que defaultDatabase
.
- Préfixe de table
- Préfixe personnalisé ajouté à tous les noms de tables dans le résultat de la compilation.
- Suffixe de schéma
- Suffixe personnalisé ajouté au schéma des tables
défini dans
defaultDataset
dansworkflow_settings.yaml
,defaultSchema
dansdataform.json
, ou dans leschema
dans le blocconfig
d'une table.
Valeur d'une compilation variable : Valeur d'une variable de compilation à utiliser dans le résultat de la compilation. Toi pouvez utiliser des variables de compilation pour exécuter des tables de manière conditionnelle.
Pour remplacer les remplacements de compilation de l'API Dataform, vous ne pouvez utiliser Pour un résultat de compilation, vous pouvez configurer des remplacements de compilation d'espace de travail dans la console Google Cloud.
Pour découvrir d'autres façons de configurer les remplacements de compilation dans Dataform, consultez Présentation du code cycle de vie.
Avant de commencer
Dans la console Google Cloud, accédez à la page Dataform page.
Sélectionnez ou créez un dépôt.
Sélectionnez ou créez un espace de travail de développement.
Définir une source des résultats de la compilation
Pour générer l'API Dataform :
compilationResults.create
vous devez spécifier une source pour le résultat de la compilation.
Vous pouvez définir un espace de travail Dataform ou une branche Git, un tag Git ou
valider SHA en tant que source dans
compilationResults.create
requête.
Définir un espace de travail comme source des résultats de compilation
- Dans
compilationResults.create
requête, remplissez la propriétéworkspace
avec le chemin d'accès Espace de travail Dataform au format suivant:
{
"workspace": "projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY_NAME/workspaces/WORKSPACE_NAME"
}
Remplacez les éléments suivants :
- PROJECT_NAME par le nom de votre projet Google Cloud ;
- LOCATION par l'emplacement de votre dépôt Dataform ; dans les paramètres du workflow.
- REPOSITORY_NAME par le nom de votre Dataform ; un dépôt de clés.
- WORKSPACE_NAME par le nom de votre espace de travail Dataform.
L'exemple de code suivant montre la propriété workspace
dans
Requête compilationResults.create
définie sur un espace de travail appelé "sales-test"
:
{
"workspace": "projects/analytics/locations/europe-west4/repositories/sales/workspaces/sales-test"
}
Définir un commitish Git en tant que source des résultats de la compilation
Dans
compilationResults.create
, indiquez la branche Git sélectionnée dans la propriétégitCommitish
. ou un commit SHA au format suivant:{ "gitCommitish": "GIT_COMMITISH" }
Remplacez GIT_COMMITISH par la branche Git, le tag Git ou un fichier Git sélectionné valider SHA pour le résultat de la compilation.
L'exemple de code suivant montre la propriété gitCommitish
dans
Requête compilationResults.create
définie sur "staging"
:
{
"gitCommitish": "staging"
}
Remplacer le projet Google Cloud par défaut
Pour créer des tables de préproduction ou de production dans un projet Google Cloud distinct de
le projet utilisé pour le développement, vous pouvez transmettre un autre projet Google Cloud
ID dans le champ
CodeCompilationConfig
dans l'API Dataform
compilationResults.create
requête.
Transmettre un ID de projet par défaut distinct dans la requête compilationResults.create
remplace l'ID de projet Google Cloud par défaut configuré dans le
fichier des paramètres de workflow,
mais ne remplace pas les ID de projet Google Cloud
configurées dans des tables individuelles.
Pour remplacer l'ID de projet Google Cloud par défaut, définissez
defaultDatabase
à l'ID du projet Google Cloud sélectionnéCodeCompilationConfig
au format suivant:{ "codeCompilationConfig": { "defaultDatabase": "PROJECT_NAME" } }
Remplacez PROJECT_NAME par l'ID du projet Google Cloud souhaité. à définir pour le résultat de la compilation.
Ajouter un préfixe de table
Pour identifier rapidement les tables à partir du résultat de la compilation, vous pouvez ajouter un préfixe
tous les noms de table dans le résultat de la compilation en transmettant le préfixe de table dans
CodeCompilationConfig
dans l'API Dataform
compilationResults.create
requête.
- Pour ajouter un préfixe de table, définissez la propriété
tablePrefix
dansCodeCompilationConfig
au format suivant:
{
"codeCompilationConfig": {
"tablePrefix": "PREFIX",
}
}
Remplacez PREFIX par le suffixe que vous souhaitez ajouter, par exemple :
_staging
Par exemple, si votre defaultDataset
dans workflow_settings.yaml
est
défini sur dataform
, Dataform créera des tables dans le
dataform_staging
.
Ajouter un suffixe de schéma
Pour séparer les données de développement, de préproduction et de production, vous pouvez ajouter un suffixe
aux schémas dans un résultat de compilation en transmettant le suffixe de schéma dans
CodeCompilationConfig
dans l'API Dataform
compilationResults.create
requête.
- Pour ajouter un suffixe de schéma, définissez la propriété
schemaSuffix
dansCodeCompilationConfig
au format suivant:
{
"codeCompilationConfig": {
"schemaSuffix": "SUFFIX",
}
}
Remplacez SUFFIX par le suffixe que vous souhaitez ajouter, par exemple :
_staging
Par exemple, si votre defaultDataset
dans workflow_settings.yaml
est
défini sur dataform
, Dataform créera des tables dans le
dataform_staging
.
Remarque:Le CodeCompilationConfig
schemaSuffix
remplace les schémas configurés dans le bloc config
de
des fichiers individuels.
Exécuter les fichiers sélectionnés de manière conditionnelle avec des variables de compilation
Pour exécuter une table sélectionnée uniquement dans un paramètre d'exécution spécifique, vous pouvez
Créer une variable de compilation
pour le paramètre d'exécution, puis transmettez sa valeur au
CodeCompilationConfig
dans l'API Dataform
compilationResults.create
requête.
Pour exécuter une table de manière conditionnelle dans un paramètre d'exécution spécifique en utilisant API Dataform, procédez comme suit:
- Créer une variable de compilation et l'ajouter à la sélection de données.
Définissez la paire clé-valeur YOUR_VARIABLE et VALUE dans la Bloc
codeCompilationConfig
d'un Requête de compilation de l'API Dataform dans le le format suivant:{ "codeCompilationConfig": { "vars": { "YOUR_VARIABLE": "VALUE" } } }
Remplacez YOUR_VARIABLE par le nom de votre variable (par exemple,
executionSetting
Remplacez VALUE par la valeur de la variable pour cette compilation. résultat qui remplit la condition
when
définie dans la sélection de données.
L'exemple de code suivant montre la variable executionSetting
transmise à un objet
Requête de compilation de l'API Dataform:
{
"gitCommitish": "staging",
"codeCompilationConfig": {
"vars": {
"executionSetting": "staging"
}
}
}
Exécuter un résultat de compilation avec des remplacements de compilation
- Pour exécuter le résultat de la compilation créé par un
compilationResults.create
, transmettez l'ID de résultat de compilation renvoyé par RequêtecompilationResults.create
dans uneworkflowInvocations.create
requête.
L'exemple de code suivant montre un ID de résultat de compilation transmis dans un
workflowInvocations.create
requête:
{
"compilationResult": "projects/my-project-name/locations/europe-west4/repositories/my-repository-name/compilationResults/7646b4ed-ac8e-447f-93cf-63c43249ff11"
}
Étape suivante
- Pour en savoir plus sur la configuration des remplacements de compilation dans Dataform, consultez Présentation du code cycle de vie.
- Pour en savoir plus sur l'API Dataform, consultez API Dataform :
- Découvrir comment utiliser la console Google Cloud pour configurer des remplacements de compilation pour tous les espaces de travail d'un dépôt, consultez la section Configurer la compilation des espaces de travail par défaut.