spawn ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@47.251.180.146 cat /www/wwwroot/kivtools.com/application/index/view/index/sql-lineage.html Warning: Permanently added '47.251.180.146' (ED25519) to the list of known hosts. ** WARNING: connection is not using a post-quantum key exchange algorithm. ** This session may be vulnerable to "store now, decrypt later" attacks. ** The server may need to be upgraded. See https://openssh.com/pq.html root@47.251.180.146's password: Analisar linhagem SQL de colunas, tabelas e impacto | KivTools

Analisador de linhagem e impacto SQL

Cole SQL ou importe um projeto para seguir transformações e examinar impactos posteriores. Esquemas ajudam na resolução; SQL dinâmico pode ficar incompleto.

Funciona localmente no seu navegador
SOMENTE LOCAL Column Lineage Static Analysis
Your SQL, schema and uploaded files are analyzed inside this browser. KivTools does not upload them for lineage analysis.
INPUT

Input workspace

Preparing local SQL engine…
No files selected Drop SQL, ZIP or dbt files here

Choose the actual SQL dialect when known for more accurate parsing.

OUTPUT

Lineage graph

Waiting for analysis
Export

Trace a column from source to output

Load the example or paste SQL, then analyze it with the local SQLGlot engine.

Direct Transformation Context

Details

Select a node in the graph

Node details, SQL fragments and text lineage paths appear here.

Downstream impact

Deterministic paths

Select a source column to count affected columns, views and final results.

SQL LINEAGE

Trace SQL dependencies before changing a query

Column lineage follows source columns through expressions, CTEs and views to each output. Impact analysis reverses those paths to show what a source change can affect.

What this analyzer resolves

SELECT, aliases, JOIN, subqueries, CTEs, UNION, aggregates, window functions, QUALIFY, MERGE, CREATE VIEW, CTAS and INSERT SELECT.

When schema information helps

CREATE TABLE definitions improve SELECT * expansion, ambiguous-column resolution and qualification.

Static-analysis limits

Dynamic SQL and stored procedures may be incomplete. Runtime database behavior is never executed.

Como ler a linhagem de colunas de um SQL

Cole o SQL ou envie arquivos .sql, escolha um dialeto e clique em Analisar linhagem. O analisador é o SQLGlot 30.17.0 sobre Pyodide dentro de um Web Worker: os arquivos do mecanismo são baixados uma vez — o indicador mostra Pyodide e depois SQLGlot — e toda a análise seguinte acontece na página. Nada é enviado a um servidor para análise e nenhum banco de dados é acessado.

O resultado é um grafo com um inspetor. O modo Colunas segue os valores das colunas de origem, através das expressões, até cada saída; o modo Tabelas reduz o grafo a dependências entre tabelas e views; o modo JOINs mantém apenas as relações ON. Abaixo, o cartão Cobertura da análise informa por instrução se ela ficou resolvida, parcial, não suportada ou com erro de análise, e o cartão Avisos aponta o que não pôde ser resolvido.

  1. Digite ou cole as instruções, ou clique em Carregar exemplo. A aba Esquema aceita definições CREATE TABLE — são elas que permitem expandir SELECT * e qualificar colunas ambíguas.
  2. Deixe o dialeto em Detectar automaticamente ou escolha um dos 23. A detecção lê marcadores do próprio dialeto no texto; quando eles são poucos, a página pede que você escolha em vez de adivinhar.
  3. Clique em Analisar linhagem. A cobertura e o grafo aparecem juntos; Cancelar interrompe uma análise em andamento e o mecanismo é recarregado para a próxima execução.
  4. Explore: pesquise uma tabela, view ou coluna, filtre a vizinhança do nó selecionado com Amont/aval e ligue Contexto para incluir as dependências que são usadas mas não passam adiante, como chaves de filtro e de agrupamento. Clique em um nó para ver o fragmento SQL e a expressão; o cartão Impacto em aval conta as colunas, views e resultados finais que uma mudança alcançaria.
  5. Exporte JSON, CSV, PNG, SVG ou GraphML. Todos os arquivos são gerados localmente no navegador; o CSV tem uma linha por aresta com origem, destino, relação, instrução, arquivo e expressão.

O que o analisador resolve e o que fica de fora

Como ler o grafo

Uma aresta direta significa que o destino vem direto da origem, como referência simples ou alias. Um nó de transformação aparece quando o valor é calculado: agregado, convertido, concatenado ou envolto em função, e o painel Detalhes mostra a expressão correspondente. Acima do quadro são informados os nós e arestas da visualização atual, e os controles de zoom, ajuste, minimapa e tela cheia atuam sobre o grafo desenhado.

Contexto adiciona dependências que são usadas sem passar adiante: colunas de filtros WHERE, chaves de JOIN, chaves de agrupamento. Ao ligá-lo o grafo fica visivelmente maior, por isso ele é separado dos botões de filtro da linhagem.

Dialetos e detecção

A lista vai de ANSI / SQL genérico a PostgreSQL, MySQL, SQL Server / T-SQL, Oracle, SQLite, Teradata, Snowflake, BigQuery, Amazon Redshift, Databricks SQL, Microsoft Fabric, DuckDB, ClickHouse, Materialize, Apache Doris, Dremio, Spark SQL, Hive, Trino, Presto e Amazon Athena. O analisador segue a escolha: caracteres de identificador entre aspas, LIMIT / TOP / FETCH FIRST ou a sintaxe MERGE costumam ser o motivo de o mesmo texto resolver em um dialeto e falhar em outro.

A detecção é baseada em evidências. Cabeçalho de dump MySQL, ENGINE=InnoDB, backtick ou AUTO_INCREMENT, conversões ::, COPY … FROM stdin, GO ou [dbo]., VARCHAR2 e TABLESPACE, PRAGMA, TIMESTAMP_NTZ e marcadores parecidos votam cada um por um dialeto. Um SELECT sem sintaxe de fornecedor não traz evidência, então a página pede que você escolha em vez de adivinhar; o botão Exemplo carrega então uma amostra escrita para o dialeto escolhido, como QUALIFY no BigQuery e Snowflake, MERGE no Databricks ou NVL no Oracle.

Cobertura, avisos e limites

A cobertura é informada por instrução — resolvida, parcial, não suportada ou erro de análise — com confiança alta, média ou baixa, de modo que um script longo mostra quais partes o mecanismo entendeu. Os avisos apontam a causa concreta: SELECT * sem esquema correspondente, coluna presente em duas tabelas unidas, SQL dinâmico ou instrução que o motor de linhagem ainda não suporta por completo.

Tudo aqui é análise estática: SQL dinâmico e procedures só são seguidos até onde o texto permite, nenhuma instrução é executada e o detalhe do resultado depende do esquema que você fornecer. Os envios aceitam arquivos de texto .sql, a importação de projeto aceita uma pasta ou um ZIP / projeto dbt de até 25 MB comprimidos e 50 MB extraídos, e a entrada combinada é limitada a 50 MB — acima de 5 MB aparece um aviso. O mecanismo são vários megabytes de WebAssembly, por isso a primeira análise com cache frio demora bem mais que as seguintes.

Ferramentas recentes: