Créer et exécuter un workflow dans Dataform

Ce guide de démarrage rapide s'adresse aux ingénieurs et aux analystes de données qui souhaitent gérer les transformations de données dans BigQuery. Dans ce guide de démarrage rapide, vous allez apprendre à créer et à exécuter un workflow Dataform à l'aide de Dataform Core, un framework basé sur SQL permettant de transformer des données brutes en ressources de données organisées, testées et documentées. Dataform vous permet de développer et de gérer par versionnement vos pipelines de modélisation des données dans un dépôt centralisé, ce qui garantit la fiabilité et l'évolutivité.

Ce guide de démarrage rapide vous explique comment créer un workflow et l'exécuter dans BigQuery à l'aide de Dataform :

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the BigQuery and Dataform APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the BigQuery and Dataform APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

Rôles requis

Pour obtenir les autorisations nécessaires pour effectuer toutes les tâches de ce guide de démarrage rapide, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Attribuer les rôles requis

Pour exécuter des workflows dans BigQuery, vous pouvez utiliser un compte de service personnalisé ou votre compte Google.

Votre compte de service personnalisé doit disposer des rôles requis suivants :

  • Éditeur de données BigQuery (roles/bigquery.dataEditor) sur les projets ou les ensembles de données BigQuery spécifiques auxquels Dataform doit avoir accès en lecture et en écriture. Cela inclut généralement le projet hébergeant votre dépôt Dataform.
  • Lecteur de données BigQuery (roles/bigquery.dataViewer) sur les projets ou les ensembles de données BigQuery spécifiques auxquels Dataform doit avoir accès en lecture seule.
  • Utilisateur de job BigQuery (roles/bigquery.jobUser) sur le projet hébergeant votre dépôt Dataform.

Pour permettre à Dataform d'utiliser votre compte de service personnalisé, l'agent de service Dataform par défaut doit disposer des rôles suivants sur la ressource de compte de service personnalisé :

Pour attribuer ces rôles, procédez comme suit :

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

    Accéder à IAM

  2. Cliquez sur Accorder l'accès.

  3. Dans le champ Nouveaux comptes principaux, saisissez l'ID de votre compte de service personnalisé.

  4. Dans le menu Sélectionner un rôle, sélectionnez les rôles suivants un par un, en utilisant Ajouter un autre rôle pour chaque rôle supplémentaire :

    • Éditeur de données BigQuery
    • Lecteur de données BigQuery
    • Utilisateur de job BigQuery
  5. Cliquez sur Enregistrer.

  6. Dans la console Google Cloud , accédez à la page Comptes de service.

    Accéder à la page "Comptes de service"

  7. Sélectionnez votre compte de service personnalisé.

  8. Accédez à Comptes principaux avec accès, puis cliquez sur Accorder l'accès.

  9. Dans le champ Nouveaux comptes principaux, saisissez l'ID de votre agent de service Dataform par défaut.

    L'ID de votre agent de service Dataform par défaut se présente au format suivant :

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    

    Remplacez PROJECT_NUMBER par l'ID numérique de votre projetGoogle Cloud . Vous trouverez l'ID de votre projet Google Cloud dans le tableau de bord de la consoleGoogle Cloud . Pour en savoir plus, consultez Trouver le nom, le numéro et l'ID du projet.

  10. Dans la liste Sélectionner un rôle, ajoutez les rôles suivants :

    • Utilisateur du compte de service
    • Créateur de jetons du compte de service
  11. Cliquez sur Enregistrer.

Pour en savoir plus sur l'attribution de rôles, consultez Accorder à Dataform l'accès requis.

Créer un dépôt Dataform

Un dépôt Dataform est une ressource qui représente un dépôt Git contenant le code du projet Dataform utilisé pour développer, contrôler les versions et orchestrer les workflows. Pour créer un dépôt, sélectionnez l'une des options suivantes :

Console

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

    Accéder à Dataform

  2. Cliquez sur Créer un dépôt.

  3. Sur la page CRÉER UN DÉPÔT, procédez comme suit :

    1. Dans le champ ID du dépôt, saisissez quickstart-repository.

    2. Dans la liste Région, sélectionnez europe-west4.

    3. Dans la liste Compte de service, sélectionnez un compte de service personnalisé pour le dépôt.

    4. Dans la section Vérifications d'autorisations actAs, appliquez les vérifications d'autorisations sur les actions des utilisateurs pour le dépôt.

    5. Cliquez sur Créer.

    6. Cliquez sur Accéder aux dépôts.

Vous venez de créer un dépôt Dataform. Ensuite, vous pouvez créer et initialiser un espace de travail de développement.

API

Pour créer un dépôt, utilisez la méthode projects.locations.repositories.create.

Exécutez la requête API avec les informations suivantes :

  • Point de terminaison : POST https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories
  • Paramètre de requête : repositoryId=REPOSITORY_ID

Vous pouvez également exécuter la commande curl suivante dans votre terminal :

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{"serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"}' \
  "https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories?repositoryId=REPOSITORY_ID"

Remplacez les éléments suivants :

  • PROJECT_ID : identifiant unique du projetGoogle Cloud dans lequel vous souhaitez créer le dépôt Dataform.
  • LOCATION : région Google Cloud dans laquelle vous souhaitez créer le dépôt, par exemple europe-west4.
  • REPOSITORY_ID : identifiant unique de votre nouveau dépôt Dataform, par exemple quickstart-repository.
  • SERVICE_ACCOUNT_NAME : ID du compte de service personnalisé créé pour exécuter les tâches BigQuery.

Créer et initialiser un espace de travail de développement

Un espace de travail Dataform est un environnement de développement isolé, comme une branche Git, dans lequel vous pouvez modifier et compiler du code. Pour créer un espace de travail, sélectionnez l'une des options suivantes :

Console

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

    Accéder à Dataform

  2. Cliquez sur quickstart-repository.

  3. Cliquez sur Créer un espace de travail de développement.

  4. Dans la fenêtre Créer un espace de travail de développement, procédez comme suit :

    1. Dans le champ ID de l'espace de travail, saisissez quickstart-workspace.

    2. Cliquez sur Créer.

    La page de l'espace de travail de développement s'affiche.

  5. Cliquez sur Initialiser l'espace de travail.

API

  1. Pour créer un espace de travail Dataform, utilisez la méthode projects.locations.repositories.workspaces.create.

    Exécutez la requête API avec les informations suivantes :

    • Point de terminaison : POST https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workspaces
    • Paramètre de requête : workspaceId=WORKSPACE_ID

    Vous pouvez également exécuter la commande curl suivante dans votre terminal :

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d "{}" \
      "https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workspaces?workspaceId=WORKSPACE_ID"
    

    Remplacez WORKSPACE_ID par l'identifiant unique de votre espace de travail de développement Dataform, par exemple feature-branch-1.

  2. Pour initialiser votre espace de travail avec la configuration nécessaire, créez un fichier local nommé workflow_settings.yaml et collez-y la configuration suivante :

    defaultProject: PROJECT_ID
    defaultDataset: dataform
    dataformCoreVersion: CORE_VERSION
    

    Remplacez CORE_VERSION par la dernière version stable (non bêta) de Dataform Core, par exemple 3.0.43. Vous trouverez la dernière version dans les versions.

  3. Dans votre terminal, exécutez la commande suivante pour encoder le contenu du fichier en une seule chaîne continue :

    base64 -w 0 workflow_settings.yaml
    
  4. Copiez la chaîne de sortie obtenue pour l'utiliser dans l'espace réservé SETTINGS_DEFINITION si vous décidez d'utiliser la commande alternative curl plus tard dans ces étapes.

  5. Pour créer le fichier de configuration dans votre espace de travail, utilisez la méthode projects.locations.repositories.workspaces.writeFile.

    Exécutez la requête API avec les informations suivantes :

    • Point de terminaison : POST https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID/workspaces/WORKSPACE_ID:writeFile

    Vous pouvez également exécuter la commande curl suivante dans votre terminal :

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "path": "workflow_settings.yaml",
        "contents": "SETTINGS_DEFINITION"
      }'