Traçabilité des données Azure SQL : Traçabilité des colonnes pour Azure SQL et Synapse SQL

Traçabilité des données Azure SQL Il s'agit d'une représentation détaillée, colonne par colonne, du flux de données dans le code T-SQL exécuté sur Azure SQL Database, Azure SQL Managed Instance et Synapse SQL : quelles colonnes sources alimentent chaque colonne cible, et par quelles vues, procédures stockées, jointures et fonctions. La méthode la plus précise pour la construire consiste à analyser le code T-SQL lui-même. Gudu SQLFlow Il fait exactement cela grâce à un analyseur syntaxique dédié au dialecte Azure SQL, et peut transférer la lignée résultante au niveau des colonnes vers Microsoft Purview afin qu'elle apparaisse aux côtés du reste de votre environnement Azure.

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

Pourquoi la traçabilité des données Azure SQL pose un problème d'analyse

Sur Azure, la logique de transformation qui façonne vos données réside rarement dans une définition de pipeline. Elle réside plutôt dans le T-SQL : des vues superposées à d’autres vues, des procédures stockées appelées depuis des activités Azure Data Factory, FUSIONNER Les instructions, les tables temporaires et le SQL dynamique sont assemblés à l'exécution. Une représentation de la lignée construite uniquement à partir des métadonnées du pipeline permet de visualiser les modules, mais pas leur contenu.

Savoir que rapport.revenu_mensuel est calculé comme SOMME(commandes.montant) filtré par statut des commandes, quelque chose doit lire le SQL de la même manière que le moteur de base de données : résoudre chaque référence de colonne via des CTE, des sous-requêtes, des vues, et SÉLECTIONNER * Après l'expansion, SQLFlow suit le flux de données des colonnes sources vers les colonnes cibles. C'est l'analyse SQL statique, et c'est précisément le rôle de SQLFlow. Il lit uniquement le code SQL et les métadonnées du schéma ; il ne modifie jamais les lignes de vos tables.

Où s'arrête Microsoft Purview et comment l'analyse syntaxique comble le fossé

Microsoft Purview excelle véritablement dans les fonctions essentielles d'une plateforme axée sur le catalogue : l'analyse et la classification des ressources au sein d'un environnement Azure, la cartographie des données sensibles et l'affichage de la traçabilité pour les outils de déplacement de données avec lesquels elle s'intègre, tels qu'Azure Data Factory et les pipelines Synapse. Si vous utilisez Azure à grande échelle, Purview constitue une solution pertinente pour la gestion de la traçabilité. affiché.

La lacune réside dans la manière dont la lignée est transmise. calculéLa lignée SQL automatisée de Purview présente des lacunes concernant le T-SQL complexe : procédures stockées avec flux de contrôle, gestion des tables temporaires et SQL dynamique construit avec sp_executesql Ce sont précisément les endroits où la couverture automatisée s'arrête et où les liens de traçabilité disparaissent. Ce sont également là que se situent les transformations les plus risquées.

Une répartition des tâches efficace : SQLFlow analyse le T-SQL et calcule la traçabilité au niveau des colonnes, y compris à travers les procédures et le SQL dynamique, puis l'exporte via son adaptateur Microsoft Purview. SQLFlow effectue les calculs ; Purview assure l'affichage global. Un seul catalogue suffit, et les données SQL complexes ne restent plus inexploitées.

Que SQLFlow extrait du code Azure SQL ?

