Configurer des remplacements de compilation avec l'API Dataform

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 dans workflow_settings.yaml, defaultSchema dans dataform.json, ou dans le schema dans le bloc config 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

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

    Accéder à Dataform

  2. Sélectionnez ou créez un dépôt.

  3. 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 dans CodeCompilationConfig 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 dans CodeCompilationConfig 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:

  1. Créer une variable de compilation et l'ajouter à la sélection de données.
  2. 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"
       }
     }
    }
    
  3. Remplacez YOUR_VARIABLE par le nom de votre variable (par exemple, executionSetting

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

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