Traçabilité des données BigQuery : Traçabilité au niveau des colonnes pour Google BigQuery SQL

Traçabilité des données BigQuery Il s'agit de la cartographie du flux de données au sein de votre projet BigQuery : quelles tables et colonnes sources alimentent chaque table dérivée, vue et requête planifiée, et quelles expressions transforment les données tout au long du processus. Google Dataplex capture automatiquement la lignée des tâches BigQuery au niveau de la table ; pour voir quelles colonnes Vous devez analyser le SQL lui-même, en fonction des fonctions et des jointures utilisées. Gudu SQLFlow fait exactement cela, avec un analyseur syntaxique dédié au dialecte BigQuery qui résout les dépendances imbriquées. STRUCT champs, DÉNICHE, expansion des étoiles et chaînes de vues jusqu'à la granularité des colonnes.

Essayez en 30 secondes : collez n'importe quelle requête BigQuery dans le Visualiseur de lignage SQLFlow gratuitSélectionnez le dialecte BigQuery et obtenez un diagramme de traçabilité interactif au niveau des colonnes. L'édition cloud propose une version gratuite.

Pourquoi la traçabilité de BigQuery est plus complexe qu'il n'y paraît

Le SQL de BigQuery n'est pas un SQL ANSI générique. Trois fonctionnalités en particulier rendent inutilisables les outils de traçabilité qui reposent sur une grammaire unique :

  • Colonnes imbriquées et répétées. Une seule colonne BigQuery peut être une STRUCT contenant d'autres champs, ou un TABLEAU des structures. La véritable lignée doit aller à l'intérieur : commandes.client.email est un nœud de lignage différent de commandes.client.pays, même s'ils vivent tous deux dans la même colonne physique.
  • DÉNICHE. L'aplatissement d'un champ répété transforme une ligne en plusieurs et introduit une relation dérivée en cours de requête. Un analyseur syntaxique qui ne modélise pas DÉNICHE perd le lien entre l'alias aplati et le champ du tableau dont il provient.
  • Expansion stellaire. SÉLECTIONNER * L'utilisation d'une chaîne de vues signifie que les colonnes de sortie ne sont pas explicitement mentionnées dans la requête. Leur résolution nécessite les définitions des tables et des vues, et non la seule instruction affichée.

