{"id":6794,"date":"2026-07-12T04:30:28","date_gmt":"2026-07-12T12:30:28","guid":{"rendered":"https:\/\/www.gudusoft.com\/sql-data-lineage-platform\/"},"modified":"2026-07-12T04:30:28","modified_gmt":"2026-07-12T12:30:28","slug":"sql-data-lineage-platform","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/fr\/sql-data-lineage-platform\/","title":{"rendered":"SQL Data Lineage Platform (SDLP)"},"content":{"rendered":"<p><strong>SDLP (SQL Data Lineage Platform)<\/strong> is Gudu Software&#8217;s enterprise lineage system of record. It computes column-level data lineage for an entire SQL estate by parsing the estate&#8217;s actual code \u2014 stored procedures, views, functions, triggers, jobs \u2014 and stores every derived lineage edge as an auditable <strong>fact<\/strong> in a governed repository, together with a complete ledger of everything it could <em>not<\/em> resolve. The result is lineage you can defend in front of a regulator: facts plus rejects always account for 100% of the estate, nothing is silently dropped, and nothing is fabricated.<\/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>Where SDLP sits in the SQLFlow family:<\/strong> it is built on the same General SQL Parser core as <a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Gudu SQLFlow<\/a>, but solves a different problem. SQLFlow shows you the lineage of the SQL you give it; SDLP maintains the attested lineage record of everything your estate contains. The comparison below makes the split precise.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">SQLFlow or SDLP \u2014 which one do you need?<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Gudu SQLFlow<\/a> is an interactive lineage <em>analysis and visualization engine<\/em>. You give it SQL \u2014 pasted, uploaded, pulled from a database, a dbt project, or query history, in any of 39 dialects \u2014 and it renders an interactive column-level lineage diagram in seconds. It is the right tool for data engineers and analysts who need to understand, debug, and document data flows, and it ships as <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-cloud\/\">SQLFlow Cloud<\/a>, <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-on-premise-version\/\">SQLFlow sur site<\/a>, a REST API, and a Java library.<\/p>\n\n\n\n<p>SDLP is an enterprise lineage <em>platform<\/em> \u2014 a system of record. It does not analyze one script at a time: it exports a whole database estate (metadata plus every module&#8217;s SQL source), scans it as a tracked batch, and merges the results into a canonical repository of lineage facts with evidence, quality scores, governance, access control, and a tamper-evident audit trail. It is the right tool for data governance teams at banks, insurers, and other regulated enterprises who must <em>prove<\/em> where data comes from \u2014 continuously, at estate scale, with the gaps accounted for.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead><tr><th><\/th><th>Gudu SQLFlow<\/th><th>SDLP<\/th><\/tr><\/thead>\n<tbody>\n<tr><td><strong>What it is<\/strong><\/td><td>Interactive lineage analysis &amp; visualization engine<\/td><td>Enterprise lineage system of record with governance<\/td><\/tr>\n<tr><td><strong>You give it<\/strong><\/td><td>SQL scripts, a database connection, dbt artifacts, query history<\/td><td>A whole SQL estate, exported as a metadata + source bundle<\/td><\/tr>\n<tr><td><strong>You get<\/strong><\/td><td>An interactive column-level lineage diagram, exportable as JSON\/CSV\/PNG<\/td><td>A governed repository of auditable lineage facts, a reject ledger, quality-scored scan batches, and regulator-ready exports<\/td><\/tr>\n<tr><td><strong>Unresolved SQL<\/strong><\/td><td>Best-effort diagram of what was parsed<\/td><td>Recorded in a reject ledger with reason code and evidence \u2014 facts + rejects = 100% of the estate<\/td><\/tr>\n<tr><td><strong>Dialect coverage<\/strong><\/td><td>39 SQL dialects<\/td><td>Microsoft SQL Server estates end-to-end today; further estate types on the roadmap, powered by the same parser family<\/td><\/tr>\n<tr><td><strong>Typical user<\/strong><\/td><td>Data engineers, analysts, architects<\/td><td>Data governance teams, scan operators, stewards, auditors<\/td><\/tr>\n<tr><td><strong>Governance<\/strong><\/td><td>\u2014<\/td><td>PII classification, sensitive-flow impact analysis, baselines, role-based access, hash-chained audit trail<\/td><\/tr>\n<tr><td><strong>Id\u00e9al pour<\/strong><\/td><td>Understanding and documenting data flows during development<\/td><td>Regulatory lineage (BCBS 239-style), enterprise catalogs, audit evidence<\/td><\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<p>The two products are complementary: teams typically use SQLFlow during development to understand and fix data flows, and SDLP in production to maintain the attested lineage record the organization reports against.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Honest lineage: reject, don&#8217;t guess<\/h2>\n\n\n\n<p>Most lineage tools fail audits on <em>silent gaps<\/em>: whatever the tool did not understand simply is not there, and nobody can say how much is missing. SDLP&#8217;s founding doctrine is different \u2014 <strong>reject, don&#8217;t guess, and account for 100%<\/strong>. Every statement or reference the scanner cannot honestly resolve becomes a row in the reject ledger with a machine-readable reason code, a severity, and the raw SQL evidence. Ambiguity is never coerced into a plausible-looking edge, and out-of-estate references are classified as external rather than guessed at. &#8220;Facts plus rejects equals the whole estate&#8221; is a checkable equation, not a slogan.<\/p>\n\n\n\n<p>The same honesty runs through the data model. Every lineage fact carries a <strong>role<\/strong> that states <em>how<\/em> the source column affects the target: value-carrying roles (DIRECT, TRANSFORM, AGGREGATE, DERIVED) mean source data actually lands in the target; influence-only roles (FILTER, JOIN, CONDITION) mean the source column shaped the result without its value ever arriving. That distinction is the difference between &#8220;this report <em>contains<\/em> customer PII&#8221; and &#8220;this report was merely <em>filtr\u00e9 par<\/em> a PII column&#8221; \u2014 exactly what a privacy officer or regulator needs, and SDLP never overstates the former when only the latter is true.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment \u00e7a marche<\/h2>\n\n\n\n<ol><li><strong>Export.<\/strong> A single self-contained exporter connects to the source server with a read-only login and streams the whole estate \u2014 catalog metadata and every module&#8217;s SQL text \u2014 into a sharded bundle. It reads <em>metadata only<\/em>, never table data, and runs inside your network zone; the bundle is the only thing that leaves it.<\/li>\n<li><strong>Scan.<\/strong> The scanner parses and analyzes every module with the General SQL Parser, normalizes the results, and merges them into the canonical repository as a tracked, resumable batch. An interrupted scan resumes from its checkpoint ledger instead of starting over.<\/li>\n<li><strong>Validate.<\/strong> An independent validator \u2014 a deliberately separate implementation \u2014 recomputes the identity hash of every stored row and runs a rule catalog that condenses into a 0\u2013100 quality score per batch: one number to judge every scan by.<\/li>\n<li><strong>Consume.<\/strong> A web catalog serves search, interactive lineage graphs, and governance workflows; the Export Center delivers CSV, JSONL, or Parquet to downstream systems, including a Microsoft Purview-ready lineage CSV.<\/li><\/ol>\n\n\n\n<p>Every step works from the command line, from the browser, or mixed \u2014 all three routes read and write the same repository under the same identity contract, so choosing an interface never forks the data. Scan operations teams typically run scheduled scans by CLI, analysts and stewards live in the web UI, and downstream feeds run against the export API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Evidence you can hand to an auditor<\/h2>\n\n\n\n<p>Every fact in the repository traces to its origin through a tamper-evident chain: fact \u2192 occurrence \u2192 a byte-precise locator into the exported source bundle, re-verified against a SHA-256 content hash on every read. SQL text is not duplicated into the repository; the bundle is the single system of record, so edited or drifted source is detected rather than silently served. In the web catalog, &#8220;View SQL evidence&#8221; opens the exact statement span, highlighted in the original module source and hash-verified live.<\/p>\n\n\n\n<ul><li><strong>Hash-chained audit trail:<\/strong> every classification, export, and recompute lands in an append-only event log with a hash chain, so tampering with the trail itself is detectable.<\/li>\n<li><strong>Independent verification:<\/strong> auditors can run the standalone validator against the repository without trusting the scanner that wrote it \u2014 including recomputing the identity of every single row.<\/li>\n<li><strong>Baselines:<\/strong> freeze the lineage &#8220;as accepted on date X&#8221; and attest against it. A regulator asks about the lineage behind the Q4 report, not whatever last night&#8217;s scan produced; baselines make that a first-class object.<\/li>\n<li><strong>100% accounting on display:<\/strong> the reject ledger is an export like any other \u2014 the complete list of what was not resolved and why is part of the deliverable, not a secret.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Governance built in<\/h2>\n\n\n\n<p>Data stewards classify endpoints \u2014 tables, views, columns \u2014 with sensitivity classes such as PII. The propagation engine then computes where classified data flows downstream and, crucially, <em>how<\/em>: each finding carries an honest impact type (<code>CONTAINS_DATA<\/code>, <code>FILTERED_BY<\/code>, <code>JOINED_WITH<\/code>, <code>INFLUENCED_BY<\/code>) derived from the lineage roles along the path, with owner and steward attribution so a finding lands on a person&#8217;s desk. Every steward action is attributed and audited.<\/p>\n\n\n\n<p>Access control has two independent axes: seven roles define what a user may do (read the catalog, steward classifications, operate scans, administer sources), and workspace memberships define where. Workspaces are hard isolation boundaries \u2014 facts, exports, governance records, and audit events never leak across them \u2014 and production estates carry an extra server-side gate that separates who may scan production from who may scan anything else. Identity can be fronted by your IdP via OIDC.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Deployment and scale<\/h2>\n\n\n\n<p>SDLP deploys on-premise, on Linux and Windows equally, and its only software prerequisite is Java. The lineage repository has two equally supported backends chosen by one config block: a SQL Server database for shared production deployments, or a zero-install embedded store \u2014 a local directory, no database server, no passwords \u2014 that takes a first scan from download to lineage in about 15 minutes. Everything runs fully air-gapped: no cloud dependency, no outbound connection, and the source-side login never needs read access to table data.<\/p>\n\n\n\n<p>The platform is engineered for estate scale: a full scan of a 122-database estate \u2014 roughly 29,000 analysis units producing about 450,000 column-level lineage facts \u2014 completes in under two hours on a co-located 4-core server, and re-scans merge into the same canonical store, so re-observed facts stay single facts with their history intact. Incremental delta exports answer &#8220;what changed since the last scan&#8221; without diffing files by hand.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Feeding Microsoft Purview and other downstream systems<\/h2>\n\n\n\n<p>The Export Center delivers eight export types over the repository \u2014 field-level lineage with evidence, transformation logic, procedure impact, coverage blind spots, incremental deltas, rejects, batch quality, and a <strong>Purview-ready lineage CSV<\/strong> \u2014 each in CSV, JSONL, or Parquet. The Purview export is contract-versioned and engineered for ingestion: one row per active fact, dotted qualified names plus separate name parts, the lineage role, a guaranteed single-line transformation expression, and a stable fact GUID to key idempotent upserts against the Purview Atlas API. Large exports run as asynchronous jobs that survive a closed browser.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Foire aux questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">How is SDLP different from Gudu SQLFlow?<\/h3>\n\n\n\n<p>SQLFlow is an interactive analysis tool: you give it SQL and it draws the column-level lineage diagram, in any of 39 dialects. SDLP is an enterprise platform built on the same parser: it scans entire database estates on a schedule, stores every lineage edge as an auditable fact in a governed repository, records everything it could not resolve in a reject ledger, and adds classification, sensitive-flow analysis, role-based access, baselines, and a hash-chained audit trail. Use SQLFlow to understand data flows; use SDLP to maintain the lineage record your organization attests to.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which databases does SDLP support?<\/h3>\n\n\n\n<p>SDLP supports Microsoft SQL Server estates end-to-end today \u2014 exporter, scanner, and repository. Additional estate types are on the roadmap and inherit dialect support from the same General SQL Parser family that powers SQLFlow&#8217;s 39 dialects. It can also scan directories of SQL files directly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does SDLP read my data?<\/h3>\n\n\n\n<p>No. SDLP works by static analysis of SQL code. The exporter reads catalog metadata and module source text with a read-only login that needs no access to table rows, and the scanner works entirely from that exported bundle. There is no code path that reads business data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can SDLP run in an air-gapped environment?<\/h3>\n\n\n\n<p>Yes. SDLP is on-premise software with no cloud dependency and no outbound connections. With the embedded repository backend it needs nothing but Java and a local directory, which also makes it practical on jump hosts and isolated scan machines.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What makes SDLP&#8217;s lineage audit-grade?<\/h3>\n\n\n\n<p>Three properties working together: 100% accounting (facts plus a reasoned reject ledger cover the whole estate), a tamper-evident evidence chain (every fact resolves to a hash-verified span of the original SQL), and independent verification (a separate validator tool recomputes every stored row&#8217;s identity without trusting the scanner). An auditor can walk from any number in a report to the exact SQL statement that produced it \u2014 live.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#0b2540;padding-top:40px;padding-bottom:40px\"><div class=\"wp-block-group__inner-container\">\n\n<p class=\"has-text-color has-text-align-center\" style=\"color:#ffffff\"><strong>See SDLP on your own estate.<\/strong> We provide a ready-to-run evaluation package with a 15-minute quickstart \u2014 no database server required for the first scan.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-2\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.gudusoft.com\/fr\/contact\/\">Request a demo<\/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\": \"SDLP \\u2014 SQL Data Lineage Platform\",\n            \"applicationCategory\": \"BusinessApplication\",\n            \"operatingSystem\": \"Linux, Windows\",\n            \"description\": \"Enterprise SQL data lineage platform: scans whole database estates, stores column-level lineage as auditable facts with a reject ledger, governance, and Microsoft Purview-ready exports.\",\n            \"publisher\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Gudu Software\"\n            },\n            \"offers\": {\n                \"@type\": \"Offer\",\n                \"availability\": \"https:\\\/\\\/schema.org\\\/InStock\",\n                \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/contact\\\/\"\n            }\n        },\n        {\n            \"@type\": \"FAQPage\",\n            \"mainEntity\": [\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"How is SDLP different from Gudu SQLFlow?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"SQLFlow is an interactive analysis tool: you give it SQL and it draws the column-level lineage diagram, in any of 39 dialects. SDLP is an enterprise platform built on the same parser: it scans entire database estates on a schedule, stores every lineage edge as an auditable fact in a governed repository, records everything it could not resolve in a reject ledger, and adds classification, sensitive-flow analysis, role-based access, baselines, and a hash-chained audit trail.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Which databases does SDLP support?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"SDLP supports Microsoft SQL Server estates end-to-end today \\u2014 exporter, scanner, and repository. Additional estate types are on the roadmap and inherit dialect support from the same General SQL Parser family that powers SQLFlow's 39 dialects. It can also scan directories of SQL files directly.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SDLP read my data?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. SDLP works by static analysis of SQL code. The exporter reads catalog metadata and module source text with a read-only login that needs no access to table rows. There is no code path that reads business data.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can SDLP run in an air-gapped environment?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SDLP is on-premise software with no cloud dependency and no outbound connections. With the embedded repository backend it needs nothing but Java and a local directory.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"What makes SDLP's lineage audit-grade?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"100% accounting (facts plus a reasoned reject ledger cover the whole estate), a tamper-evident evidence chain (every fact resolves to a hash-verified span of the original SQL), and independent verification (a separate validator recomputes every stored row's identity without trusting the scanner).\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>SDLP (SQL Data Lineage Platform) is Gudu Software&#8217;s enterprise lineage system of record. It computes column-level data lineage for an entire SQL estate by parsing the estate&#8217;s actual code \u2014 stored procedures, views, functions, triggers, jobs \u2014 and stores every derived lineage edge as an auditable fact in a governed repository, together with a complete ledger of everything it could not resolve. The result is lineage you can defend in front of a regulator: facts plus rejects always account for 100% of the estate, nothing is silently dropped, and nothing is fabricated. Where SDLP sits in the SQLFlow family: it\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\/6794"}],"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=6794"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6794\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/media?parent=6794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}