Effectuer une migration depuis l'ancien Dataform

Legacy Dataform sera abandonné le 26 février 2024. Après cette date, vous ne pourrez plus accéder aux anciens projets. Ce document décrit les différences entre l'ancien projet Dataform et Dataform dans Google Cloud, et vous explique comment importer un ancien projet Dataform dans Dataform dans Google Cloud.

À propos des différences entre l'ancien Dataform et Dataform dans Google Cloud

Dataform est un service sans serveur qui permet aux analystes de données de développer et de déployer des tables, des tables incrémentielles ou des vues dans BigQuery. Dataform offre un environnement Web pour le développement de workflows SQL, la connexion avec GitHub, GitLab et Bitbucket Cloud, l'intégration continue, le déploiement continu et l'exécution de workflows.

Dans Google Cloud, Dataform se différencie de l'ancien Dataform à différents égards:

  • Dataform dans Google Cloud permet de connecter des dépôts Dataform à des dépôts Bitbucket Cloud.
  • Le contrôle des accès est basé sur IAM.
  • La configuration d'une limite de simultanéité des requêtes (concurrentQueryLimit) dans dataform.json est supprimée.

    Dans l'ancien Dataform, les limites de simultanéité empêchaient Dataform d'envoyer trop de requêtes simultanées à BigQuery. Pour gérer la simultanéité dans Dataform dans Google Cloud, nous vous recommandons d'activer les files d'attente de requêtes BigQuery.

  • Les anciens environnements sont remplacés par des configurations de versions.

  • Les anciennes planifications sont remplacées par les configurations de workflow.

  • Les alertes d'échec de workflow sont configurées dans Cloud Logging.

  • Dataform dans Google Cloud et l'ancienne version de Dataform utilisent différentes versions de GPR et différents formats de package-lock.json.

    Pour développer un workflow SQL dans les anciens formats Dataform et Dataform dans Google Cloud, utilisez l'ancien format package-lock.json pour l'installation du package. N'installez pas de packages dans Dataform dans Google Cloud tant que vous n'avez pas entièrement migré vers Dataform dans Google Cloud.

Pour en savoir plus sur les fonctionnalités de Dataform dans Google Cloud, consultez la page Présentation des fonctionnalités de Dataform.

Les anciennes fonctionnalités Dataform ne sont pas compatibles avec Google Cloud pour le moment

Les fonctionnalités suivantes de l'ancienne version de Dataform ne sont pas compatibles avec Dataform dans Google Cloud pour le moment:

  • La configuration d'adresses IP de sortie cohérentes est requise pour autoriser les adresses IP Dataform avec des dépôts distants tiers.

  • Il n'est actuellement pas possible de mettre en forme le code dans l'onglet Code des espaces de travail de développement.

  • Exécution manuelle de tests unitaires.

  • Il n'est actuellement pas possible de rechercher des noms et des contenus de fichiers dans les espaces de travail de développement.

  • Il n'est actuellement pas possible d'utiliser des onglets dans les espaces de travail de développement.

Cette liste sera mise à jour à mesure que de nouvelles fonctionnalités de Dataform seront disponibles dans Google Cloud.

Limitations connues

Dataform dans Google Cloud présente les limites connues suivantes:

  • Dataform dans Google Cloud s'exécute dans un environnement d'exécution V8 simple et n'accepte pas les fonctionnalités ni les modules supplémentaires fournis par Node.js. Si votre codebase existant nécessite des modules Node.js, vous devez les supprimer.

    Les projets sans champ de nom dans package.json génèrent des différences dans package-lock.json à chaque installation de packages. Pour éviter cela, vous devez ajouter une propriété name dans package.json.

  • git+https:// URL pour les dépendances dans package.json ne sont actuellement pas compatibles.

    Convertissez ces URL en URL d'archive https:// simples. Par exemple, convertissez git+https://github.com/dataform-co/dataform-segment.git#1.5 en https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz.

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 gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activer les API BigQuery and Dataform.

    Activer les API

  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  7. Activer les API BigQuery and Dataform.

    Activer les API

Rôles requis

Pour obtenir les autorisations dont vous avez besoin pour importer un ancien projet, demandez à votre administrateur de vous attribuer 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.

Importer un ancien projet

Pour importer un ancien projet dans Dataform dans Google Cloud, procédez comme suit dans la console Google Cloud:

  1. Assurez-vous que votre projet Dataform dans app.dataform.co est connecté à GitHub ou GitLab.
  2. Dans la console Google Cloud, accédez à la page Dataform.

    Accéder à la page Dataform

  3. Créez un dépôt.

  4. Connectez le dépôt au dépôt Git distant qui héberge votre ancien projet.

Configurer votre projet Dataform importé

Pour ajuster votre ancien projet à Dataform dans Google Cloud, procédez comme suit:

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

    Accéder à la page Dataform

  2. Sélectionnez votre dépôt.

  3. Créez un espace de travail de développement.

  4. Accédez à l'espace de travail de développement.

  5. Dans dataform.json, ajoutez le paramètre defaultLocation. Ce paramètre est ignoré par app.dataform.co.

    "defaultLocation": "DATASET_LOCATION",
    

    Remplacez DATASET_LOCATION par l'emplacement par défaut de votre ensemble de données BigQuery, par exemple US, EU ou us-east1.

  6. Supprimez package-lock.json

  7. Dans package.json, procédez comme suit:

    1. Passez de @dataform/core à 2.3.2 ou version ultérieure.
    2. Ajoutez un nom de package au format suivant:

      {
          "name": "PACKAGE_NAME",
          "dependencies": {
              "@dataform/core": "^2.3.2"
          }
      }
      

      Remplacez PACKAGE_NAME par le nom de votre package Dataform, par exemple le nom de votre projet.

    3. Convertir les URL git+https:// dans les dépendances package.json en URL d'archive https:// simples.

      Par exemple, convertissez git+https://github.com/dataform-co/dataform-segment.git#1.5 en https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz.

      Si vous utilisez des URL git+https:// dans des packages Dataform prédéfinis, consultez les instructions d'installation mises à jour pour ces packages sur leurs pages de version, par exemple la page de publication du segment dataform-segment.

  8. Configurez les autorisations BigQuery et les autorisations utilisateur.

  9. Migrez des environnements de environments.json vers des configurations de versions.

  10. Migrez les planifications de environments.json vers les configurations de workflow.

  11. Configurer des alertes via Cloud Logging

Étapes suivantes