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: SQL-Lineage für Spalten, Tabellen und Auswirkungen | KivTools

SQL-Lineage- und Auswirkungsanalyse

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 Browser
NUR LOKAL 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.

So liest man die Spalten-Lineage aus SQL

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.

  1. Anweisungen eintippen, einfügen oder Beispiel laden drücken. Der Tab Schema nimmt CREATE TABLE-Definitionen auf — sie ermöglichen die Expansion von SELECT * und die Qualifizierung mehrdeutiger Spalten.
  2. Den Dialekt auf Automatisch erkennen lassen oder einen der 23 Einträge wählen. Die Erkennung liest herstellertypische Merkmale im Text; sind sie zu dünn, bittet die Seite um eine Auswahl statt zu raten.
  3. Auf Lineage analysieren drücken. Abdeckung und Graph erscheinen zusammen; Abbrechen stoppt eine laufende Analyse, und die Engine wird für den nächsten Lauf neu geladen.
  4. Auswerten: nach Tabelle, View oder Spalte suchen, die Umgebung des gewählten Knotens mit Vorgelagert/Nachgelagert filtern und Kontext einschalten, um Abhängigkeiten zu ergänzen, die verwendet, aber nicht durchgereicht werden — Filter- und Gruppierungsschlüssel. Ein Klick auf einen Knoten zeigt SQL-Fragment und Ausdruck; die Karte Nachgelagerte Auswirkungen zählt betroffene Spalten, Views und Endergebnisse.
  5. JSON, CSV, PNG, SVG oder GraphML exportieren. Alle Dateien entstehen lokal im Browser; die CSV enthält eine Zeile pro Kante mit Quelle, Ziel, Beziehung, Anweisung, Datei und Ausdruck.

Was die Analyse auflöst und was nicht

Den Graphen lesen

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.

Dialekte und Erkennung

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.

Abdeckung, Warnungen und Grenzen

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.

Zuletzt verwendet: