Configurer des paramètres de table supplémentaires

Ce document explique comment configurer des paramètres de tableau supplémentaires dans un fichier de définition de tableau. Avec Dataform Core, vous pouvez définir pre_operations et post_operations pour exécuter une instruction SQL avant ou après la création de la table. Vous pouvez également remplacer les paramètres de la table, tels que database ou schema, et désactiver la création de tables.

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.

  4. Créez une table.

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer des paramètres de table supplémentaires, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Dataform (roles/dataform.editor) pour 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.

Remplacer les paramètres du tableau

Vous pouvez remplacer le schéma, la base de données et le nom d'une table sélectionnée.

Par défaut, une table suit la configuration de schéma et de base de données que vous avez définie dans dataform.json. Le nom d'une table est identique à celui du fichier SQLX de définition de table.

Pour remplacer le schéma et le nom d'une table sélectionnée, procédez comme suit:

  1. Accédez à votre espace de travail de développement.

  2. Dans le volet Fichiers, développez definitions/.

  3. Ouvrez un fichier de définition de table SQLX.

  4. Dans le bloc config, saisissez l'extrait de code suivant:

     {
       schema: "OVERRIDDEN_SCHEMA",
       database: "OVERRIDDEN_DATABASE",
       name: "OVERRIDDEN_NAME"
     }
    

    Remplacez les éléments suivants :

    • OVERRIDDEN_SCHEMA: ensemble de données BigQuery dans lequel vous souhaitez créer la table

    • OVERRIDDEN_DATABASE: ID du projet BigQuery dans lequel vous souhaitez créer la table

    • OVERRIDDEN_NAME: nom de la table, différent du nom de fichier de la définition de table SQLX

  5. (Facultatif) Cliquez sur Format.

Référencer une table avec un nom de table remplacé

  • Pour référencer une table dont le nom a été remplacé, dans la fonction ref, saisissez le nom de la table remplacée défini dans name: "".

L'exemple de code suivant référence une table dont le nom est remplacé par overridden_name:

  SELECT * FROM ${ref("overridden_name")}

Définir une instruction SQL à exécuter avant la création de la table

Vous pouvez configurer Dataform pour exécuter une ou plusieurs instructions SQL avant de créer la table sélectionnée dans BigQuery. Pour exécuter une instruction SQL avant que Dataform crée une table sélectionnée, ajoutez votre instruction au bloc pre_operations du fichier SQLX de définition de table.

Pour créer une instruction SQL personnalisée exécutée avant que Dataform crée une table spécifique, procédez comme suit:

  1. Accédez à votre espace de travail de développement.

  2. Dans le volet Fichiers, développez definitions/.

  3. Ouvrez un fichier de définition de table SQLX.

  4. En dehors du bloc config, saisissez pre_operations { ... }.

  5. Dans pre_operations { ... }, ajoutez votre instruction SQL.

  6. Facultatif: Pour ajouter plusieurs instructions, séparez-les avec ---.

  7. (Facultatif) Cliquez sur Format.

L'exemple de code suivant montre une instruction pre_operations qui crée une fonction temporaire pouvant être utilisée dans l'instruction select:

  pre_operations {
    CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
      RETURNS FLOAT64
      AS ((x + 4) / y);
  }

Définir une instruction SQL à exécuter après la création de la table

Vous pouvez configurer Dataform pour exécuter une ou plusieurs instructions SQL après avoir créé la table sélectionnée dans BigQuery. Pour exécuter une instruction SQL une fois que Dataform a créé une table sélectionnée, ajoutez votre instruction au bloc post_operations dans le fichier SQLX de définition de table. Vous pouvez ajouter plusieurs instructions SQL au bloc post_operations.

Pour créer une instruction SQL personnalisée exécutée après que Dataform a créé une table spécifique, procédez comme suit:

  1. Accédez à votre espace de travail de développement.

  2. Dans le volet Fichiers, développez definitions/.

  3. Ouvrez un fichier de définition de table SQLX.

  4. En dehors du bloc config, saisissez post_operations { ... }.

  5. Dans post_operations { ... }, ajoutez votre instruction SQL.

  6. (Facultatif) Cliquez sur Format.

L'exemple de code suivant montre les instructions post_operations qui accordent aux groupes l'accès à la table créée:

    post_operations {
      GRANT `roles/bigquery.dataViewer`
      ON
      TABLE ${self()}
      TO "group:allusers@example.com", "user:otheruser@example.com"
    }

Désactiver la création de tables

Pour empêcher Dataform de créer une table sélectionnée dans BigQuery, vous pouvez désactiver la table dans son fichier de définition de table SQLX. Dataform conserve une table désactivée dans le graphique des dépendances, mais ne la compile pas ni ne la crée. Cela peut être utile, par exemple, si une table échoue et que vous ne souhaitez pas que l'ensemble de votre workflow échoue pendant la résolution du problème.

Pour désactiver une table, procédez comme suit:

  1. Accédez à votre espace de travail de développement.

  2. Dans le volet Fichiers, développez definitions/.

  3. Sélectionnez un fichier de définition de table SQLX.

  4. Dans le bloc config du fichier, saisissez disabled: true.

  5. (Facultatif) Cliquez sur Format.

L'exemple de code suivant montre une table désactivée:

  config {
    type: "table",
    disabled: true
  }

  select * from ${ref("source_data")}

Étapes suivantes