{"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\/pt\/duckdb-linhagem-de-dados\/","title":{"rendered":"DuckDB Data Lineage: Linhagem em n\u00edvel de coluna para an\u00e1lises em andamento"},"content":{"rendered":"<p><strong>linhagem de dados DuckDB<\/strong> \u00e9 o mapa em n\u00edvel de coluna de como os dados se movem pelo seu SQL do DuckDB: quais arquivos Parquet e tabelas de origem alimentam cada tabela derivada e por meio de quais jun\u00e7\u00f5es, convers\u00f5es, filtros e agrega\u00e7\u00f5es. <strong>Gudu SQLFlow<\/strong> Constr\u00f3i esse mapa automaticamente: analisa seus scripts DuckDB com um analisador de dialeto DuckDB dedicado e renderiza um diagrama de linhagem interativo, sem executar uma \u00fanica consulta ou alterar seus dados.<\/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>Experimente agora:<\/strong> Cole qualquer consulta DuckDB no <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=duckdb-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">visualizador de linhagem SQL online gratuito<\/a>Selecione o dialeto DuckDB e obtenha um diagrama de linhagem em n\u00edvel de coluna em segundos. H\u00e1 um plano gratuito para uso individual.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Por que os pipelines do DuckDB merecem uma linhagem real?<\/h2>\n\n\n\n<p>O DuckDB se tornou, discretamente, uma infraestrutura de dados s\u00e9ria. Ele executa a camada de transforma\u00e7\u00e3o em <code>dbt-duckdb<\/code> projetos, alimenta an\u00e1lises locais que posteriormente migram para o data warehouse, est\u00e1 incorporado em aplicativos e notebooks e, cada vez mais, serve como mecanismo de computa\u00e7\u00e3o em data lakes Parquet. O SQL nesses pipelines toma os mesmos tipos de decis\u00f5es que o SQL do data warehouse: calcula a receita, filtra clientes e constr\u00f3i as tabelas que um dashboard l\u00ea.<\/p>\n\n\n\n<p>No entanto, os projetos DuckDB geralmente n\u00e3o recebem o mesmo rigor de linhagem que um data warehouse. H\u00e1 uma raz\u00e3o estrutural: a maioria das ferramentas de linhagem pressup\u00f5e um servidor de banco de dados. A linhagem baseada em logs de tempo de execu\u00e7\u00e3o coleta logs de consulta de um mecanismo central; plataformas que priorizam o cat\u00e1logo rastreiam os metadados de um servidor. O DuckDB \u00e9 em processo: geralmente n\u00e3o h\u00e1 servidor, hist\u00f3rico de consultas compartilhado ou agente de cat\u00e1logo para instalar. A l\u00f3gica de transforma\u00e7\u00e3o reside no processo. <code>.sql<\/code> Arquivos, modelos dbt e scripts armazenados em um reposit\u00f3rio.<\/p>\n\n\n\n<p>Isso faz da an\u00e1lise est\u00e1tica de SQL a maneira natural, e muitas vezes a \u00fanica, de construir a linhagem de dados do DuckDB. O SQLFlow analisa o pr\u00f3prio texto SQL, portanto, funciona da mesma forma, independentemente de o SQL ser executado em um laptop, em um job de CI ou dentro de um processo de aplicativo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Como o SQLFlow constr\u00f3i a linhagem de dados do DuckDB<\/h2>\n\n\n\n<p>O SQLFlow \u00e9 constru\u00eddo sobre o <a href=\"https:\/\/www.sqlparser.com\/\">Analisador SQL Geral (GSP)<\/a>DuckDB \u00e9 um dos compiladores SQL comerciais desenvolvidos desde meados dos anos 2000 e validados com aproximadamente 13.600 conjuntos de testes SQL por dialeto. <a href=\"https:\/\/www.gudusoft.com\/pt\/ferramenta-de-linhagem-de-dados-sql\/\">39 bases de dados com um analisador sint\u00e1tico espec\u00edfico para cada dialeto.<\/a> \u2014 n\u00e3o uma gram\u00e1tica ANSI gen\u00e9rica com a sintaxe do DuckDB simplesmente adicionada. O pipeline:<\/p>\n\n\n\n<ol><li><strong>Ingerir.<\/strong> Cole o SQL do DuckDB, carregue seus arquivos de script ou importe um manifesto dbt de um <code>dbt-duckdb<\/code> projeto.<\/li>\n<li><strong>Analisar e resolver.<\/strong> O GSP constr\u00f3i um modelo sem\u00e2ntico completo de cada instru\u00e7\u00e3o, resolvendo cada refer\u00eancia de coluna por meio de CTEs, subconsultas, visualiza\u00e7\u00f5es e <code>SELECIONE *<\/code> expans\u00e3o.<\/li>\n<li><strong>Extrair fluxo de dados.<\/strong> O analisador de fluxo de dados registra, para cada coluna de sa\u00edda, exatamente quais colunas de origem a alimentam e por meio de quais fun\u00e7\u00f5es, convers\u00f5es, jun\u00e7\u00f5es e operadores de conjunto.<\/li>\n<li><strong>Visualize e exporte.<\/strong> Navegue pelo diagrama interativo, rastreie qualquer coluna a montante ou a jusante e exporte o gr\u00e1fico como JSON, CSV ou PNG, ou obtenha-o atrav\u00e9s da API REST.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Exemplo: linhagem atrav\u00e9s de read_parquet() e CTAS<\/h2>\n\n\n\n<p>O padr\u00e3o caracter\u00edstico do DuckDB \u00e9 <code>CRIAR TABELA COMO SELECIONAR<\/code> Leitura direta de arquivos \u2014 sem carregamento tempor\u00e1rio, os arquivos Parquet <em>s\u00e3o<\/em> a fonte. Uma configura\u00e7\u00e3o t\u00edpica de relat\u00f3rio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE 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>O analisador DuckDB do SQLFlow entende <code>ler_parquet()<\/code> como fonte de tabela, de modo que o caminho Parquet apare\u00e7a como um n\u00f3 real no grafo de linhagem, em vez de uma chamada de fun\u00e7\u00e3o n\u00e3o resolvida. A partir dessa \u00fanica instru\u00e7\u00e3o, ele extrai:<\/p>\n\n\n\n<ul><li><code>receita_di\u00e1ria.receita<\/code> \u00e9 alimentado por <code>o.quantidade<\/code> da fonte Parquet, atrav\u00e9s de <code>SOMA()<\/code>.<\/li>\n<li><code>receita_di\u00e1ria.data_do_pedido<\/code> \u00e9 alimentado por <code>o.order_ts<\/code>, atrav\u00e9s de um <code>ELENCO<\/code> para <code>DATA<\/code>.<\/li>\n<li><code>receita_di\u00e1ria.regi\u00e3o<\/code> vem diretamente de <code>dim_clientes.regi\u00e3o<\/code>.<\/li>\n<li><code>o.status<\/code>, <code>o.cliente_id<\/code>, e <code>c.id_do_cliente<\/code> nunca chegam \u00e0 sa\u00edda, mas a moldam, por isso o SQLFlow as registra como linhagem indireta (mais sobre isso abaixo).<\/li><\/ul>\n\n\n\n<p>Encadeie cinquenta dessas instru\u00e7\u00f5es em um projeto dbt ou em um script noturno e o gr\u00e1fico se multiplica: o SQLFlow une todas as tabelas intermedi\u00e1rias para que voc\u00ea possa rastrear um n\u00famero do painel at\u00e9 a coluna Parquet exata em que ele come\u00e7ou.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Linhagem direta versus linhagem indireta<\/h2>\n\n\n\n<p>No exemplo acima, <code>o.status<\/code> nunca aparece em <code>receita_di\u00e1ria<\/code>, mas mudando como <code>status<\/code> se preenchido, alteraria silenciosamente todos os valores de receita. O SQLFlow modela isso como <strong>linhagem indireta (de impacto)<\/strong>: colunas usadas em <code>ONDE<\/code>, <code>JUNTAR<\/code>, e <code>AGRUPAR POR<\/code> Cl\u00e1usulas e agrega\u00e7\u00f5es internas formam um tipo de relacionamento distinto e altern\u00e1vel separadamente, al\u00e9m do fluxo de dados direto. A maioria das ferramentas concorrentes n\u00e3o faz essa distin\u00e7\u00e3o, o que significa que sua an\u00e1lise de impacto ignora exatamente as depend\u00eancias que causam erros silenciosos nos dados.<\/p>\n\n\n\n<p>Para um pipeline DuckDB, isso \u00e9 importante em dobro: as fontes baseadas em arquivos n\u00e3o possuem chaves estrangeiras ou restri\u00e7\u00f5es para alert\u00e1-lo, portanto, o pr\u00f3prio SQL \u00e9 o \u00fanico lugar onde essas depend\u00eancias s\u00e3o registradas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Linhagem para projetos dbt-duckdb<\/h2>\n\n\n\n<p><code>dbt-duckdb<\/code> \u00e9 uma das maneiras mais comuns de o DuckDB ser executado em produ\u00e7\u00e3o, e o pr\u00f3prio DAG do dbt para no n\u00edvel do modelo: ele te diz <code>receita_di\u00e1ria<\/code> depende de <code>stg_orders<\/code>, n\u00e3o quais colunas carregam a depend\u00eancia. O SQLFlow importa seu manifesto dbt e produz <strong>n\u00edvel de coluna<\/strong> linhagem entre os modelos compilados, para que voc\u00ea possa responder \u201cquais marts fazem <code>stg_orders.amount<\/code> &quot;Voc\u00ea realmente vai alimentar?&quot; antes de trocar.<\/p>\n\n\n\n<p>A mesma an\u00e1lise se mostra \u00fatil no momento da migra\u00e7\u00e3o. As equipes frequentemente criam prot\u00f3tipos no DuckDB e, posteriormente, promovem os modelos para outras plataformas. <a href=\"https:\/\/www.gudusoft.com\/pt\/linhagem-de-dados-clickhouse\/\">ClickHouse<\/a>, <a href=\"https:\/\/www.gudusoft.com\/pt\/linhagem-de-dados-postgresql\/\">PostgreSQL<\/a>ou um data warehouse na nuvem. Como o SQLFlow analisa todos esses dados com gram\u00e1ticas espec\u00edficas de cada dialeto, voc\u00ea pode mapear o verdadeiro grafo de depend\u00eancias antes da migra\u00e7\u00e3o e verificar se nada ficou \u00f3rf\u00e3o depois dela \u2014 usando uma \u00fanica ferramenta e um \u00fanico modelo de linhagem em ambos os lados.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quais s\u00e3o as op\u00e7\u00f5es para a linhagem do DuckDB?<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Abordagem<\/th><th>Bom em<\/th><th>A lacuna para o DuckDB<\/th><\/tr><\/thead><tbody>\n<tr><td>Documenta\u00e7\u00e3o manual<\/td><td>Capturar a inten\u00e7\u00e3o e o contexto de neg\u00f3cios<\/td><td>Obsoleto no dia seguinte \u00e0 publica\u00e7\u00e3o; sem detalhes da coluna.<\/td><\/tr>\n<tr><td>Analisadores de c\u00f3digo aberto (<code>linhagem sql<\/code>, <code>sqlglot<\/code>)<\/td><td>Analisando consultas individuais em um fluxo de trabalho Python; gratuito<\/td><td>Voc\u00ea mesmo monta a resolu\u00e7\u00e3o, a expans\u00e3o estelar, a interconex\u00e3o das declara\u00e7\u00f5es e a visualiza\u00e7\u00e3o; a linhagem indireta fica por sua conta.<\/td><\/tr>\n<tr><td>linhagem baseada em logs de tempo de execu\u00e7\u00e3o<\/td><td>Observar o que de fato foi executado em um servidor.<\/td><td>Pressup\u00f5e-se um mecanismo central que emita registros; um DuckDB em execu\u00e7\u00e3o em um laptop ou dentro de um aplicativo n\u00e3o tem nada a coletar.<\/td><\/tr>\n<tr><td>Plataformas com foco em cat\u00e1logo<\/td><td>Fluxos de trabalho de governan\u00e7a, responsabilidade, gloss\u00e1rios em toda a pilha de tecnologia.<\/td><td>A profundidade da linhagem depende da an\u00e1lise SQL espec\u00edfica de cada dialeto; scripts DuckDB incorporados raramente s\u00e3o fontes de primeira classe.<\/td><\/tr>\n<tr><td>Gudu SQLFlow<\/td><td>An\u00e1lise est\u00e1tica, em n\u00edvel de coluna, do pr\u00f3prio texto SQL, com reconhecimento de dialetos, incluindo linhagem direta e indireta.<\/td><td>Vers\u00e3o comercial para uso em equipe (plano gratuito para consultas individuais)<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Essas op\u00e7\u00f5es n\u00e3o s\u00e3o mutuamente exclusivas. Se voc\u00ea j\u00e1 utiliza um cat\u00e1logo, as implementa\u00e7\u00f5es corporativas do SQLFlow exportam a linhagem para <strong>DataHub, Microsoft Purview e OpenMetadata<\/strong>Assim, ele se torna o mecanismo de an\u00e1lise sint\u00e1tica por tr\u00e1s do cat\u00e1logo que voc\u00ea mant\u00e9m.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Implanta\u00e7\u00e3o e privacidade<\/h2>\n\n\n\n<p>O SQLFlow realiza apenas an\u00e1lises est\u00e1ticas do c\u00f3digo SQL; ele nunca l\u00ea as linhas das suas tabelas ou arquivos Parquet. Para equipes cujos scripts DuckDB codificam l\u00f3gica propriet\u00e1ria, <a href=\"https:\/\/www.gudusoft.com\/pt\/sqlflow-on-premise-versao\/\">SQLFlow no local<\/a> O SQLFlow Cloud \u00e9 executado como Docker ou Kubernetes dentro da sua rede (instala\u00e7\u00f5es isoladas da internet s\u00e3o suportadas), portanto, nem mesmo o texto SQL sai da sua infraestrutura. O SQLFlow Cloud \u00e9 gratuito a partir de \u00a349,99\/m\u00eas para a vers\u00e3o premium; a vers\u00e3o On-Premise custa \u00a3500\/m\u00eas ou \u00a34.800 (pagamento \u00fanico) por tipo de banco de dados selecionado, e pode ser instalado em dois servidores. Ambos tamb\u00e9m s\u00e3o automatiz\u00e1veis por meio de uma CLI sem interface gr\u00e1fica e API REST, o que se alinha \u00e0 cultura de automa\u00e7\u00e3o intensiva e integra\u00e7\u00e3o cont\u00ednua (CI) da DuckDB.<\/p>\n\n\n\n<p>No outro extremo da escala, o mesmo mecanismo realiza varreduras em lote de conjuntos de mais de 100 bancos de dados e mais de um milh\u00e3o de colunas com varredura incremental e um reposit\u00f3rio de linhagem persistente, de modo que a parte do DuckDB da sua pilha e o data warehouse possam coexistir em um \u00fanico grafo de linhagem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perguntas frequentes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">O SQLFlow consegue rastrear a linhagem atrav\u00e9s de read_parquet() e fontes de arquivo?<\/h3>\n\n\n<p>Sim. O analisador de dialetos do DuckDB trata <code>ler_parquet()<\/code> Como a fonte da tabela \u00e9 definida, os caminhos dos arquivos aparecem como n\u00f3s de origem no gr\u00e1fico de linhagem e as colunas lidas do Parquet s\u00e3o rastreadas para as tabelas subsequentes como qualquer outra coluna.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Preciso executar minhas consultas no DuckDB para obter a linhagem?<\/h3>\n\n\n<p>N\u00e3o. O SQLFlow realiza an\u00e1lise est\u00e1tica: ele analisa o texto SQL e nunca o executa. \u00c9 por isso que ele \u00e9 adequado para o DuckDB em processo, onde n\u00e3o h\u00e1 registro de consultas do lado do servidor para coletar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O SQLFlow \u00e9 compat\u00edvel com projetos dbt-duckdb?<\/h3>\n\n\n<p>Sim. Importe o manifesto do dbt e o SQLFlow produzir\u00e1 a linhagem em n\u00edvel de coluna em seus modelos \u2014 mais detalhada do que o DAG em n\u00edvel de modelo do pr\u00f3prio dbt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O DuckDB oferece suporte a um analisador de dialetos real ou a SQL ANSI gen\u00e9rico?<\/h3>\n\n\n<p>Um analisador sint\u00e1tico de dialetos de verdade. O SQLFlow fornece analisadores sint\u00e1ticos espec\u00edficos para cada dialeto em 39 bancos de dados, incluindo o DuckDB, constru\u00eddos com base em um mecanismo de an\u00e1lise sint\u00e1tica validado em aproximadamente 13.600 conjuntos de dados SQL de teste por dialeto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9 poss\u00edvel obter informa\u00e7\u00f5es de linhagem a partir de scripts do DuckDB para alimentar meu cat\u00e1logo de dados?<\/h3>\n\n\n<p>Sim. As implementa\u00e7\u00f5es empresariais incluem adaptadores de exporta\u00e7\u00e3o para DataHub, Microsoft Purview e OpenMetadata, al\u00e9m de exporta\u00e7\u00e3o em JSON e CSV e uma API REST para integra\u00e7\u00f5es personalizadas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qual o custo do SQLFlow para a linhagem DuckDB?<\/h3>\n\n\n<p>O SQLFlow Cloud possui um plano gratuito; a vers\u00e3o premium custa \u00a349,99\/m\u00eas. A vers\u00e3o On-Premise custa \u00a3500\/m\u00eas ou \u00a34.800 (pagamento \u00fanico) por tipo de banco de dados selecionado. Consulte <a href=\"https:\/\/www.gudusoft.com\/pt\/precos\/\">pre\u00e7os<\/a> Para mais detalhes.<\/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\">Agora voc\u00ea pode rastrear seu pipeline do DuckDB.<\/h2>\n\n\n<p>Cole uma consulta DuckDB no visualizador gratuito e veja sua linhagem em n\u00edvel de coluna, ou entre em contato conosco para analisarmos um projeto inteiro.<\/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\">Experimente o SQLFlow gratuitamente<\/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\/pt\/contato\/\">Solicite uma demonstra\u00e7\u00e3o<\/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\/pt\/wp-json\/wp\/v2\/pages\/6764"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/comments?post=6764"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/pages\/6764\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/media?parent=6764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}