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:
Fügen Sie SQL ein oder importieren Sie ein Projekt, um Transformationen und nachgelagerte Auswirkungen zu verfolgen. Schemata helfen bei der Auflösung; dynamisches SQL kann unvollständig bleiben.
Läuft lokal in deinem BrowserSchema 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.
| Quelle | 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.
SQL einfügen oder .sql-Dateien laden, einen Dialekt wählen und auf Lineage analysieren drücken. Der Parser ist SQLGlot 30.17.0 auf Pyodide in einem Web Worker: Die Engine-Dateien werden einmal geladen — die Statusanzeige zeigt zuerst Pyodide, dann SQLGlot — und danach läuft jede Analyse in der Seite. Zum Parsen wird nichts an einen Server geschickt und keine Datenbank kontaktiert.
Das Ergebnis besteht aus einem Graphen und einem Inspektor. Der Modus Spalten verfolgt Werte von den Quellspalten über Ausdrücke bis zu jeder Ausgabe; Tabellen reduziert den Graphen auf Abhängigkeiten zwischen Tabellen und Views; JOINs behält nur die ON-Beziehungen. Darunter meldet die Karte Analyseabdeckung je Anweisung, ob sie aufgelöst, teilweise aufgelöst, nicht unterstützt oder fehlerhaft ist, und die Karte Warnungen benennt, was nicht aufgelöst werden konnte.
Eine direkte Kante bedeutet, dass das Ziel unverändert aus der Quelle stammt — als einfache Referenz oder Alias. Ein Transformationsknoten erscheint, wenn der Wert berechnet wird: aggregiert, umgewandelt, verkettet oder in eine Funktion gehüllt; das Panel Details zeigt den zugehörigen Ausdruck. Über der Zeichenfläche stehen Knoten- und Kantenzahl der aktuellen Ansicht, und Zoom, Einpassen, Minimap und Vollbild wirken auf den gezeichneten Graphen.
Kontext ergänzt Abhängigkeiten, die genutzt, aber nicht durchgereicht werden: Spalten in WHERE-Filtern, JOIN-Schlüssel, Gruppierungsschlüssel. Eingeschaltet wird der Graph sichtbar größer, deshalb ist es von den Lineage-Filtern getrennt.
Die Liste reicht von ANSI / Generisches SQL über 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 und Presto bis Amazon Athena. Der Parser folgt der Auswahl: Quoting-Zeichen, LIMIT / TOP / FETCH FIRST oder MERGE-Syntax sind die üblichen Gründe, warum derselbe Text in einem Dialekt aufgeht und in einem anderen scheitert.
Die Erkennung arbeitet mit Belegen. MySQL-Dump-Kopf, ENGINE=InnoDB, Backtick oder AUTO_INCREMENT, ::-Umwandlungen oder COPY … FROM stdin, GO oder [dbo]., VARCHAR2 und TABLESPACE, PRAGMA, TIMESTAMP_NTZ und ähnliche Merkmale sprechen jeweils für einen Dialekt. Ein SELECT ohne Herstellersyntax liefert keine Belege, daher bittet die Seite um eine Auswahl; die Schaltfläche Beispiel lädt dann ein Muster für den gewählten Dialekt, etwa QUALIFY für BigQuery und Snowflake, MERGE für Databricks oder NVL für Oracle.
Die Abdeckung wird pro Anweisung gemeldet — aufgelöst, teilweise, nicht unterstützt oder Parse-Fehler — mit einer Konfidenz von hoch, mittel oder niedrig, sodass ein langes Skript zeigt, welche Teile die Engine verstanden hat. Warnungen benennen die konkrete Ursache: SELECT * ohne passendes Schema, eine Spalte, die in zwei verbundenen Tabellen existiert, dynamisches SQL oder eine Anweisung, die die Lineage-Engine noch nicht vollständig unterstützt.
Alles hier ist statische Analyse: Dynamisches SQL und Stored Procedures lassen sich nur so weit verfolgen, wie ihr Text es erlaubt, es wird keine Anweisung ausgeführt, und die Details hängen vom mitgelieferten Schema ab. Uploads akzeptieren .sql-Textdateien, der Projektimport eine Ordner- oder ZIP-/dbt-Auswahl bis 25 MB komprimiert und 50 MB entpackt, die Gesamteingabe ist auf 50 MB begrenzt — ab 5 MB erscheint ein Hinweis. Die Engine selbst sind mehrere Megabyte WebAssembly, deshalb dauert die erste Analyse mit kaltem Cache deutlich länger als die folgenden.