Planifier une migration avec la traçabilité de la migration

Vous pouvez utiliser le service de traçabilité de migration pour visualiser le flux de données et les connexions dans votre base de données source lorsque vous planifiez une migration d'entrepôt de données BigQuery.

Lorsque vous créez une traçabilité de migration, le service de traçabilité fournit un graphique qui visualise la façon dont les données se déplacent dans votre système source et la façon dont chaque table ou vue de votre système source est connectée, comme le montre le diagramme suivant :

Traçabilité de la migration montrant un graphique du flux de données.

Le service de traçabilité des migrations est compatible avec les dialectes SQL suivants :

  • Amazon Redshift SQL
  • Snowflake SQL
  • SQL Teradata
  • GoogleSQL (BigQuery)

Limites

Le service de traçabilité traite les 5 premiers Go des journaux les plus anciens de votre base de données source.

Pays acceptés

Le service de traçabilité de migration est disponible dans certaines régions. Pour en savoir plus, consultez Emplacements du traducteur SQL BigQuery et du service de traçabilité.

Autorisations requises

Pour obtenir les autorisations nécessaires pour utiliser le service de lignée de migration, demandez à votre administrateur de vous accorder le rôle IAM Éditeur MigrationWorkflow (roles/bigquerymigration.editor) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour utiliser le service de traçabilité de migration. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour utiliser le service de traçabilité de migration :

  • bigquerymigration.workflows.create
  • bigquerymigration.workflows.get
  • bigquerymigration.lineageDbs.query

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

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez Rôles et autorisations IAM BigQuery.

Créer une lignée de migration

Pour créer une lignée de migration, vous devez d'abord exécuter l'outil dwh-migration-dumper afin de générer des fichiers journaux SQL d'entrée source que vous importerez dans Cloud Storage. Une fois que vous avez importé les fichiers d'entrée dans Cloud Storage, vous pouvez générer la traçabilité de la migration avec la console Google Cloud ou l'API BigQuery Migration.

Exécuter l'outil dwh-migration-dumper

Sélectionnez l'une des options suivantes :

Amazon Redshift

Pour créer et afficher une traçabilité de migration sur une base de données Amazon Redshift, procédez comme suit :

  1. Exécutez l'outil dwh-migration-dumper pour générer un dump des fichiers de votre système source.
  2. Importez les journaux de requêtes dans Cloud Storage.

Snowflake

Pour créer et afficher une traçabilité de migration sur une base de données Snowflake, procédez comme suit :

  1. Exécutez l'outil dwh-migration-dumper pour générer un dump des fichiers de votre système source.
  2. Importez les journaux de requêtes dans Cloud Storage.

Teradata

Pour créer et afficher une lignée de migration sur une base de données Teradata, procédez comme suit :

  1. Exécutez l'outil dwh-migration-dumper pour générer un dump des fichiers de votre système source.
  2. Importez les journaux de requêtes dans Cloud Storage.

BigQuery

Pour créer et afficher une lignée de migration sur une base de données BigQuery, procédez comme suit :

  1. Attribuez les rôles suivants au compte ou au compte de service :
  2. Installez l'outil dwh-migration-dumper.
  3. Pour générer des métadonnées et des journaux de requêtes, exécutez l'outil dwh-migration-dumper. Ces métadonnées et journaux de requêtes sont contenus dans un ou plusieurs fichiers ZIP.

    dwh-migration-dumper --connector bigquery
    
    dwh-migration-dumper --connector bigquery-logs
  4. Importez les fichiers ZIP dans un bucket Cloud Storage. Pour en savoir plus sur la création de buckets et l'importation de fichiers dans Cloud Storage, consultez Créer un bucket et Importer des objets à partir d'un système de fichiers.

Générer la lignée de migration

Une fois que vous avez importé les fichiers ZIP contenant les métadonnées et les journaux de requête dans Cloud Storage, vous pouvez générer la traçabilité de la migration. Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page Vos services de migration.

    Accéder à Vos services de migration

  2. Sous Traduire le code SQL, cliquez sur Traduire > Traduction par lot.

  3. Sous Configuration de la traduction, saisissez les informations suivantes :

    1. Dans le champ Nom à afficher, spécifiez un nom pour le job de traçabilité. Le nom peut contenir des lettres, des chiffres ou des traits de soulignement.
    2. Dans le champ Emplacement du traitement, sélectionnez l'emplacement où vous souhaitez exécuter la tâche de traçabilité.
    3. Pour Dialecte source, sélectionnez votre dialecte SQL source.
    4. Pour Dialecte cible, sélectionnez GoogleSQL.
  4. Cliquez sur Suivant.

  5. Sous Détails de l'emplacement du fichier, procédez comme suit :

    1. Pour Emplacement du répertoire de sortie, spécifiez le chemin d'accès à un bucket Cloud Storage pour enregistrer vos fichiers de sortie de traduction. Vous pouvez saisir le chemin d'accès au format bucket_name/folder_name/ ou cliquer sur Parcourir.
    2. Pour Emplacement du répertoire d'entrée, spécifiez le chemin d'accès au dossier Cloud Storage contenant les fichiers ZIP de journaux que vous avez importés précédemment. Vous pouvez saisir le chemin d'accès au format bucket_name/folder_name/ ou cliquer sur Parcourir. Vous pouvez également nommer le sous-répertoire de vos fichiers de sortie dans le champ Nom du sous-répertoire de sortie.
    3. Vous pouvez ajouter d'autres fichiers d'entrée en cliquant sur Ajouter un répertoire d'entrée.
  6. Cliquez sur Suivant.

  7. Cochez la case Traçabilité à partir des journaux de requête.

  8. Cliquez sur Créer.

La tâche de lignée est en cours d'exécution. Selon la taille de vos entrées, la tâche peut prendre plusieurs heures. Une fois le job terminé, l'outil fournit un lien vers la lignée de migration générée.

API

Pour créer un job de traçabilité, exécutez la commande curl suivante :

  curl -d "{
    \"tasks\": {
      \"TASK_NAME\": {
        \"type\": \"Experimental_Lineage\",
        \"translation_details\": {
          \"target_base_uri\": \"BUCKET_PATH\",
          \"source_target_mapping\": {
            \"source_spec\": {
              \"base_uri\": \"BUCKET_PATH\"
            }
          },
          \"target_types\": \"LINEAGE\"
        }
      }
    }
  }
  " \
    -H "Content-Type:application/json" \
    -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows

Remplacez les éléments suivants :

  • TASK_NAME : nom permettant d'identifier ce job de lignage.
  • BUCKET_PATH : chemin d'accès au bucket Cloud Storage contenant vos fichiers ZIP d'entrée.
  • PROJECT_ID : ID de votre projetGoogle Cloud .
  • LOCATION : emplacement de traitement. Cette valeur doit être eu ou us.

Cet appel renvoie un message semblable à celui-ci :

  {
    "name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID",
    "tasks": {
      "task_name": { /*...*/ }
    },
    "state": "RUNNING"
  }

La tâche de lignée est en cours d'exécution. Selon la taille de vos entrées, la tâche peut prendre plusieurs heures. Pour vérifier l'état du job de traçabilité, exécutez la commande curl suivante avec l'ID du workflow :

  curl \
  -H "Content-Type:application/json" \
  -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID

Une fois le job terminé, l'outil fournit un lien vers la vue de lignée générée.

Ouvrir la traçabilité de la migration

Une fois que vous avez généré une lignée de migration, vous pouvez l'ouvrir en utilisant l'une des options suivantes :

Console

  1. Accédez à la page Vos services de migration.

    Accéder à Vos services de migration

  2. Sous Traduire le code SQL, cliquez sur Afficher les traductions récentes.

  3. Sur la page Traductions SQL, cliquez sur le nom du job pour sélectionner le job de traçabilité complet. Les jobs de lignage ont la valeur de sortie Lineage.

  4. Sur la page Détails de la traduction, cliquez sur Traçabilité des données.

API

Pour ouvrir la traçabilité d'une migration terminée, exécutez la commande curl suivante avec l'API BigQuery Migration :

  curl \
  -H "Content-Type:application/json" \
  -H "Authorization:Bearer " -X GET https://bigquerymigration.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_ID

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projetGoogle Cloud .
  • LOCATION : emplacement de traitement. Cette valeur doit être eu ou us.
  • WORKFLOW_ID : ID du workflow de la traçabilité générée.

Accédez au lien inclus dans le champ taskResult.translationTaskResult.consoleUri du message de résultat.

Utiliser la lignée de migration

Les sections suivantes décrivent comment utiliser la traçabilité de migration pour travailler avec vos données et votre base de données sources.

Comprendre les termes de traçabilité de la migration

Les termes suivants sont utilisés dans une lignée de migration :

