{"id":6757,"date":"2026-07-12T02:07:05","date_gmt":"2026-07-12T10:07:05","guid":{"rendered":"https:\/\/www.gudusoft.com\/mysql-data-lineage\/"},"modified":"2026-07-12T02:07:05","modified_gmt":"2026-07-12T10:07:05","slug":"mysql-data-lineage","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-mysql\/","title":{"rendered":"Tra\u00e7abilit\u00e9 des donn\u00e9es MySQL\u00a0: Suivi de la lign\u00e9e des colonnes \u00e0 travers les vues et les requ\u00eates ETL SQL"},"content":{"rendered":"<p><strong>Tra\u00e7abilit\u00e9 des donn\u00e9es MySQL<\/strong> Il s&#039;agit de la carte colonne par colonne de la fa\u00e7on dont les donn\u00e9es circulent dans vos vues MySQL. <code>INSERER ... S\u00c9LECTIONNER<\/code> Les t\u00e2ches et les scripts ETL indiquent quelles colonnes sources alimentent chaque colonne cible, et par quels moyens de jointure, de filtrage et d&#039;agr\u00e9gation. MySQL lui-m\u00eame ne peut pas vous fournir ces informations. <code>sch\u00e9ma_information<\/code> d\u00e9crit la structure, et non le flux de donn\u00e9es. <a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Gudu SQLFlow<\/a> Il construit automatiquement la lign\u00e9e en analysant votre SQL MySQL avec un analyseur de dialecte MySQL d\u00e9di\u00e9, produisant un diagramme interactif et explorable jusqu&#039;aux colonnes individuelles.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#eef7fb;padding-top:24px;padding-bottom:24px\"><div class=\"wp-block-group__inner-container\">\n\n<p><strong>V\u00e9rifiez-le sur votre propre SQL\u00a0:<\/strong> collez n&#039;importe quelle vue MySQL ou <code>INSERER ... S\u00c9LECTIONNER<\/code> dans le <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=mysql-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Visualiseur de lignage SQLFlow gratuit<\/a>Choisissez le dialecte MySQL et obtenez un diagramme de lignage au niveau des colonnes en quelques secondes.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi information_schema ne peut pas vous fournir la tra\u00e7abilit\u00e9 des donn\u00e9es MySQL<\/h2>\n\n\n\n<p>MySQL <code>sch\u00e9ma_information<\/code> est un catalogue structurel. Il vous indiquera que <code>revenu_quotidien<\/code> comporte cinq colonnes, leurs types et (via <code>UTILISATION DE LA COLONNE CL\u00c9<\/code>) quelles cl\u00e9s \u00e9trang\u00e8res pointent o\u00f9. Ce qu&#039;il ne vous dira jamais, c&#039;est que <code>revenu_quotidien.revenu_net<\/code> est calcul\u00e9 \u00e0 partir de <code>commandes.montant<\/code> moins <code>commandes.remise<\/code>, filtr\u00e9 sur <code>statut des commandes<\/code>et regroup\u00e9s par <code>clients.r\u00e9gion<\/code>.<\/p>\n\n\n\n<p>Ces connaissances sur le flux de donn\u00e9es r\u00e9sident \u00e0 un seul endroit\u00a0: le texte SQL lui-m\u00eame. Dans un environnement MySQL typique, cela signifie les d\u00e9finitions de vues (<code>information_schema.VIEWS<\/code> stocke le texte, mais rien ne l&#039;interpr\u00e8te), le <code>INSERER ... S\u00c9LECTIONNER<\/code> et <code>MISE \u00c0 JOUR DE CL\u00c9 EN CAS DE DOUBLE<\/code> Les instructions ex\u00e9cut\u00e9es par vos t\u00e2ches ETL, les expressions de colonnes g\u00e9n\u00e9r\u00e9es dans votre DDL et les fichiers de requ\u00eates c\u00f4t\u00e9 application. Pour les transformer en lignage, il faut qu&#039;un \u00e9l\u00e9ment analyse et r\u00e9solve s\u00e9mantiquement le SQL \u2014 en l&#039;\u00e9tendant <code>S\u00c9LECTIONNER *<\/code>SQLFlow permet de suivre les colonnes \u00e0 travers les jointures, les sous-requ\u00eates et les piles de vues.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple concret\u00a0: une table de reporting aliment\u00e9e par INSERT-SELECT<\/h2>\n\n\n\n<p>Voici le type d&#039;instruction ex\u00e9cut\u00e9e chaque nuit dans des milliers de configurations de reporting bas\u00e9es sur MySQL\u00a0: une op\u00e9ration d&#039;insertion\/mise \u00e0 jour qui agr\u00e8ge les commandes dans une table r\u00e9capitulative\u00a0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO daily_revenue (report_date, region, order_count, gross_revenue, net_revenue) SELECT o.order_date, c.region, COUNT(*), SUM(o.amount), SUM(o.amount - o.discount) FROM orders o JOIN customers c ON c.id = o.customer_id WHERE o.status = &#039;completed&#039; GROUP BY o.order_date, c.region ON DUPLICATE KEY UPDATE order_count = VALUES(order_count), gross_revenue = VALUES(gross_revenue), net_revenue = VALUES(net_revenue);<\/code><\/pre>\n\n\n\n<p>Ex\u00e9cutez ce code via SQLFlow et il extraira, pour chaque colonne cible, \u00e0 la fois les colonnes qui fournissent directement sa valeur et les colonnes qui fa\u00e7onnent le r\u00e9sultat sans y figurer\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Colonne cible<\/th><th>Sources directes<\/th><th>Influences indirectes (impact)<\/th><\/tr><\/thead><tbody>\n<tr><td><code>date_de_rapport_de_revenus_quotidiens<\/code><\/td><td><code>commandes.date_de_commande<\/code><\/td><td><code>statut des commandes<\/code><\/td><\/tr>\n<tr><td><code>revenu_quotidien.r\u00e9gion<\/code><\/td><td><code>clients.r\u00e9gion<\/code><\/td><td><code>clients.id<\/code>, <code>commandes.identifiant_client<\/code>, <code>statut des commandes<\/code><\/td><\/tr>\n<tr><td><code>revenu_quotidien.revenu_brut<\/code><\/td><td><code>commandes.montant<\/code> via <code>SOMME()<\/code><\/td><td><code>commandes.date_de_commande<\/code>, <code>clients.r\u00e9gion<\/code> (GROUP BY), cl\u00e9s de jointure, <code>statut des commandes<\/code><\/td><\/tr>\n<tr><td><code>revenu_quotidien.revenu_net<\/code><\/td><td><code>commandes.montant<\/code>, <code>commandes.remise<\/code> via <code>SOMME()<\/code><\/td><td>Identique \u00e0 ci-dessus<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>La distinction dans la troisi\u00e8me colonne est importante. <code>statut des commandes<\/code> n&#039;appara\u00eet jamais dans <code>revenu_quotidien<\/code>Pourtant, modifier la fa\u00e7on dont il est rempli modifie chaque chiffre du rapport. SQLFlow mod\u00e9lise cela. <strong>lign\u00e9e indirecte<\/strong> (colonnes utilis\u00e9es dans <code>O\u00d9<\/code>, <code>REJOINDRE<\/code>, et <code>GROUPER PAR<\/code>) comme un type de relation distinct et activable dans le diagramme \u2014 la plupart des outils de lignage ne font pas du tout cette distinction, et c&#039;est exactement ce dont vous avez besoin pour une analyse d&#039;impact honn\u00eate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tra\u00e7abilit\u00e9 \u00e0 travers les vues MySQL \u2014 y compris les vues empil\u00e9es<\/h2>\n\n\n\n<p>Les vues repr\u00e9sentent le point faible des outils de tra\u00e7abilit\u00e9 au niveau des tables. Un tableau de bord BI affiche\u00a0: <code>v_regional_kpis<\/code>, qui s\u00e9lectionne parmi <code>commandes termin\u00e9es<\/code>, qui s\u00e9lectionne parmi <code>ordres<\/code> et <code>clients<\/code>Pour r\u00e9pondre \u00e0 la question \u00ab\u00a0Qu&#039;est-ce qui alimente cette colonne du tableau de bord\u00a0?\u00a0\u00bb, le moteur de tra\u00e7abilit\u00e9 doit r\u00e9soudre les r\u00e9f\u00e9rences de colonnes \u00e0 travers chaque couche de la pile de vues et d\u00e9velopper chaque \u00e9l\u00e9ment. <code>S\u00c9LECTIONNER *<\/code> par rapport aux d\u00e9finitions sous-jacentes, et emportez les transformations avec elles.<\/p>\n\n\n\n<p>SQLFlow r\u00e9sout les r\u00e9f\u00e9rences de colonnes via les vues, les CTE, les sous-requ\u00eates et l&#039;expansion en \u00e9toile dans le cadre de son analyse s\u00e9mantique. Connectez-le \u00e0 votre sch\u00e9ma via JDBC et il r\u00e9cup\u00e8re automatiquement le DDL et les d\u00e9finitions de vues. Ainsi, le graphe de lignage refl\u00e8te les vues telles qu&#039;elles existent r\u00e9ellement dans la base de donn\u00e9es, et non telles qu&#039;elles existent dans un dossier de migration obsol\u00e8te.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Colonnes g\u00e9n\u00e9r\u00e9es\u00a0: lign\u00e9e au sein d\u2019une seule table<\/h2>\n\n\n\n<p>Les colonnes g\u00e9n\u00e9r\u00e9es par MySQL int\u00e8grent directement le flux de donn\u00e9es dans le DDL\u00a0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CR\u00c9ER TABLE articles_commande ( quantit\u00e9 INT, prix_unitaire DECIMAL(10,2), total_ligne DECIMAL(12,2) AS (quantit\u00e9 * prix_unitaire) STOCK\u00c9 );<\/code><\/pre>\n\n\n\n<p><code>total_ligne<\/code> n&#039;est jamais \u00e9crit par une instruction INSERT, donc toute approche qui se contente d&#039;observer les donn\u00e9es DML ignore compl\u00e8tement sa provenance. \u00c9tant donn\u00e9 que SQLFlow analyse l&#039;expression de la colonne g\u00e9n\u00e9r\u00e9e comme du SQL, <code>total_ligne<\/code> acquiert des avantages de lign\u00e9e appropri\u00e9s \u00e0 partir de <code>quantit\u00e9<\/code> et <code>prix unitaire<\/code>et tout ce qui se trouve en aval et qui lit <code>total_ligne<\/code> tout remonte jusqu&#039;\u00e0 ces deux colonnes physiques.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment cr\u00e9er une tra\u00e7abilit\u00e9 MySQL avec SQLFlow<\/h2>\n\n\n\n<ol><li><strong>R\u00e9cup\u00e9rez le SQL.<\/strong> Collez des d\u00e9clarations ou t\u00e9l\u00e9chargez des fichiers dans <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-cloud\/\">SQLFlow Cloud<\/a>Vous pouvez \u00e9galement connecter votre instance MySQL via JDBC afin que SQLFlow lise directement les d\u00e9finitions DDL et les vues. Les utilisateurs de dbt peuvent importer le manifeste dbt.<\/li>\n<li><strong>Analyser avec le dialecte MySQL.<\/strong> SQLFlow utilise un analyseur syntaxique MySQL sp\u00e9cifique au dialecte (l&#039;un des 39 analyseurs syntaxiques de dialecte, et non une grammaire ANSI g\u00e9n\u00e9rique), donc les constructions sp\u00e9cifiques \u00e0 MySQL comme <code>MISE \u00c0 JOUR DE CL\u00c9 EN CAS DE DOUBLE<\/code>Les identifiants entre guillemets invers\u00e9s et les colonnes g\u00e9n\u00e9r\u00e9es sont analys\u00e9s correctement au lieu d&#039;\u00eatre ignor\u00e9s.<\/li>\n<li><strong>Explorez et exportez.<\/strong> Explorez l&#039;historique de n&#039;importe quelle colonne en amont ou en aval dans le diagramme interactif, activez ou d\u00e9sactivez la tra\u00e7abilit\u00e9 indirecte et exportez le graphique aux formats JSON, CSV ou PNG, ou r\u00e9cup\u00e9rez-le par programmation via l&#039;API REST. Depuis la version 8.2.3, vous pouvez \u00e9galement poser des questions en langage naturel (\u00ab\u00a0quels rapports d\u00e9pendent de\u2026\u00a0\u00bb). <code>clients.r\u00e9gion<\/code>?); chaque tableau et chaque colonne cit\u00e9s par l&#039;IA sont valid\u00e9s par rapport au graphique analys\u00e9 avant d&#039;\u00eatre affich\u00e9s.<\/li><\/ol>\n\n\n\n<p>Le moteur en dessous est <a href=\"https:\/\/www.sqlparser.com\/\">Analyseur SQL g\u00e9n\u00e9ral<\/a>, a commercial SQL compiler front-end developed since the mid-2000s and validated against roughly 13,600 per-dialect SQL test fixtures. Lineage quality is a parsing problem before it is anything else, and that regression corpus is what keeps real-world MySQL \u2014 with all its dialect quirks \u2014 from silently falling out of the graph.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u2019en est-il des options de tra\u00e7abilit\u00e9 MySQL open source\u00a0?<\/h2>\n\n\n\n<p>Les analyseurs syntaxiques open source comme <code>SQL Lineage<\/code> et <code>sqlglot<\/code> Ces outils g\u00e8rent bien les requ\u00eates MySQL SELECT et INSERT individuelles et constituent un bon point de d\u00e9part pour le tra\u00e7age de quelques requ\u00eates simples au sein d&#039;un pipeline Python. Les plateformes de catalogue telles que DataHub et OpenMetadata excellent dans l&#039;organisation et l&#039;affichage du tra\u00e7age une fois celui-ci \u00e9tabli. La difficult\u00e9 r\u00e9side dans la production d&#039;un tra\u00e7age pr\u00e9cis \u00e0 partir de requ\u00eates SQL complexes \u00e0 grande \u00e9chelle\u00a0: r\u00e9solution des colonnes via des vues empil\u00e9es utilisant des m\u00e9tadonn\u00e9es de sch\u00e9ma dynamiques, distinction entre tra\u00e7age direct et indirect, etc. <code>S\u00c9LECTIONNER *<\/code> SQLFlow se concentre sur l&#039;extraction des donn\u00e9es, puis int\u00e8gre les r\u00e9sultats dans les catalogues via ses adaptateurs d&#039;exportation pour DataHub, Microsoft Purview et OpenMetadata.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lorsque MySQL ne repr\u00e9sente qu&#039;une partie du tableau<\/h2>\n\n\n\n<p>MySQL repr\u00e9sente rarement l&#039;int\u00e9gralit\u00e9 du syst\u00e8me. Il s&#039;agit souvent de la source OLTP alimentant un entrep\u00f4t de donn\u00e9es, ou de l&#039;un des moteurs utilis\u00e9s par une couche ETL. SQLFlow analyse 39 dialectes SQL avec la m\u00eame analyse au niveau des colonnes, assurant ainsi la tra\u00e7abilit\u00e9 des requ\u00eates commen\u00e7ant dans MySQL et se terminant dans Snowflake, BigQuery ou d&#039;autres syst\u00e8mes. <a href=\"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-postgresql\/\">PostgreSQL<\/a> Tout est regroup\u00e9 dans un seul graphique. Les d\u00e9ploiements d&#039;entreprise effectuent des analyses par lots sur des environnements de plus de 100 bases de donn\u00e9es et plus d&#039;un million de colonnes, avec des analyses incr\u00e9mentales et un r\u00e9f\u00e9rentiel de lignage persistant. Pour les \u00e9quipes qui ne peuvent pas laisser le texte SQL quitter leur r\u00e9seau, <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-on-premise-version\/\">SQLFlow sur site<\/a> Fonctionne sur Docker ou Kubernetes en mode totalement isol\u00e9 du r\u00e9seau.<\/p>\n\n\n\n<p>Pour voir \u00e0 quoi ressemble le r\u00e9sultat pour diverses requ\u00eates r\u00e9elles (insertions multi-jointures, piles de vues, proc\u00e9dures stock\u00e9es), consultez le <a href=\"https:\/\/www.gudusoft.com\/fr\/data-lineage-examples\/\">exemples de tra\u00e7abilit\u00e9 des donn\u00e9es<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Foire aux questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">La cr\u00e9ation d&#039;un historique MySQL n\u00e9cessite-t-elle un acc\u00e8s \u00e0 mes donn\u00e9es\u00a0?<\/h3>\n\n\n<p>Non. SQLFlow effectue une analyse statique du code SQL et, en option, des m\u00e9tadonn\u00e9es de sch\u00e9ma telles que les d\u00e9finitions de tables et de vues. Il ne lit jamais les donn\u00e9es des lignes de table. Avec l&#039;\u00e9dition sur site, m\u00eame le texte SQL reste au sein de votre r\u00e9seau.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow peut-il retracer la lign\u00e9e \u00e0 travers INSERT \u2026 SELECT \u2026 ON DUPLICATE KEY UPDATE\u00a0?<\/h3>\n\n\n<p>Oui. L&#039;analyseur syntaxique du dialecte MySQL analyse l&#039;int\u00e9gralit\u00e9 de l&#039;instruction\u00a0: chaque colonne cible est li\u00e9e aux colonnes sources de la clause SELECT, y compris les expressions \u00e0 l&#039;int\u00e9rieur des agr\u00e9gats, et la clause upsert est trait\u00e9e dans le cadre du m\u00eame flux de donn\u00e9es.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le sch\u00e9ma information_schema contient-il des informations de lignage\u00a0?<\/h3>\n\n\n<p>Non. <code>sch\u00e9ma_information<\/code> Ce module d\u00e9crit la structure\u00a0: tables, colonnes, types, cl\u00e9s et le texte brut des d\u00e9finitions de vues. Il n\u2019interpr\u00e8te pas le SQL et ne peut donc pas indiquer quelles colonnes sources alimentent une colonne cible donn\u00e9e. L\u2019analyse de la lign\u00e9e n\u00e9cessite l\u2019analyse du SQL des vues et des op\u00e9rations DML, ce que fait SQLFlow.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comment SQLFlow g\u00e8re-t-il les requ\u00eates SELECT * dans les vues MySQL\u00a0?<\/h3>\n\n\n<p>SQLFlow s&#039;\u00e9tend <code>S\u00c9LECTIONNER *<\/code> par rapport au sch\u00e9ma r\u00e9el (r\u00e9cup\u00e9r\u00e9 via JDBC ou fourni sous forme de DDL), de sorte que chaque colonne qui traverse l&#039;\u00e9toile obtient sa propre ar\u00eate de lignage au lieu d&#039;une simple fl\u00e8che vague de table \u00e0 table.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Existe-t-il un moyen gratuit d&#039;essayer la tra\u00e7abilit\u00e9 des donn\u00e9es MySQL\u00a0?<\/h3>\n\n\n<p>Oui. SQLFlow Cloud propose une version gratuite\u00a0: collez votre requ\u00eate SQL MySQL dans votre navigateur et obtenez imm\u00e9diatement le diagramme au niveau des colonnes. La version Premium co\u00fbte $49,99\u00a0\u00a3\/mois\u00a0; la version sur site co\u00fbte $500\u00a0\u00a3\/mois ou $4\u00a0800\u00a0\u00a3 (paiement unique) par type de base de donn\u00e9es s\u00e9lectionn\u00e9. Voir la documentation. <a href=\"https:\/\/www.gudusoft.com\/fr\/tarification\/\">tarification<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Puis-je exporter la lign\u00e9e MySQL dans mon catalogue de donn\u00e9es\u00a0?<\/h3>\n\n\n<p>Oui. Exportez au format JSON, CSV ou PNG, interrogez l&#039;API REST ou utilisez les adaptateurs d&#039;exportation int\u00e9gr\u00e9s pour DataHub, Microsoft Purview et OpenMetadata dans les d\u00e9ploiements d&#039;entreprise.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#60d5f6;padding-top:32px;padding-bottom:32px\"><div class=\"wp-block-group__inner-container\">\n\n<h2 class=\"wp-block-heading\">Cartographiez d\u00e8s maintenant votre flux de donn\u00e9es MySQL<\/h2>\n\n\n<p>Collez une vue ou une requ\u00eate INSERT-SELECT dans le visualiseur gratuit, ou contactez-nous pour analyser l&#039;ensemble de votre infrastructure MySQL.<\/p>\n\n\n<div class=\"wp-block-buttons is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=mysql-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Essayez SQLFlow gratuitement<\/a><\/div>\n<\/div>\n\n\n<div class=\"wp-block-buttons is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.gudusoft.com\/fr\/contact\/\">Demander une d\u00e9monstration pour entreprises<\/a><\/div>\n<\/div>\n\n<\/div><\/div>\n\n\n\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\\\/\\\/schema.org\",\n    \"@graph\": [\n        {\n            \"@type\": \"SoftwareApplication\",\n            \"name\": \"Gudu SQLFlow\",\n            \"applicationCategory\": \"DeveloperApplication\",\n            \"applicationSubCategory\": \"SQL Data Lineage Tool\",\n            \"operatingSystem\": \"Web, Linux, Windows, macOS\",\n            \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/mysql-data-lineage\\\/\",\n            \"description\": \"Automated MySQL data lineage: SQLFlow parses MySQL views, INSERT-SELECT ETL, and generated columns with a dedicated MySQL dialect parser to produce interactive column-level lineage diagrams.\",\n            \"featureList\": \"MySQL dialect parser, column-level lineage, indirect\\\/impact lineage, view resolution, SELECT * expansion, generated column lineage, JDBC metadata import, REST API, DataHub\\\/Purview\\\/OpenMetadata export\",\n            \"softwareVersion\": \"8.2.3\",\n            \"offers\": [\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Free\",\n                    \"price\": \"0\",\n                    \"priceCurrency\": \"USD\"\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Premium\",\n                    \"price\": \"49.99\",\n                    \"priceCurrency\": \"USD\",\n                    \"priceSpecification\": {\n                        \"@type\": \"UnitPriceSpecification\",\n                        \"price\": \"49.99\",\n                        \"priceCurrency\": \"USD\",\n                        \"billingIncrement\": 1,\n                        \"unitText\": \"MONTH\"\n                    }\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow On-Premise\",\n                    \"price\": \"4800\",\n                    \"priceCurrency\": \"USD\"\n                }\n            ],\n            \"publisher\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Gudu Software\",\n                \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/\"\n            }\n        },\n        {\n            \"@type\": \"FAQPage\",\n            \"mainEntity\": [\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does building MySQL lineage require access to my data?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. SQLFlow performs static analysis of SQL code and, optionally, schema metadata such as table and view definitions. It never reads table row data. With the On-Premise edition, even the SQL text stays inside your network.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can SQLFlow trace lineage through INSERT ... SELECT ... ON DUPLICATE KEY UPDATE?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. The MySQL dialect parser analyzes the full statement: each target column is linked to the source columns in the SELECT, including expressions inside aggregates, and the upsert clause is handled as part of the same dataflow.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does information_schema contain lineage information?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. information_schema describes structure: tables, columns, types, keys, and the raw text of view definitions. It does not interpret any SQL, so it cannot tell you which source columns feed a given target column. Lineage requires parsing the view and DML SQL, which is what SQLFlow does.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"How does SQLFlow handle SELECT * in MySQL views?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"SQLFlow expands SELECT * against the actual schema, pulled over JDBC or supplied as DDL, so every column that flows through the star gets its own lineage edge instead of one vague table-to-table arrow.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Is there a free way to try MySQL data lineage?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQLFlow Cloud has a free tier: paste MySQL SQL in the browser and get the column-level diagram immediately. Premium is $49.99\\\/month; On-Premise is $500\\\/month or $4,800 one-time per selected database type.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can I export the MySQL lineage into my data catalog?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Export as JSON, CSV, or PNG, query the REST API, or use the built-in export adapters for DataHub, Microsoft Purview, and OpenMetadata in enterprise deployments.\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>MySQL data lineage is the column-by-column map of how data flows through your MySQL views, INSERT &#8230; SELECT jobs, and ETL scripts: which source columns feed each target column, and through which joins, filters, and aggregations. MySQL itself cannot show you this \u2014 information_schema describes structure, not dataflow. Gudu SQLFlow builds the lineage automatically by parsing your MySQL SQL with a dedicated MySQL dialect parser, producing an interactive, drillable diagram down to individual columns. See it on your own SQL: paste any MySQL view or INSERT &#8230; SELECT into the free SQLFlow lineage visualizer, pick the MySQL dialect, and get\u2026<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"_links":{"self":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6757"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/comments?post=6757"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6757\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/media?parent=6757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}