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

Vous pouvez utiliser le service de traçabilité de la 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 comment chaque table ou vue de votre système source est connectée, comme illustré dans le schéma suivant :

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

Le service de traçabilité de la migration 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 la migration est disponible dans certains emplacements. 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 traçabilité de la 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 la migration. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour utiliser le service de traçabilité de la 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.

Suivre la traçabilité d'une migration

Pour tracer 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 importez dans Cloud Storage. Après avoir importé les fichiers d'entrée dans Cloud Storage, vous pouvez tracer la traçabilité de la migration à l'aide de la console Cloud de Confiance ou de l'API BigQuery Migration.

Exécuter l'outil dwh-migration-dumper

Sélectionnez l'une des options suivantes :

Amazon Redshift

Pour tracer et afficher la traçabilité d'une 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 vidage des fichiers de votre système source.
  2. Importez les journaux de requêtes dans Cloud Storage.

Snowflake

Pour tracer et afficher la traçabilité d'une 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 vidage des fichiers de votre système source.
  2. Importez les journaux de requêtes dans Cloud Storage.

Teradata

Pour tracer et afficher la traçabilité d'une 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 vidage des fichiers de votre système source.
  2. Importez les journaux de requêtes dans Cloud Storage.

BigQuery

Pour tracer et afficher la traçabilité d'une 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.

Suivre la traçabilité

Après avoir importé les fichiers ZIP contenant les métadonnées et les journaux de requêtes dans Cloud Storage, vous pouvez suivre la traçabilité. 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 Suivre la traçabilité, cliquez sur Suivre la traduction.

  3. Sous Configuration de la traçabilité, 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 le job de traçabilité.
  4. Pour Modifier l'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.

    Vous pouvez ajouter d'autres fichiers d'entrée en cliquant sur Ajouter un emplacement de répertoire d'entrée.

  5. Cliquez sur Trace.

Le job de traçabilité est en cours d'exécution. Le job peut prendre plusieurs heures, selon la taille de votre entrée. Une fois le job terminé, l'outil fournit un lien vers la traçabilité de la migration.

API

Pour tracer 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 traçabilité.
  • BUCKET_PATH : chemin d'accès au bucket Cloud Storage contenant vos fichiers ZIP d'entrée.
  • PROJECT_ID : ID du projetCloud de Confiance .
  • 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"
  }

Le job de traçabilité est en cours d'exécution. Le job peut prendre plusieurs heures, selon la taille de l'entrée. 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 la traçabilité tracée.

Ouvrir la traçabilité de la migration

Après avoir tracé un lignage de migration, vous pouvez l'ouvrir à l'aide de l'une des options suivantes :

Console

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

    Accéder à vos services de migration

  2. Sous Traçabilité de la traçabilité, cliquez sur Afficher les éléments récents.

  3. Sur la page Traçabilité de la migration, cliquez sur le nom du job pour sélectionner le job de traçabilité complet.

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

API

Pour ouvrir un lignage de migration terminé, 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 du projetCloud de Confiance .
  • LOCATION : emplacement de traitement. Cette valeur doit être eu ou us.
  • WORKFLOW_ID : ID du workflow de la traçabilité suivie.

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

Utiliser la traçabilité de la migration

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

Comprendre les termes liés à la traçabilité de la migration

Les termes suivants sont utilisés dans un traçage 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 Les sommets du graphique de traçabilité. Ils sont constitués de tables et de colonnes.
Tables Également appelées relations, y compris les tables ordinaires, les vues, les fichiers structurés et d'autres ressources de type table.
Colonnes Également appelés attributs, y compris les colonnes de table, les projections de vue, les pseudo-colonnes, les champs de type colonne dans les fichiers et autres ressources, et les sous-colonnes telles que les champs de structure.
Arêtes Connexions entre les nœuds de traçabilité qui indiquent des 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.
Arêtes de 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 Étiquettes de métadonnées fournies par la base de données source concernant l'identité de l'utilisateur et l'objet des scripts exécutés. Ils n'ont pas de signification inhérente 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'un lignage de migration.

Vérifier la page de destination

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

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

Examiner la page du nœud

Pour examiner les nœuds de votre traçabilité de 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 traçabilité. Il s'agit de la page par défaut lorsque vous affichez une table ou une colonne pour la première fois dans le service de traçabilité. Le graphique visualise la façon dont les données transitent par votre système source. Les nœuds de ce graphique représentent des tables ou des vues, tandis que les bords entre les nœuds représentent les données circulant des nœuds de gauche vers les nœuds 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 traçabilité sont triés par ordre alphabétique et se voient attribuer une couleur. Ainsi, les tables d'un même schéma ont des barres de la même couleur, et les tables de schémas portant des noms similaires ont des barres de couleur similaire.

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

  • monitor : vue, et non table.
  • cached : table qui est toujours entièrement actualisée (tronquée, puis réécrite). Cliquez sur l'icône pour afficher les scripts adjacents à ce tableau.
  • cached : 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 : une table de courte durée. Maintenez le pointeur sur l'icône pour afficher la durée d'existence de la table.
  • snowflake : table dont la dernière écriture remonte à plus de sept jours, ce qui suggère une table contenant des données statiques ou rarement écrites.

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 une table. Cette vue inclut le nom de chaque colonne ainsi que son type de données, 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 des colonnes 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.

    Un arc est généré d'un nœud source vers un nœud cible lorsqu'une instruction SQL fait référence au nœud source pendant que l'instruction calcule les 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 uniquement les transferts de données, activez le bouton Afficher les bords non liés 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 en fonction de la distance du chemin le plus court à partir du nœud actuel. Les nœuds qui nécessitent moins d'arêtes pour être atteints à partir du nœud actuel sont listés en premier. Vous pouvez modifier le tri à l'aide de l'option Trier.

La liste des connexions inclut par défaut les nœuds en amont (producteur) et en aval (consommateur) du nœud actuel. Vous pouvez modifier ce filtre à l'aide de la commande Type. Dans la colonne Distance, les nœuds en amont du nœud actuel sont indiqués par une flèche pointant vers le haut avec la distance du chemin retour 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 pointant vers le bas avec la distance du chemin aller 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 qui a 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 qui a 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 vus 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 surbrillance dans le texte SQL. Cliquez sur un script pour afficher le texte complet. Vous pouvez modifier les paramètres de filtrage 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.

Examiner la page "Edge"

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

Onglet Détails

L'onglet Détails d'un arc affiche les prédicats et les catégories, qui décrivent les opérations effectuées par les scripts qui ont induit l'arc.

Les prédicats sont notés sous la forme de codes en trois parties séparés par des traits d'union. La première partie est soit r, indiquant que la source de l'arête est une relation, soit a, indiquant que la source de l'arête est un attribut. La deuxième partie est l'une des abréviations suivantes, qui indique la manière 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, indiquant si la cible de l'arête est une relation ou un attribut.

Les catégories de périphérie peuvent inclure les éléments suivants :

  • dat prédicats  :
    • AGGREGATE : la source a été utilisée dans un calcul d'agrégation qui a écrit la cible.
    • EXACT_COPY : les données de la source ont été entièrement copiées 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 casts ni conversions.
    • PARTITION_PROMOTION : la cible contient des données de la source, car une partition de la source a été promue vers la cible.
    • WEAK_COPY : les données de la source ont été copiées au moins partiellement vers la cible.
  • res prédicats :
    • 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 prédicats :
    • 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 là où ils sont mentionnés dans le texte SQL.

Étapes suivantes