What this analyzer resolves
SELECT, aliases, JOIN, subqueries, CTEs, UNION, aggregates, window functions, QUALIFY, MERGE, CREATE VIEW, CTAS and INSERT SELECT.
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:
Pega SQL o importa un proyecto para seguir transformaciones y evaluar el impacto posterior. Los esquemas mejoran la resolución; el SQL dinámico puede quedar incompleto.
Se ejecuta localmente en tu navegadorSchema helps expand SELECT *, resolve ambiguous columns and improve qualification.
Choose the actual SQL dialect when known for more accurate parsing.
Load the example or paste SQL, then analyze it with the local SQLGlot engine.
| Fuente | Statement | Status | Confidence |
|---|
Node details, SQL fragments and text lineage paths appear here.
Select a source column to count affected columns, views and final results.
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.
SELECT, aliases, JOIN, subqueries, CTEs, UNION, aggregates, window functions, QUALIFY, MERGE, CREATE VIEW, CTAS and INSERT SELECT.
CREATE TABLE definitions improve SELECT * expansion, ambiguous-column resolution and qualification.
Dynamic SQL and stored procedures may be incomplete. Runtime database behavior is never executed.
Pega el SQL o sube archivos .sql, elige un dialecto y pulsa Analizar linaje. El analizador es SQLGlot 30.17.0 sobre Pyodide dentro de un Web Worker: los archivos del motor se descargan una vez —el indicador muestra Pyodide y después SQLGlot— y a partir de ahí todo el análisis ocurre en la página. No se envía nada a un servidor para analizarlo ni se contacta con ninguna base de datos.
El resultado es un grafo más un inspector. El modo Columnas sigue los valores desde las columnas de origen, a través de las expresiones, hasta cada salida; el modo Tablas reduce el grafo a dependencias entre tablas y vistas; el modo JOIN conserva solo las relaciones ON. Debajo, la tarjeta Cobertura del análisis indica por sentencia si quedó resuelta, parcial, no soportada o con error de análisis, y la tarjeta Avisos nombra lo que no se pudo resolver.
Una arista directa significa que el destino sale tal cual del origen, como referencia simple o alias. Aparece un nodo de transformación cuando el valor se calcula: se agrega, se convierte, se concatena o se envuelve en una función, y el panel Detalles muestra la expresión correspondiente. Sobre el lienzo se indican los nodos y aristas de la vista actual, y los controles de zoom, ajuste, minimapa y pantalla completa actúan sobre el grafo dibujado.
Contexto añade dependencias que se usan sin transmitirse: columnas de filtros WHERE, claves de JOIN, claves de agrupación. Al activarlo el grafo se amplía de forma visible, por eso está separado de los botones de filtro del linaje.
La lista va 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 y Amazon Athena. El analizador sigue la elección: los caracteres de identificador entrecomillado, LIMIT / TOP / FETCH FIRST o la sintaxis MERGE suelen ser la razón de que el mismo texto se resuelva en un dialecto y falle en otro.
La detección se basa en pruebas. Una cabecera de volcado MySQL, ENGINE=InnoDB, un backtick o AUTO_INCREMENT, conversiones :: o COPY … FROM stdin, GO o [dbo]., VARCHAR2 y TABLESPACE, PRAGMA o TIMESTAMP_NTZ votan cada uno por un dialecto. Un SELECT sin sintaxis de proveedor no aporta pruebas, así que la página pide elegir en lugar de adivinar; el botón Ejemplo carga entonces una muestra escrita para el dialecto elegido, como QUALIFY en BigQuery y Snowflake, MERGE en Databricks o NVL en Oracle.
La cobertura se informa por sentencia —resuelta, parcial, no soportada o error de análisis— con una confianza alta, media o baja, de modo que un script largo muestra qué partes entendió el motor. Los avisos señalan la causa concreta: SELECT * sin un esquema que lo expanda, una columna presente en dos tablas unidas, SQL dinámico o una sentencia que el motor de linaje aún no soporta del todo.
Todo es análisis estático: el SQL dinámico y los procedimientos almacenados solo se siguen hasta donde llega su texto, no se ejecuta ninguna sentencia y el detalle del resultado depende del esquema que aportes. Las cargas aceptan archivos de texto .sql, la importación de proyecto acepta una carpeta o un ZIP / proyecto dbt de hasta 25 MB comprimidos y 50 MB descomprimidos, y la entrada combinada está limitada a 50 MB —por encima de 5 MB aparece un aviso—. El motor son varios megabytes de WebAssembly, así que el primer análisis en caché fría tarda bastante más que los siguientes.