{"id":6764,"date":"2026-07-12T02:08:07","date_gmt":"2026-07-12T10:08:07","guid":{"rendered":"https:\/\/www.gudusoft.com\/duckdb-data-lineage\/"},"modified":"2026-07-12T02:08:07","modified_gmt":"2026-07-12T10:08:07","slug":"duckdb-data-lineage","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/fr\/lignee-des-donnees-duckdb\/","title":{"rendered":"Tra\u00e7abilit\u00e9 des donn\u00e9es DuckDB\u00a0: Tra\u00e7abilit\u00e9 au niveau des colonnes pour l\u2019analyse en temps r\u00e9el"},"content":{"rendered":"<p><strong>Tra\u00e7abilit\u00e9 des donn\u00e9es DuckDB<\/strong> Il s&#039;agit de la carte au niveau des colonnes de la fa\u00e7on dont les donn\u00e9es circulent dans votre requ\u00eate SQL DuckDB\u00a0: quels fichiers Parquet et quelles tables sources alimentent chaque table d\u00e9riv\u00e9e, et par quels moyens de jointure, de conversion, de filtrage et d&#039;agr\u00e9gation. <strong>Gudu SQLFlow<\/strong> il construit automatiquement cette carte\u00a0: il analyse vos scripts DuckDB avec un analyseur de dialecte DuckDB d\u00e9di\u00e9 et g\u00e9n\u00e8re un diagramme de lignage interactif, sans ex\u00e9cuter une seule requ\u00eate ni toucher \u00e0 vos donn\u00e9es.<\/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>Essayez-le maintenant\u00a0:<\/strong> collez n&#039;importe quelle requ\u00eate DuckDB dans le <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=duckdb-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Visualiseur de lign\u00e9es SQL en ligne gratuit<\/a>S\u00e9lectionnez le dialecte DuckDB et obtenez un diagramme de tra\u00e7abilit\u00e9 au niveau des colonnes en quelques secondes. Une version gratuite est disponible pour un usage individuel.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi les pipelines DuckDB m\u00e9ritent une v\u00e9ritable tra\u00e7abilit\u00e9<\/h2>\n\n\n\n<p>DuckDB est discr\u00e8tement devenu une infrastructure de donn\u00e9es de premier plan. Il g\u00e8re la couche de transformation dans <code>dbt-duckdb<\/code> Ces projets alimentent des analyses locales qui sont ensuite transf\u00e9r\u00e9es vers l&#039;entrep\u00f4t de donn\u00e9es, sont int\u00e9gr\u00e9s aux applications et aux notebooks, et servent de plus en plus de moteur de calcul pour les lacs de donn\u00e9es Parquet. Le SQL de ces pipelines prend les m\u00eames types de d\u00e9cisions que le SQL de l&#039;entrep\u00f4t de donn\u00e9es\u00a0: il calcule le chiffre d&#039;affaires, filtre les clients et construit les tables consult\u00e9es par le tableau de bord.<\/p>\n\n\n\n<p>Pourtant, les projets DuckDB ne b\u00e9n\u00e9ficient g\u00e9n\u00e9ralement pas de la m\u00eame rigueur en mati\u00e8re de tra\u00e7abilit\u00e9 qu&#039;un entrep\u00f4t de donn\u00e9es. Il y a une raison structurelle \u00e0 cela\u00a0: la plupart des outils de tra\u00e7abilit\u00e9 supposent un serveur de base de donn\u00e9es. La tra\u00e7abilit\u00e9 bas\u00e9e sur les journaux d&#039;ex\u00e9cution collecte les journaux de requ\u00eates depuis un moteur central\u00a0; les plateformes ax\u00e9es sur le catalogue explorent les m\u00e9tadonn\u00e9es d&#039;un serveur. DuckDB est ex\u00e9cut\u00e9 en interne\u00a0: il n&#039;y a souvent ni serveur, ni historique de requ\u00eates partag\u00e9, ni agent de catalogue \u00e0 installer. La logique de transformation r\u00e9side dans\u2026 <code>.sql<\/code> fichiers, mod\u00e8les dbt et scripts enregistr\u00e9s dans un d\u00e9p\u00f4t.<\/p>\n\n\n\n<p>L&#039;analyse statique SQL s&#039;impose donc comme la m\u00e9thode naturelle, et souvent la seule, pour \u00e9tablir la tra\u00e7abilit\u00e9 des donn\u00e9es DuckDB. SQLFlow analyse directement le texte SQL, garantissant ainsi un fonctionnement identique, que la requ\u00eate soit ex\u00e9cut\u00e9e sur un ordinateur portable, dans le cadre d&#039;une t\u00e2che d&#039;int\u00e9gration continue ou au sein d&#039;un processus applicatif.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment SQLFlow construit la tra\u00e7abilit\u00e9 des donn\u00e9es DuckDB<\/h2>\n\n\n\n<p>SQLFlow est construit sur le <a href=\"https:\/\/www.sqlparser.com\/\">Analyseur SQL g\u00e9n\u00e9ral (GSP)<\/a>DuckDB est un compilateur SQL commercial, une interface frontale d\u00e9velopp\u00e9e depuis le milieu des ann\u00e9es 2000 et valid\u00e9e \u00e0 l&#039;aide d&#039;environ 13\u00a0600 jeux de tests SQL par dialecte. DuckDB est l&#039;un des <a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">39 bases de donn\u00e9es avec un analyseur syntaxique sp\u00e9cifique au dialecte<\/a> \u2014 et non une grammaire ANSI g\u00e9n\u00e9rique \u00e0 laquelle on aurait greff\u00e9 la syntaxe de DuckDB. Le processus\u00a0:<\/p>\n\n\n\n<ol><li><strong>Ing\u00e9rer.<\/strong> Collez du code SQL DuckDB, t\u00e9l\u00e9chargez vos fichiers de script ou importez un manifeste dbt depuis un <code>dbt-duckdb<\/code> projet.<\/li>\n<li><strong>Analyser et r\u00e9soudre.<\/strong> GSP construit un mod\u00e8le s\u00e9mantique complet de chaque instruction, r\u00e9solvant chaque r\u00e9f\u00e9rence de colonne via des CTE, des sous-requ\u00eates, des vues, et <code>S\u00c9LECTIONNER *<\/code> expansion.<\/li>\n<li><strong>Extraire le flux de donn\u00e9es.<\/strong> L&#039;analyseur de flux de donn\u00e9es enregistre, pour chaque colonne de sortie, exactement quelles colonnes sources l&#039;alimentent et par quelles fonctions, conversions, jointures et op\u00e9rateurs ensemblistes.<\/li>\n<li><strong>Visualisez et exportez.<\/strong> Explorez le diagramme interactif en profondeur, suivez n&#039;importe quelle colonne en amont ou en aval, et exportez le graphique au format JSON, CSV ou PNG, ou r\u00e9cup\u00e9rez-le via l&#039;API REST.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Exemple\u00a0: lign\u00e9e via read_parquet() et CTAS<\/h2>\n\n\n\n<p>Le mod\u00e8le signature de DuckDB est <code>CR\u00c9ER UNE TABLE COMME S\u00c9LECTION<\/code> Lecture directe des fichiers \u2014 sans chargement interm\u00e9diaire, les fichiers Parquet <em>sont<\/em> la source. Une configuration de reporting typique\u00a0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CR\u00c9ER TABLE reporting.daily_revenue AS SELECT CAST(o.order_ts AS DATE) AS order_date, c.region AS region, SUM(o.amount) AS revenue, COUNT(DISTINCT o.customer_id) AS buyers FROM read_parquet(&#039;lake\/orders\/*.parquet&#039;) AS o JOIN dim_customers AS c ON o.customer_id = c.customer_id WHERE o.status = &#039;completed&#039; GROUP BY 1, 2;<\/code><\/pre>\n\n\n\n<p>L&#039;analyseur DuckDB de SQLFlow comprend <code>lire_parquet()<\/code> En tant que source de table, le chemin Parquet appara\u00eet comme un n\u0153ud r\u00e9el dans le graphe de lignage et non comme un appel de fonction non r\u00e9solu. \u00c0 partir de cette seule instruction, il extrait\u00a0:<\/p>\n\n\n\n<ul><li><code>revenu_quotidien.revenu<\/code> est aliment\u00e9 par <code>o.montant<\/code> de la source Parquet, \u00e0 travers <code>SOMME()<\/code>.<\/li>\n<li><code>revenu_quotidien.date_de_commande<\/code> est aliment\u00e9 par <code>o.order_ts<\/code>, par l&#039;interm\u00e9diaire d&#039;un <code>CASTING<\/code> \u00e0 <code>DATE<\/code>.<\/li>\n<li><code>revenu_quotidien.r\u00e9gion<\/code> vient directement de <code>dim_customers.r\u00e9gion<\/code>.<\/li>\n<li><code>o.statut<\/code>, <code>o.customer_id<\/code>, et <code>c.customer_id<\/code> n&#039;apparaissent jamais dans le r\u00e9sultat final, mais ils le fa\u00e7onnent, c&#039;est pourquoi SQLFlow les enregistre comme lign\u00e9e indirecte (plus de d\u00e9tails ci-dessous).<\/li><\/ul>\n\n\n\n<p>Encha\u00eenez cinquante de ces instructions dans un projet dbt ou un script nocturne et le graphique se complexifie\u00a0: SQLFlow assemble chaque table interm\u00e9diaire afin que vous puissiez retracer un num\u00e9ro de tableau de bord jusqu\u2019\u00e0 la colonne Parquet exacte dont il \u00e9tait issu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lign\u00e9e directe vs lign\u00e9e indirecte<\/h2>\n\n\n\n<p>Dans l&#039;exemple ci-dessus, <code>o.statut<\/code> n&#039;appara\u00eet jamais dans <code>revenu_quotidien<\/code>, mais changeant la fa\u00e7on dont <code>statut<\/code> Le fait que cette variable soit renseign\u00e9e modifierait silencieusement chaque chiffre d&#039;affaires. SQLFlow mod\u00e9lise cela comme suit\u00a0: <strong>lign\u00e9e indirecte (d&#039;impact)<\/strong>: colonnes utilis\u00e9es dans <code>O\u00d9<\/code>, <code>REJOINDRE<\/code>, et <code>GROUPER PAR<\/code> Les clauses et les agr\u00e9gats internes forment un type de relation distinct, activable s\u00e9par\u00e9ment, parall\u00e8lement au flux de donn\u00e9es direct. La plupart des outils concurrents ne font pas cette distinction, ce qui signifie que leur analyse d&#039;impact passe \u00e0 c\u00f4t\u00e9 des d\u00e9pendances \u00e0 l&#039;origine de bogues de donn\u00e9es silencieux.<\/p>\n\n\n\n<p>Pour un pipeline DuckDB, cela est doublement important\u00a0: les sources bas\u00e9es sur des fichiers n\u2019ont ni cl\u00e9s \u00e9trang\u00e8res ni contraintes pour vous avertir, donc le SQL lui-m\u00eame est le seul endroit o\u00f9 ces d\u00e9pendances sont enregistr\u00e9es.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lign\u00e9e des projets dbt-duckdb<\/h2>\n\n\n\n<p><code>dbt-duckdb<\/code> est l&#039;une des mani\u00e8res les plus courantes dont DuckDB est ex\u00e9cut\u00e9 en production, et le DAG de dbt s&#039;arr\u00eate au niveau du mod\u00e8le\u00a0: il vous indique <code>revenu_quotidien<\/code> d\u00e9pend de <code>stg_orders<\/code>, et non les colonnes qui contiennent la d\u00e9pendance. SQLFlow importe votre manifeste dbt et produit <strong>niveau de colonne<\/strong> tra\u00e7abilit\u00e9 \u00e0 travers les mod\u00e8les compil\u00e9s, vous pouvez donc r\u00e9pondre \u00e0 la question \u00ab\u00a0quels march\u00e9s font\u00a0?\u00a0\u00bb <code>stg_orders.montant<\/code> \u00ab\u00a0Vraiment nourrir\u00a0?\u00a0\u00bb avant de le modifier.<\/p>\n\n\n\n<p>Cette m\u00eame analyse s&#039;av\u00e8re payante au moment de la migration. Les \u00e9quipes r\u00e9alisent fr\u00e9quemment des prototypes sur DuckDB, puis transf\u00e8rent leurs mod\u00e8les vers une autre plateforme. <a href=\"https:\/\/www.gudusoft.com\/fr\/clickhouse-data-lineage\/\">ClickHouse<\/a>, <a href=\"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-postgresql\/\">PostgreSQL<\/a>ou un entrep\u00f4t de donn\u00e9es dans le cloud. Comme SQLFlow analyse tous ces \u00e9l\u00e9ments \u00e0 l&#039;aide de grammaires sp\u00e9cifiques \u00e0 chaque dialecte, vous pouvez cartographier le v\u00e9ritable graphe de d\u00e9pendances avant la migration et v\u00e9rifier qu&#039;aucun \u00e9l\u00e9ment n&#039;a \u00e9t\u00e9 orphelin apr\u00e8s, en utilisant un seul outil et un seul mod\u00e8le de tra\u00e7abilit\u00e9 des deux c\u00f4t\u00e9s.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quelles sont les options pour la tra\u00e7abilit\u00e9 de DuckDB\u00a0?<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Approche<\/th><th>Bon en<\/th><th>L&#039;\u00e9cart pour DuckDB<\/th><\/tr><\/thead><tbody>\n<tr><td>Documentation manuelle<\/td><td>Saisie des intentions et du contexte commercial<\/td><td>P\u00e9rissable d\u00e8s le lendemain de sa r\u00e9daction ; aucun d\u00e9tail de colonne<\/td><\/tr>\n<tr><td>Analyseurs syntaxiques open source (<code>SQL Lineage<\/code>, <code>sqlglot<\/code>)<\/td><td>Analyse des requ\u00eates individuelles dans un flux de travail Python\u00a0; gratuit<\/td><td>Vous assemblez vous-m\u00eame la r\u00e9solution, l&#039;expansion des \u00e9toiles, la jonction des d\u00e9clarations crois\u00e9es et la visualisation ; la lign\u00e9e indirecte est de votre responsabilit\u00e9.<\/td><\/tr>\n<tr><td>lign\u00e9e bas\u00e9e sur les journaux d&#039;ex\u00e9cution<\/td><td>Observer ce qui s&#039;est r\u00e9ellement ex\u00e9cut\u00e9 sur un serveur<\/td><td>Suppose un moteur central g\u00e9n\u00e9rant des journaux\u00a0; une instance DuckDB ex\u00e9cut\u00e9e en interne sur un ordinateur portable ou au sein d\u2019une application n\u2019a rien \u00e0 collecter.<\/td><\/tr>\n<tr><td>Plateformes ax\u00e9es sur le catalogue<\/td><td>Flux de travail de gouvernance, propri\u00e9t\u00e9, glossaires pour l&#039;ensemble de la pile<\/td><td>La profondeur de la lign\u00e9e d\u00e9pend de leur analyse SQL par dialecte\u00a0; les scripts DuckDB int\u00e9gr\u00e9s sont rarement des sources de premier ordre<\/td><\/tr>\n<tr><td>Gudu SQLFlow<\/td><td>Analyse statique, au niveau des colonnes, du texte SQL lui-m\u00eame, prenant en compte le dialecte, avec tra\u00e7abilit\u00e9 directe et indirecte<\/td><td>Version commerciale pour une utilisation \u00e0 l&#039;\u00e9chelle d&#039;une \u00e9quipe (niveau gratuit pour les requ\u00eates individuelles)<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Ces options ne sont pas incompatibles. Si vous utilisez d\u00e9j\u00e0 un catalogue, les d\u00e9ploiements d&#039;entreprise de SQLFlow exportent la tra\u00e7abilit\u00e9 vers <strong>DataHub, Microsoft Purview et OpenMetadata<\/strong>Il devient ainsi le moteur d&#039;analyse syntaxique qui sous-tend le catalogue que vous conservez.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">D\u00e9ploiement et confidentialit\u00e9<\/h2>\n\n\n\n<p>SQLFlow effectue uniquement une analyse statique du code SQL\u00a0; il ne lit jamais les lignes de vos tables ni de vos fichiers Parquet. Pour les \u00e9quipes dont les scripts DuckDB int\u00e8grent une logique propri\u00e9taire, <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-on-premise-version\/\">SQLFlow sur site<\/a> SQLFlow Cloud s&#039;ex\u00e9cute avec Docker ou Kubernetes au sein de votre r\u00e9seau (installations isol\u00e9es prises en charge), garantissant ainsi que m\u00eame le code SQL ne quitte jamais votre infrastructure. SQLFlow Cloud est gratuit avec une version Premium \u00e0 49,99 \u00a3\/mois. La version On-Premise co\u00fbte 500 \u00a3\/mois ou 4\u00a0800 \u00a3 (paiement unique) par type de base de donn\u00e9es s\u00e9lectionn\u00e9 et peut \u00eatre install\u00e9e sur deux serveurs. Les deux versions sont \u00e9galement scriptables via une interface de ligne de commande (CLI) sans interface graphique et une API REST, ce qui correspond \u00e0 la culture d&#039;automatisation pouss\u00e9e et d&#039;int\u00e9gration continue (CI) de DuckDB.<\/p>\n\n\n\n<p>\u00c0 l&#039;autre extr\u00e9mit\u00e9 de l&#039;\u00e9chelle, le m\u00eame moteur analyse par lots des ensembles de plus de 100 bases de donn\u00e9es et plus d&#039;un million de colonnes avec une analyse incr\u00e9mentale et un r\u00e9f\u00e9rentiel de lignage persistant, de sorte que la partie DuckDB de votre pile et l&#039;entrep\u00f4t de donn\u00e9es peuvent vivre dans un seul graphe de lignage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Foire aux questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow peut-il retracer la lign\u00e9e via read_parquet() et les sources de fichiers\u00a0?<\/h3>\n\n\n<p>Oui. L&#039;analyseur syntaxique de dialecte DuckDB traite <code>lire_parquet()<\/code> en tant que source de table, les chemins de fichiers apparaissent donc comme des n\u0153uds sources dans le graphe de lignage et les colonnes lues \u00e0 partir de Parquet sont suivies dans les tables en aval comme n&#039;importe quelle autre colonne.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dois-je ex\u00e9cuter mes requ\u00eates DuckDB pour obtenir la lign\u00e9e\u00a0?<\/h3>\n\n\n<p>Non. SQLFlow effectue une analyse statique\u00a0: il analyse le texte SQL sans jamais l&#039;ex\u00e9cuter. C&#039;est ce qui le rend adapt\u00e9 \u00e0 DuckDB (serveur interne), o\u00f9 il n&#039;y a pas de journal de requ\u00eates \u00e0 collecter c\u00f4t\u00e9 serveur.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow prend-il en charge les projets dbt-duckdb\u00a0?<\/h3>\n\n\n<p>Oui. Importez le manifeste dbt et SQLFlow g\u00e9n\u00e8re une tra\u00e7abilit\u00e9 au niveau des colonnes pour l&#039;ensemble de vos mod\u00e8les \u2014 plus fine que le DAG au niveau du mod\u00e8le propre \u00e0 dbt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">DuckDB prend-il en charge un v\u00e9ritable analyseur syntaxique de dialecte ou du SQL ANSI g\u00e9n\u00e9rique\u00a0?<\/h3>\n\n\n<p>Un v\u00e9ritable analyseur syntaxique de dialecte. SQLFlow int\u00e8gre des analyseurs syntaxiques sp\u00e9cifiques \u00e0 chaque dialecte pour 39 bases de donn\u00e9es, dont DuckDB, construits sur un moteur d&#039;analyse valid\u00e9 par rapport \u00e0 environ 13\u00a0600 jeux de tests SQL par dialecte.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Les donn\u00e9es de tra\u00e7abilit\u00e9 issues des scripts DuckDB peuvent-elles alimenter mon catalogue de donn\u00e9es\u00a0?<\/h3>\n\n\n<p>Oui. Les d\u00e9ploiements en entreprise incluent des adaptateurs d&#039;exportation pour DataHub, Microsoft Purview et OpenMetadata, ainsi que l&#039;exportation JSON et CSV et une API REST pour les int\u00e9grations personnalis\u00e9es.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quel est le co\u00fbt de SQLFlow pour la lign\u00e9e DuckDB\u00a0?<\/h3>\n\n\n<p>SQLFlow Cloud propose une version gratuite\u00a0; la version Premium co\u00fbte 49,99\u00a0\u00a3\/mois. 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 <a href=\"https:\/\/www.gudusoft.com\/fr\/tarification\/\">tarification<\/a> pour plus de d\u00e9tails.<\/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\">Suivez votre pipeline DuckDB d\u00e8s maintenant<\/h2>\n\n\n<p>Collez une requ\u00eate DuckDB dans le visualiseur gratuit et visualisez sa lign\u00e9e au niveau des colonnes, ou contactez-nous pour analyser un projet entier.<\/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=duckdb-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\u00e9mo<\/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\\\/duckdb-data-lineage\\\/\",\n            \"description\": \"Automated DuckDB data lineage: SQLFlow parses DuckDB SQL scripts and dbt-duckdb projects with a dialect-specific parser and produces interactive column-level lineage diagrams, including sources read via read_parquet().\",\n            \"featureList\": \"DuckDB dialect parser, column-level lineage, read_parquet() source tracing, indirect\\\/impact lineage, dbt manifest import, JSON\\\/CSV\\\/PNG export, 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\": \"Can SQLFlow trace lineage through read_parquet() and file sources?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. The DuckDB dialect parser treats read_parquet() as a table source, so file paths appear as source nodes in the lineage graph and columns read from Parquet are traced into downstream tables like any other column.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Do I have to run my DuckDB queries to get lineage?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. SQLFlow is static analysis: it parses the SQL text and never executes it. That is what makes it a fit for in-process DuckDB, where there is no server-side query log to collect.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow support dbt-duckdb projects?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Import the dbt manifest and SQLFlow produces column-level lineage across your models, finer-grained than dbt's own model-level DAG.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Is DuckDB support a real dialect parser or generic ANSI SQL?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"A real dialect parser. SQLFlow ships dialect-specific parsers for 39 databases, DuckDB among them, built on a parser engine validated against roughly 13,600 per-dialect SQL test fixtures.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can lineage from DuckDB scripts feed my data catalog?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Enterprise deployments include export adapters for DataHub, Microsoft Purview, and OpenMetadata, plus JSON and CSV export and a REST API for custom integrations.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"What does SQLFlow cost for DuckDB lineage?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"SQLFlow Cloud has a free tier; premium is $49.99\\\/month. On-Premise is $500\\\/month or $4,800 one-time per selected database type.\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>DuckDB data lineage is the column-level map of how data moves through your DuckDB SQL: which Parquet files and source tables feed each derived table, and through which joins, casts, filters, and aggregations. Gudu SQLFlow builds that map automatically: it parses your DuckDB scripts with a dedicated DuckDB dialect parser and renders an interactive lineage diagram, without executing a single query or touching your data. Try it now: paste any DuckDB query into the free online SQL lineage visualizer, select the DuckDB dialect, and get a column-level lineage diagram in seconds. There is a free tier for individual use. Why\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\/6764"}],"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=6764"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6764\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/media?parent=6764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}