SQLFlow intègre un analyseur syntaxique spécifique à BigQuery (l'un des 39 analyseurs syntaxiques spécifiques à un dialecte Le produit ne contient pas une seule grammaire générique qui gère les trois. Il résout chaque référence de colonne via des CTE, des sous-requêtes, des vues et l'expansion en étoile, et il modélise les structures imbriquées. STRUCT champs en tant que nœuds de lignage de première classe.

Dataplex vous fournit la traçabilité des tâches au niveau de la table. Et après ?

Dataplex (la couche de gouvernance des données de Google Cloud) est vraiment performante : elle observe l’exécution des tâches BigQuery et enregistre les tables lues et écrites par chaque tâche. Si vous souhaitez savoir qu’une requête planifiée remplit… dw.revenu_quotidien depuis commandes brutesDataplex vous le dit déjà.

L'observation des tâches en cours d'exécution ne permet pas de connaître la logique de transformation entre ces tables : quelles colonnes sources alimentent quelles colonnes de sortie, et par quelles expressions, filtres et jointures. Ces informations se trouvent uniquement dans le texte SQL ; leur extraction nécessite donc une analyse syntaxique. Les deux approches répondent à des questions différentes.

QuestionLignée des emplois DataplexLignée analysée par SQLFlow
Quelles tables ce travail concerne-t-il ?Oui, automatiquement, à chaque exécution de tâcheOui, à partir de SQL
Quelles colonnes alimentent revenu_quotidien.total?Non — granularité du tableauOui, par colonne de sortie
Quelle expression calcule chaque colonne de sortie ?NonOui : fonctions, conversions de type, agrégats
Quelles colonnes servent uniquement à filtrer ou à joindre (traduction indirecte) ?NonOui, sous forme de couche activable/désactivable distincte
Traçabilité des requêtes SQL qui n'ont pas encore été exécutées (revue de code, migration)Non — nécessite un travail exécutéOui — analyse statique du texte SQL

Les équipes utilisent généralement les deux : Dataplex pour l'inventaire des tâches toujours à jour, et l'analyse SQL lorsqu'elles doivent répondre à des questions comme « qu'est-ce qui ne fonctionnera pas si je modifie cette colonne » ou « d'où vient exactement ce nombre » avec une précision au niveau de la colonne.

Exemple fonctionnel : CREATE TABLE AS SELECT WITH UNNEST

Voici un modèle typique de BigQuery : la création d'une table de revenus plate à partir d'une table de commandes avec une colonne répétée. articles de ligne structure.

CREATE TABLE dw.order_line_revenue AS SELECT o.order_id, o.customer.email AS customer_email, li.product_id, li.qty * li.unit_price AS line_revenue FROM raw.orders AS o, UNNEST(o.line_items) AS li WHERE o.status = 'COMPLETE';

Intégrez ces données dans SQLFlow et voici la lignée au niveau des colonnes qu'il produit :

  • order_line_revenue.customer_email provient du champ imbriqué raw.orders.customer.email — un membre de la structure, pas la structure entière client colonne.
  • revenu_ligne_commande.revenu_ligne vient de raw.orders.line_items.qty et raw.orders.line_items.unit_price, à travers le DÉNICHE alias li et une multiplication. Les deux champs sources se trouvent à l'intérieur d'une structure répétée ; SQLFlow effectue un suivi lors de l'aplatissement.
  • statut des commandes brutes apparaît comme lignée indirecte: il n'apparaît jamais dans la sortie, mais le Le filtre influence chaque ligne du résultat. SQLFlow modélise le flux de données direct et l'influence indirecte (colonnes WHERE, JOIN, GROUP BY) comme des types de relations distincts que vous pouvez activer ou désactiver séparément dans le diagramme — une distinction que la plupart des outils de traçabilité ne font pas.

La filiation indirecte est plus importante qu'il n'y paraît. Si quelqu'un modifie les valeurs de l'énumération dans statut, un outil de lignée purement directe, selon revenu_ligne est inchangé. Ce n'est pas le cas : tous les chiffres de revenus en aval sont modifiés. Une analyse d'impact sans prise en compte de la chaîne de valeur indirecte est une analyse d'impact comportant des angles morts.

Suivi des requêtes planifiées et des chaînes de vues

Dans la plupart des environnements BigQuery, la traçabilité intéressante ne se résume pas à une seule instruction, mais à une chaîne : des tables brutes, puis une couche de vues, puis une requête planifiée qui génère une table de reporting, et enfin d'autres vues. Chaque maillon pris individuellement est facile à comprendre ; le cheminement complet, d'une colonne source à un champ du tableau de bord, ne l'est pas.

SQLFlow analyse l'ensemble des données. Fournissez-lui le DDL de la vue ainsi que la requête SQL planifiée (collage, chargement de fichier, métadonnées en direct via JDBC, manifeste dbt ou extraction de métadonnées Grabit) et il assemble la chaîne : les références entre vues sont résolues. SÉLECTIONNER * Le diagramme s'appuie sur les schémas réels à chaque niveau et permet de cliquer sur n'importe quelle colonne de sortie pour remonter la chaîne jusqu'aux colonnes sources des tables brutes, en passant par toutes les vues intermédiaires. L'exportation se fait aux formats JSON, CSV ou PNG, ou par programmation via l'API REST. Les déploiements en entreprise intègrent la traçabilité dans DataHub, Microsoft Purview ou OpenMetadata.

Diagrammes ER à partir de contraintes NON APPLIQUÉES

BigQuery ne prend en charge que les clés primaires et étrangères. NON APPLIQUÉ Les contraintes, déclarées dans le DDL pour l'optimiseur et la documentation, ne sont jamais vérifiées lors de l'écriture. Comme elles ne sont pas appliquées, de nombreuses équipes les considèrent comme des métadonnées inutiles. Or, ce n'est pas le cas : ce sont précisément les déclarations de relations dont un diagramme ER a besoin.

L'inférence ER de SQLFlow comprend celle de BigQuery. NON APPLIQUÉ Modèle PK/FK : exécutez votre DDL avec cet outil, et il génère le diagramme entité-relation à partir de contraintes telles que… L'ajout de la clé primaire (order_id) n'est pas obligatoire. et l'appariement CLÉ ÉTRANGÈRE… RÉFÉRENCES… NON APPLIQUÉES déclarations. Le résultat est un modèle ER de votre entrepôt généré directement à partir du DDL que vous possédez déjà, pour les schémas dont la documentation des relations n'existe probablement nulle part ailleurs.

Quelles équipes utilisent la traçabilité des données BigQuery pour

  • Analyse d'impact avant les modifications de schéma : Trouvez toutes les requêtes, vues et rapports planifiés qu'une colonne alimente réellement, y compris via DÉNICHE et l'accès à la structure — avant de la renommer ou de la retaper.
  • Débogage des numéros erronés : Remonter la chaîne de vues à partir d'une métrique du tableau de bord jusqu'aux champs sources et expressions exacts qui l'ont produite.
  • Planification des migrations : Lors de l'importation ou de l'exportation de données vers BigQuery, le graphe de dépendances indique l'ordre d'importation et les éléments pouvant être laissés en attente sans risque. SQLFlow construit le même graphe au niveau des colonnes pour… Flocon de neige et Amazon Redshift, afin que les migrations entre entrepôts puissent être cartographiées des deux côtés avec un seul outil.
  • Conformité et audit : prouver quels champs sources alimentent une sortie réglementée avec la granularité de colonne demandée par les auditeurs, générée à partir du SQL plutôt que gérée manuellement.

Confidentialité, déploiement et tarification

SQLFlow effectue uniquement une analyse statique du code SQL et des métadonnées du schéma. Il ne lit jamais les lignes de vos tables BigQuery et ne nécessite pas de compte de service avec accès aux données : le texte SQL et le DDL suffisent. SQLFlow Cloud propose une version gratuite (la version premium est à $49,99 €/mois). Pour les environnements réglementés, SQLFlow sur site Exécution sur Docker ou Kubernetes au sein de votre réseau, isolé du réseau physique si nécessaire, à $500/mois ou $4 800 en une seule fois par type de base de données sélectionné ; tous les détails sont disponibles sur le site web. page de tarification. Déploiements d'entreprise : analyses par lots de plus de 100 bases de données et de plus d'un million de colonnes avec analyses incrémentales et un référentiel de lignage persistant.

Foire aux questions

Dataplex ne me fournit-il pas déjà la traçabilité de BigQuery ?

Oui, au niveau des tables. Dataplex enregistre automatiquement les tables lues et écrites par chaque tâche BigQuery, ce qui constitue un inventaire complet des tâches. Il n'extrait cependant pas la logique de transformation SQL (quelles colonnes alimentent quelles autres, et par quelles expressions). Pour cela, un outil d'analyse SQL est nécessaire, comme SQLFlow.

SQLFlow peut-il retracer la lignée à travers les colonnes STRUCT et ARRAY ?

Oui. L'analyseur BigQuery modélise les champs de structure imbriqués comme des nœuds de lignage individuels, donc email client et client.pays ont une lignée distincte et retracent les champs à travers DÉNICHE Aplatissement des colonnes répétées.

Comment SQLFlow gère-t-il les requêtes SELECT * dans les vues BigQuery ?

Les expressions en forme d'étoile sont développées par rapport aux définitions réelles des tables et des vues, de sorte que chaque colonne implicite bénéficie d'une traçabilité explicite. Ceci fonctionne à travers les chaînes de vues multicouches, où les colonnes situées derrière une vue sont explicitement liées. SÉLECTIONNER * peut être défini plusieurs points de vue en amont.

Peut-il établir un lien de causalité entre les requêtes planifiées et les vues ?

Oui. Analysez le SQL de la requête planifiée et visualisez le DDL comme une seule tâche, et SQLFlow assemble la chaîne de bout en bout, ce qui vous permet de retracer une colonne de reporting à travers la requête de matérialisation et chaque vue intermédiaire jusqu'aux colonnes sources brutes.

SQLFlow a-t-il besoin d'accéder à mes données BigQuery ?

Non. Il s'agit d'une analyse statique : le texte SQL et les métadonnées de schéma optionnelles. Les données des lignes de la table ne sont jamais lues. En mode sur site, même le texte SQL reste au sein de votre réseau.

Combien coûte SQLFlow ?

SQLFlow Cloud est gratuit ; les comptes premium coûtent 49,99 £/mois. SQLFlow On-Premise coûte 500 £/mois ou 4 800 £ (paiement unique) par type de base de données sélectionné, et peut être installé sur deux serveurs.

Consultez dès maintenant votre historique BigQuery

Collez une requête BigQuery dans le visualiseur gratuit, ou contactez-nous pour que nous analysions l'ensemble de votre projet.