SQLFlow intègre 39 analyseurs syntaxiques spécifiques à un dialecte plutôt qu'une seule grammaire ANSI générique. Azure SQL en fait partie, au sein de la famille T-SQL aux côtés de SQL Server. Les pools SQL dédiés de Synapse utilisent également T-SQL ; la même analyse s'applique donc aux scripts SQL de Synapse. Pour le code Azure SQL, SQLFlow produit :

  • Lignée au niveau de la colonne : Pour chaque colonne de sortie, les colonnes sources exactes qui l'alimentent ainsi que les fonctions, conversions, sous-requêtes, jointures et opérateurs ensemblistes intermédiaires sont renseignées. Les références sont résolues via des CTE, des vues, des sous-requêtes et l'expansion en étoile.
  • Lignée directe ou indirecte : une colonne utilisée dans un clause, REJOINDRE condition, ou GROUPER PAR Elle n'apparaît jamais dans le résultat, mais l'influence néanmoins. SQLFlow modélise cela comme un type de relation distinct et activable, permettant ainsi à l'analyse d'impact de prendre en compte des colonnes de filtre que la plupart des outils de traçabilité ignorent.
  • Traçabilité des procédures stockées : Un analyseur procédural dédié à la famille T-SQL trace le flux de données à travers les paramètres de procédure et les tables temporaires, et génère un graphe d'appels interactif indiquant quelles procédures appellent lesquelles.
  • Résolution SQL dynamique : SQL assemblé à l'intérieur d'une procédure et exécuté avec EXÉCUTIF ou sp_executesql Le problème est résolu et analysé au lieu d'être ignoré. C'est le point aveugle le plus fréquent dans l'analyse automatisée de la lignée.
  • Diagrammes ER issus de DDL : Relations de clés primaires et étrangères déduites des définitions de vos tables, représentées sous forme de diagramme entité-relation.

Les données d'entrée peuvent être du SQL collé, des fichiers de script téléchargés ou des métadonnées en direct récupérées via JDBC ; vous pouvez donc indiquer à SQLFlow d'accéder à une base de données Azure SQL et le laisser collecter lui-même les définitions de vues et de procédures.

Exemple : une procédure T-SQL avec du SQL dynamique

Voici le type de procédure qui met à mal les analyseurs de lignage automatisés. Elle stocke les données dans une table temporaire, puis construit la table finale. INSÉRER sous forme de chaîne de caractères et l'exécute :

CREATE PROCEDURE dbo.usp_refresh_regional_sales @region NVARCHAR(50) AS BEGIN SELECT o.customer_id, SUM(o.amount) AS total_amount INTO #staged FROM dbo.orders AS o WHERE o.region = @region GROUP BY o.customer_id; DECLARE @sql NVARCHAR(MAX) = N' INSERT INTO dbo.regional_sales (customer_id, customer_name, total_amount) SELECT s.customer_id, c.customer_name, s.total_amount FROM #staged AS s JOIN dbo.customers AS c ON c.customer_id = s.customer_id;'; EXEC sp_executesql @sql; END

Un scanner qui s'arrête à la limite de la procédure ne fournit aucun résultat utile : la table cible n'apparaît que dans une chaîne de caractères. SQLFlow analyse le corps de la procédure, résout le SQL dynamique et suit le flux de données à travers la table temporaire, produisant ainsi :

  • montant_total_des_ventes_régionalesSOMME(commandes.montant), via #staged.montant_total (lignée directe).
  • nom_client_des_ventes_régionalesclients.nom_client (lignée directe).
  • commandes.région et les clés de jonction clients.identifiant_client / commandes.identifiant_client signalés comme lignée indirecte : ils filtrent et relient le résultat sans y apparaître.

Rebaptiser commandes.région Une vue métadonnée du pipeline indique qu'aucune dépendance n'existe. La vue analysée révèle que cette procédure lance silencieusement l'actualisation d'une table vide. C'est là toute la différence que fait la traçabilité au niveau des colonnes.

Intégrer la lignée dans Microsoft Purview

Les déploiements SQLFlow en entreprise incluent des adaptateurs d'exportation pour Microsoft Purview, DataHub et OpenMetadata. Le flux de travail pour Azure est simple : SQLFlow analyse les bases de données par lots (il s'adapte aux environnements de plus de 100 bases de données et plus d'un million de colonnes, avec des analyses incrémentales et un référentiel de traçabilité persistant), calcule la traçabilité au niveau des colonnes à partir du code T-SQL et la publie dans Purview. Les analystes et les responsables continuent de travailler dans le catalogue qu'ils utilisent déjà ; la traçabilité sous-jacente est de qualité analytique et non plus approximative.

Si vous préférez créer votre propre intégration, la même traçabilité est disponible sous forme d'export JSON ou CSV et via une API REST.

Options de déploiement pour les environnements Azure

ÉditionIdéal pourComment ça marche
SQLFlow CloudJe le teste aujourd'hui sur de vraies requêtes.Logiciel SaaS avec une version gratuite ; la version premium coûte 49,99 £/mois. Collez du code T-SQL ou connectez des sources directement dans votre navigateur.
SQLFlow sur siteCharges de travail réglementées où le texte SQL doit rester à l'intérieur du réseauDocker/Kubernetes dans votre propre abonnement Azure ou centre de données, isolé du réseau si nécessaire. 1 TP3T500/mois ou 1 TP3T4 800 en une seule fois par type de base de données sélectionné, installable sur deux serveurs.
API REST / Bibliothèque Java / Interface de ligne de commandeAutomatisation du traçage au sein d'une plateforme d'intégration continue ou de donnéesLe même moteur d'analyse, utilisable depuis les pipelines et les applications JVM.

Quelle que soit l'édition que vous utilisez, le niveau de confidentialité reste le même : SQLFlow effectue uniquement une analyse statique du code SQL et ne lit jamais les données des lignes de la table.

Azure SQL, SQL Server ou autre chose ?

Azure SQL et SQL Server local partagent la famille T-SQL, mais utilisent des dialectes distincts dans SQLFlow, chacun avec son propre analyseur syntaxique. Si votre infrastructure repose sur un serveur SQL Server auto-hébergé, Traçabilité des données SQL Server Cette page aborde cet aspect en détail ; les environnements hybrides permettent d’analyser les deux dans un seul référentiel. Et si vous comparez encore les approches (traçabilité native du catalogue, traçabilité basée sur les journaux d’exécution, analyseurs syntaxiques open source), l’étude de meilleurs outils de lignage de données il précise dans quelle catégorie chaque élément s'inscrit et dans quels cas l'analyse SQL est la solution appropriée.

En coulisses, tout cela repose sur le moteur d'analyse SQL général, développé commercialement depuis le milieu des années 2000 et validé à l'aide d'environ 13 600 jeux de données de test SQL par dialecte. La maîtrise du SQL complexe est au cœur du produit.

Foire aux questions

SQLFlow prend-il en charge Azure Synapse SQL ?

Oui. Les pools SQL dédiés de Synapse utilisent T-SQL, et l'analyseur syntaxique de dialecte Azure SQL de SQLFlow prend en charge la famille T-SQL. Vous pouvez analyser les scripts, les vues et les procédures stockées SQL de Synapse de la même manière que le code d'Azure SQL Database.

SQLFlow peut-il retracer la lignée des requêtes SQL dynamiques dans les procédures stockées ?

Oui. Du SQL assemblé à l'intérieur d'une procédure et exécuté avec EXÉCUTIF ou sp_executesql L'erreur est résolue et analysée au lieu d'être ignorée, et sa traçabilité est assurée par les paramètres de procédure et les tables temporaires. SQLFlow génère également un graphe d'appels des invocations de procédure à procédure.

Comment la traçabilité de SQLFlow est-elle intégrée à Microsoft Purview ?

Grâce à un adaptateur d'exportation intégré disponible dans les déploiements d'entreprise, SQLFlow calcule la traçabilité au niveau des colonnes en analysant votre code T-SQL, puis la publie dans Purview afin qu'elle apparaisse dans le catalogue aux côtés des analyses de Purview. Les formats JSON, CSV et API REST sont disponibles pour les intégrations personnalisées.

SQLFlow a-t-il besoin d'accéder aux données de mes tables Azure SQL ?

Non. SQLFlow effectue une analyse statique du code SQL et peut lire les métadonnées du schéma (définitions de tables, de vues et de procédures) via JDBC. Il ne lit jamais les lignes de code. L'édition sur site conserve même le texte SQL au sein de votre réseau.

Qu'apporte la traçabilité au niveau des colonnes par rapport à la vue au niveau des actifs de Purview ?

Précision. La traçabilité au niveau des actifs indique qu'une table alimente un rapport ; la traçabilité au niveau des colonnes précise quelles colonnes alimentent quelles autres, par quelles transformations, et signale en outre les colonnes qui n'influencent les résultats que par le biais de filtres et de jointures. C'est le niveau de granularité requis pour l'analyse d'impact et les questions d'audit.

Combien coûte SQLFlow ?

SQLFlow Cloud est gratuit au départ ; 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é. Plus d’informations sont disponibles sur le site web. page de tarification.

Consultez dès maintenant la lignée de votre Azure SQL.

Collez votre procédure T-SQL la plus complexe dans le visualiseur gratuit, ou contactez-nous pour analyser votre environnement Azure et l'exporter vers Purview.