Conditions d'utilisation Description
Scripts Scripts SQL et autres programmes visibles dans les journaux de base de données ingérés lors de la création de la traçabilité. Les scripts sont composés d'instructions, qui sont le plus souvent des instructions SQL uniques.
Nœuds Sommets du graphique de traçabilité. Elles se composent de tables et de colonnes.
Tables Également appelées relations, y compris les tables ordinaires, les vues, les fichiers structurés et les autres ressources de type tableau.
Colonnes Également appelées attributs, y compris les colonnes de table, les projections de vues, les pseudocolonnes, les champs de type colonne dans les fichiers et autres ressources, ainsi que les sous-colonnes telles que les champs structurés.
Arêtes Connexions entre les nœuds de traçabilité qui indiquent les interactions dues à un pipeline exécutant un script qui a lu ou écrit ces nœuds. Les arêtes sont annotées avec des codes temporels, des prédicats et d'autres métadonnées à partir du moment où l'arête a été dérivée. Un nœud adjacent à un autre nœud avec une arête est appelé connexion directe. Un chemin d'arêtes entre deux nœuds est appelé connexion indirecte.
Bords de la traçabilité Arêtes directionnelles indiquant que le nœud source a été inclus dans une clause telle qu'une clause FROM, WHERE ou GROUP BY qui a influencé les données du nœud cible.
Utilisateurs et pipelines Libellés de métadonnées fournis par la base de données source sur les personnes et les éléments qui ont exécuté les scripts. Ils n'ont pas de signification intrinsèque pour le moteur de traçabilité, mais sont utilisés pour regrouper les scripts par origine.

Les sections suivantes décrivent les différentes pages d'une lignée de migration.

Consultez la page de destination

La page de destination de la lignée de migration affiche l'ID du job de lignée, un champ de recherche permettant de localiser les objets de lignée par nom et une liste de suggestions mettant en évidence certains objets de lignée susceptibles de vous intéresser. La page inclut également le nombre total de tables, de pipelines et d'utilisateurs dans l'arborescence de migration.

Pour accéder à un tableau, une vue ou une colonne en particulier, recherchez l'objet dans le champ de recherche ou cliquez sur l'un des objets suggérés sur la page de destination.

Consulter la page du nœud

Pour examiner les nœuds de la traçabilité de votre migration, cliquez sur l'un des onglets suivants.

Onglet "Flux de données"

L'onglet Flux de données affiche une représentation visuelle d'une partie du graphique de lignée. Il s'agit de la page par défaut lorsque vous consultez un tableau ou une colonne pour la première fois dans le service de traçabilité. Le graphique montre comment les données transitent par votre système source. Dans ce graphique, les nœuds représentent des tables ou des vues, tandis que les arêtes entre les nœuds représentent les données qui circulent des nœuds de gauche vers ceux de droite.

Chaque table du graphique Flux de données affiche son nom non qualifié. Pour afficher le nom complet d'une table avec le préfixe de la base de données et du schéma, pointez sur le nœud pour afficher son info-bulle. Chaque table indique son schéma, comme indiqué par la barre verticale sur le nœud. Tous les schémas de la lignée sont triés par ordre alphabétique et une couleur leur est attribuée. Ainsi, les tables d'un même schéma ont des barres de même couleur, et les tables de schémas dont les noms sont similaires ont des barres de couleur similaire.

Chaque nœud affiche une icône qui indique ses propriétés :

  • monitor : une vue, pas une table.
  • cached : table toujours entièrement actualisée (tronquée, puis réécrite). Cliquez sur l'icône pour afficher les scripts adjacents à ce tableau.
  • Mise en cache : table qui n'est pas toujours entièrement actualisée (tronquée, puis réécrite). Cliquez sur l'icône pour afficher les scripts adjacents à ce tableau.
  • timer : table éphémère. Maintenez le pointeur sur l'icône pour afficher la durée d'existence de la table.
  • snowflake : table dont les dernières données ont été écrites il y a plus de sept jours, ce qui suggère une table contenant des données statiques ou écrites peu fréquemment.

Pour examiner les objets du graphique Flux de données, procédez comme suit :

  • Pour afficher la liste des colonnes d'une table, cliquez sur celle-ci. Cette vue inclut le nom de chaque colonne ainsi que son type de données, tel qu'il est déterminé à partir d'un dump de métadonnées fourni ou déduit du code SQL figurant dans les journaux de requêtes.
  • Pour afficher le graphique de traçabilité au niveau d'une colonne, cliquez sur une colonne. Dans le graphique de traçabilité au niveau des colonnes, les arêtes représentent les flux de données qui affectent la colonne cible.
  • Pour afficher les détails d'une arête, cliquez dessus dans le graphique. Cette vue inclut des liens vers les scripts SQL qui ont induit l'arête.

    Une arête est générée d'un nœud source vers un nœud cible lorsqu'une instruction SQL fait référence au nœud source lors du calcul des données insérées dans le nœud cible. En règle générale, cela implique le transfert de données de la source vers la cible, mais l'onglet Flux de données affiche également un bord lorsque le nœud source est utilisé dans une clause WHERE ou GROUP BY qui affecte la cible. Pour filtrer les transferts de données uniquement, activez le bouton Afficher les arêtes non liées aux données dans la barre d'outils.

Onglet Connexions

L'onglet Connexions d'un nœud de traçabilité affiche la liste des nœuds à proximité dans le graphique de traçabilité. Par défaut, les nœuds connectés sont triés par distance du chemin le plus court à partir du nœud actuel. Les nœuds qui nécessitent le moins d'arêtes pour atteindre le nœud actuel sont listés en premier. Vous pouvez modifier le tri à l'aide de l'option Trier.

Par défaut, la liste des connexions inclut les nœuds en amont (producteur) et en aval (consommateur) du nœud actuel. Vous pouvez modifier ce filtre à l'aide du contrôle Type. Dans la colonne Distance, les nœuds en amont du nœud actuel sont indiqués par une flèche vers le haut et la distance du chemin le plus court vers ce nœud à partir du nœud actuel. De même, les nœuds en aval du nœud actuel sont indiqués par une flèche vers le bas et la distance du chemin le plus court vers ce nœud à partir du nœud actuel. Un nœud peut être à la fois en amont et en aval du nœud actuel s'il fait partie d'un cycle.

Pour télécharger un fichier contenant tous les nœuds affichés, cliquez sur Télécharger au format CSV.

Onglet "Users" (Utilisateurs)

L'onglet Utilisateurs d'un nœud affiche les utilisateurs qui ont exécuté des scripts qui ont lu ou écrit le nœud ou les nœuds en amont ou en aval de celui-ci. Par défaut, l'utilisateur ayant effectué le plus d'actions distinctes est listé en premier. Vous pouvez modifier le tri à l'aide de l'option Trier.

Pour télécharger un fichier contenant tous les utilisateurs affichés, cliquez sur Télécharger au format CSV.

Onglet "Pipelines"

L'onglet Pipelines d'un nœud affiche les pipelines qui ont exécuté des scripts qui ont lu ou écrit le nœud ou les nœuds en amont ou en aval de celui-ci. Par défaut, le pipeline ayant effectué le plus d'actions distinctes est listé en premier. Vous pouvez modifier le tri à l'aide de l'option Trier.

Pour télécharger un fichier contenant tous les pipelines affichés, cliquez sur Télécharger au format CSV.

Onglet Code

L'onglet Code d'un nœud affiche tous les scripts SQL présents dans les fichiers d'entrée qui ont lu des données à partir de ce nœud ou y ont écrit des données. Les mentions du nœud sont mises en évidence dans le texte SQL. Cliquez sur un script pour afficher le texte complet. Vous pouvez modifier les paramètres de filtre pour filtrer la liste des scripts affichés.

Pour télécharger un fichier contenant tous les scripts affichés, cliquez sur Télécharger au format CSV.

Consulter la page "Arête"

Pour examiner les arêtes de nœud dans votre graphique de traçabilité, cliquez sur l'un des onglets suivants.

Onglet Détails

L'onglet Détails d'une arête affiche les prédicats et les catégories qui décrivent les opérations effectuées par les scripts ayant induit l'arête.

Les prédicats sont indiqués sous la forme de codes en trois parties séparées par des traits d'union. La première partie est r, ce qui indique que la source de l'arête est une relation, ou a, ce qui indique que la source de l'arête est un attribut. La deuxième partie est l'une des abréviations suivantes, qui indique la façon dont le nœud source a influencé les données du nœud cible :

  • has : la relation source contient l'attribut cible.
  • dat : la source copie ou transfère les données vers la cible.
  • res : la source filtre ou limite la cardinalité de la cible dans une clause telle que WHERE, HAVING ou JOIN ON.
  • grp : la source est utilisée dans une clause GROUP BY qui affecte la cible.

La troisième partie est également r ou a, ce qui indique si la cible de l'arête est une relation ou un attribut.

Voici quelques exemples de catégories limites :

  • dat predicates:
    • AGGREGATE : la source a été utilisée dans un calcul agrégé qui a écrit la cible.
    • EXACT_COPY : les données de la source ont été copiées intégralement vers la cible.
    • FUNCTION : la source a été utilisée pour calculer la cible.
    • IDENTITY_COPY : la cible n'a pas été calculée. La cible était une copie littérale de la source, sans aucun cast ni conversion.
    • PARTITION_PROMOTION : la cible contient des données provenant de la source à la suite de la promotion d'une partition de la source vers la cible.
    • WEAK_COPY : les données de la source ont été copiées au moins partiellement vers la cible.
  • res predicates:
    • FILTER : la source a été utilisée dans une comparaison qui a écrit la cible.
    • KEY : les données de la source ont été utilisées comme clé dans une comparaison de jointure qui a écrit la cible.
  • grp predicates:
    • GROUP : les données de la source ont été utilisées comme clé dans une clause GROUP BY qui affecte la cible.

Onglet Code

L'onglet Code d'une arête affiche les scripts SQL qui ont induit cette arête. Les nœuds source et cible de l'arête sont mis en surbrillance lorsqu'ils sont mentionnés dans le texte SQL.

Étapes suivantes