Le SDK JDBC de DataGalaxy peut lire le SQL qui définit vos procédures stockées et vues, et le transformer en lignage : quelles tables une procédure lit et écrit, et de quelles colonnes sources provient chaque colonne d'une vue.
Il s'agit d'un parseur « best-effort » basé sur des expressions régulières. Il extrait ce qu'il peut identifier avec certitude, reste silencieux dans le cas contraire, et ne provoque jamais d'échec d'import.
Le lignage est disponible uniquement en mode URN.
Connecteurs compatibles : Azure SQL, Oracle, PostgreSQL, MySQL, SQL Server, MariaDB
TABLE DES MATIÈRES
- Ce que fait cette fonctionnalité
- Ce que vous obtenez
- Capacités supportées
- Ce qui n'est pas supporté
- Limitations connues
- Comportement du périmètre
- Quand utiliser cette fonctionnalité
- Quand envisager une alternative avancée
Ce que fait cette fonctionnalité
Lorsque la case Get Lineage (désactivée par défaut) est cochée, DataGalaxy analyse les définitions SQL des procédures stockées et des vues, puis génère le lignage à partir du SQL qu'il peut interpréter. Cela inclut :
- Le lignage des procédures stockées
- Le lignage des vues
Ce que vous obtenez
| Objet source | Émis sous forme de | Granularité |
| Procédure stockée | Éléments de traitement de données sur la procédure (source → cible) | Au niveau colonne lorsque possible, sinon au niveau table, déterminé par instruction |
| Vue | Liens « Uses » (from = la vue, to = ce qu'elle lit) | Au niveau colonne lorsque possible, sinon un repli au niveau table pour l'ensemble de la vue |
Note : Le parseur tente d'abord un lignage au niveau colonne. Si le pattern SQL n'est pas reconnu à ce niveau, il se rabat sur un lignage au niveau table.
Capacités supportées
- Lignage au niveau table pour INSERT [INTO], UPDATE, DELETE FROM, MERGE [INTO] et TRUNCATE TABLE en écriture, et FROM, JOIN et une source MERGE … USING en lecture.
- Lignage au niveau colonne pour les vues, et pour INSERT INTO <table> (<columns>) SELECT … dans les procédures stockées.
- Instructions SQL multiples dans les procédures stockées. Chaque instruction est analysée séparément : si l'une d'entre elles ne peut pas être parsée, les autres produisent tout de même du lignage.
- Instructions en lecture seule ou en écriture seule. Une instruction SELECT seule produit un élément en entrée uniquement ; un INSERT … VALUES ou un TRUNCATE produit un élément en sortie uniquement.
- Expressions de table communes (CTEs) — clauses WITH, y compris les CTEs chaînées et récursives.
- Jointures entre parenthèses, telles que FROM a JOIN (b JOIN c ON …) ON ….
- Sous-requêtes. Les tables utilisées dans les requêtes imbriquées sont incluses dans le lignage.
- Opérations ensemblistes telles que UNION, EXCEPT et INTERSECT, avec un lignage couvrant toutes les tables participantes.
- Alias de tables, avec ou sans le mot-clé AS, reconnus quelle que soit la casse.
- Alias et identifiants entre guillemets, y compris les noms contenant des espaces ou des mots-clés SQL réservés.
- Noms de tables non qualifiés, résolus en utilisant le schéma de la vue ou de la procédure courante.
- Vues et procédures situées directement sous une base de données, même en l'absence de schéma.
Ce qui n'est pas supporté
- Fonctions table (table-valued functions)
- Noms de tables dynamiques
- Sous-requêtes écrites directement dans un FROM, telles que FROM (SELECT …) x
Limitations connues
- Correspondance sensible à la casse. Les références aux tables et colonnes doivent respecter la casse de l'objet importé. Les alias et noms de CTEs sont insensibles à la casse.
- Le lignage s'arrête aux frontières de l'import. Les objets situés en dehors du périmètre d'import ne génèrent aucun lien. Élargir le périmètre peut révéler davantage de lignage.
- Préfixez les colonnes avec leur alias de table. Si votre requête joint plusieurs tables, préfixez systématiquement les colonnes avec leur alias de table. Le parseur ne devinera pas à quelle table appartient une colonne.
- Pas de définition = pas de lignage. Si le connecteur ne retourne aucun corps SQL pour une procédure ou une vue, rien n'est parsé.
Comportement du périmètre
Le lignage est restreint aux objets inclus dans le périmètre d'import. Si le SQL référence des objets en dehors du périmètre sélectionné, ces objets sont exclus du résultat du lignage.
Quand utiliser cette fonctionnalité
Utilisez cette fonctionnalité lorsque vous souhaitez :
- Extraire le lignage de base pour des procédures stockées ou des vues
- Obtenir de la visibilité sur les transformations SQL courantes
Quand envisager une alternative avancée
Si vous avez besoin d'une couverture SQL plus large, d'un lignage au niveau colonne plus précis, ou du support de patterns SQL plus complexes, ce parseur intégré peut ne pas suffire. Dans ce cas, des options payantes avancées sont disponibles pour une extraction de lignage de plus haute précision. Contactez votre AM/CSM pour discuter de la solution la mieux adaptée à vos besoins.