A Data-Lineage-API ermöglicht die programmatische Extraktion von Datenherkunft: Sie übermitteln SQL-Code über HTTP und erhalten einen strukturierten Herkunftsgraphen im JSON-Format, der jede Quelltabelle und -spalte, jedes Ziel sowie die Transformationsbeziehungen zwischen ihnen auflistet. Gudu SQLFlow REST-API Genau das leistet es für 39 SQL-Dialekte auf Spaltenebene, einschließlich gespeicherter Prozeduren und dynamischem SQL. Dieselbe Analyse, die den interaktiven Diagrammen von SQLFlow zugrunde liegt, ist als strukturierte Herkunftsdaten über HTTP verfügbar.
Sehen Sie sich zuerst die Ausgabe an: Fügen Sie eine Abfrage in die kostenloser SQLFlow-Lineage-VisualisiererExportieren Sie anschließend den Graphen als JSON, um zu sehen, wie die Herkunftsinformationen als Daten aussehen, bevor Sie eine Zeile Integrationscode schreiben.
Warum sollten Sie eine Data-Lineage-API in Ihre Technologieinfrastruktur integrieren?
Interaktive Herkunftsdiagramme ermöglichen es Menschen, die Herkunft von Daten zu erforschen. Die wertvollsten Anwendungen von Herkunftsdaten sind jedoch automatisiert: das Blockieren eines Pull Requests, der einen nachfolgenden Bericht unbemerkt beschädigt, die Aktualisierung der Herkunft eines Datenkatalogs ohne manuelle Pflege oder die Beantwortung der Frage „Welche Daten stammen aus dieser Spalte?“ innerhalb der eigenen internen Tools. All dies erfordert Herkunftsdaten als bedarfsgerechte Daten von einem aufrufbaren Dienst.
SQLFlow verwendet den Ansatz der statischen SQL-Analyse. Die API analysiert den gesendeten SQL-Text und greift dabei niemals auf die Zeilen Ihrer Tabellen zu. Dadurch bleibt die Sicherheitsprüfung kurz: Es wird lediglich SQL-Code übertragen. On-Premise-Version Selbst das bleibt innerhalb Ihres Netzwerks. Der zugrundeliegende Motor ist der Allgemeiner SQL-Parser, ein kommerzielles SQL-Compiler-Frontend, das seit Mitte der 2000er Jahre entwickelt und anhand von rund 13.600 Test-Fixtures pro Dialekt validiert wurde, sodass die zurückgegebene Herkunft aus einem vollständigen semantischen Modell des SQL-Codes und nicht aus einem Regex-Abgleich erstellt wird.
Was die SQLFlow REST-API zurückgibt
Konzeptionell stellt die API die vollständige SQLFlow-Analyseoberfläche als JSON-über-HTTP bereit:
| Fähigkeit | Sie senden | Du kommst zurück |
|---|---|---|
| Stammbaum | SQL-Text plus Dialektkennung | Der vollständige Herkunftsgraph auf Spaltenebene als JSON: Tabellen, Spalten und Quell-Ziel-Beziehungen |
| Upstream-/Downstream-Trace | Eine Tabelle oder Spalte von Interesse | Nur der Subgraph, der dieses Objekt speist (Upstream) oder von ihm gespeist wird (Downstream), für die gezielte Wirkungsanalyse |
| Abstammung auf Tabellenebene | SQL-Text, angeforderte Tabellengranularität | Ein kompakter Abhängigkeitsgraph zwischen Tabellen, wenn Spaltendetails irrelevant wären. |
| Direkte vs. indirekte Abstammung | Ein Hinweis auf die Anfrage | Reine Datenflussbeziehungen oder zusätzlich die Spalten, die die Ergebnisse formen durch WO, VERBINDEN, Und GRUPPE NACH Klauseln |
| Aufrufdiagramm gespeicherter Prozeduren | PL/SQL- oder T-SQL-Prozedurrümpfe | Welche Prozeduren welche aufrufen, mit nachvollziehbarer Herkunft über Parameter, temporäre Tabellen und dynamisches SQL |
| ER-Diagramm | DDL-Skripte | Abgeleitete Primär-/Fremdschlüsselbeziehungen als Entity-Relationship-Modell |
| Exporte | Ein analysierter Job | JSON oder CSV für Maschinen, PNG für Dokumentation und Tickets |
Jede Anfrage gibt ihren Dialekt explizit an. SQLFlow liefert dialektspezifische Parser für 39 Datenbanken und Abfrage-Engines, von Snowflake, BigQuery, Databricks und Redshift bis hin zu Oracle, SQL Server, Teradata, Hive und Trino. Dadurch wird herstellerspezifische Syntax, wie z. B. temporäre Tabellen in T-SQL, gemäß der Herstellerdefinition analysiert und nicht durch eine generische ANSI-Grammatik approximiert. Die vollständige Liste finden Sie auf der Website. Überblick über SQL-Datenherkunftstools.
Minimalbeispiel: POST-SQL-Anfrage, Empfang eines Herkunftsdiagramms
Die Kerninteraktion besteht aus einem HTTP-Aufruf. Sie senden SQL-Text und einen Dialekt; die Antwort ist der Herkunftsgraph. Endpunktpfade, Authentifizierung und die vollständige Parameterreferenz befinden sich im SQLFlow-API-DokumentationDie Struktur des Austauschs sieht folgendermaßen aus:
curl -s -X POST "$SQLFLOW_API/lineage" -H "Authorization: Bearer $SQLFLOW_TOKEN" --form "dbvendor=snowflake" --form 'sqltext=CREATE VIEW customer_ltv AS SELECT c.customer_id, SUM(o.amount) AS lifetime_value FROM customers c JOIN orders o ON o.customer_id = c.customer_id WHERE o.status = ''paid'' GROUP BY c.customer_id;'
Die Antwort ist ein Graph: eine Liste von Datenbankobjekten (Tabellen, Sichten und deren Spalten) und eine Liste der Beziehungen zwischen den Spalten. Zur Veranschaulichung gekürzt und vereinfacht:
{ "relationships": [ { "type": "direct", "target": {"object": "customer_ltv", "column": "lifetime_value"}, "sources": [{"object": "orders", "column": "amount", "via": "SUM"}] }, { "type": "direct", "target": {"object": "customer_ltv", "column": "customer_id"}, "sources": [{"object": "customers", "column": "customer_id"}] }, { "type": "indirect", "target": {"object": "customer_ltv", "column": "lifetime_value"}, "sources": [{"object": "orders", "column": "status", "via": "WHERE"}] } ] }
Beachten Sie die dritte Beziehung. Bestellungen.Status Es erscheint zwar nie in der Ausgabe der Ansicht, filtert aber die zu summierenden Zeilen und hat daher definitiv Auswirkungen. LebensdauerwertSQLFlow modelliert dies als indirekte AbstammungDiese Daten unterscheiden sich vom direkten Datenfluss und können separat angefordert werden. Die meisten Lineage-Tools treffen diese Unterscheidung nicht, und genau das benötigt ein Anwender einer Wirkungsanalyse: das Ablegen von Datenflussdaten. Bestellungen.Status würde diese Ansicht verfälschen, obwohl keine Ausgabespalte daraus „stammt“.
Anwendungsfall: Herkunftsprüfungen in CI
Die wirkungsvollste Integration ist diejenige, die vor der Auslieferung fehlerhafter SQL-Anweisungen ausgeführt wird. In einem CI-Job bei jedem Pull Request, der SQL betrifft:
- Poste die geänderten SQL-Dateien am Lineage-Endpunkt und erhalte den neuen Graphen.
- Vergleiche es mit dem Graphen des Hauptzweigs: Welche Spalten haben Quellen hinzugewonnen oder verloren, welche nachgelagerten Objekte haben ihre Eingaben geändert?
- Die Überprüfung schlägt fehl, oder die Differenz wird als Kommentar in der Überprüfung veröffentlicht, wenn eine Änderung Spalten betrifft, die geschützte Ziele wie regulatorische Berichte oder Management-Dashboards speisen.
Da die Analyse statisch ist, funktioniert sie auch mit Code, der noch nie ausgeführt wurde. Die fehlerhafte Abhängigkeit wird erst bei der Codeüberprüfung erkannt, nicht erst, wenn der Batchlauf um 2 Uhr nachts fehlschlägt. Dasselbe Muster steuert Schema-Migrationen: vor einem Fallspalte Bei lands gibt ein Downstream-Trace-Aufruf alle Objekte aus, die die Spalte direkt oder über einen Filter verwenden.
Anwendungsfall: Befüllung Ihres Datenkatalogs
Katalogplattformen eignen sich gut für die Organisation von Metadaten, Besitzverhältnissen und die Auffindbarkeit; die SQL-Historie auf Spaltenebene ist jedoch meist ihre größte Schwäche. SQLFlow fungiert als Engine für die Historienanalyse: Es analysiert Ihre SQL-Umgebung und überträgt die Ergebnisse anschließend in den bereits vorhandenen Katalog. Enterprise-Implementierungen beinhalten vorgefertigte Exportadapter für DataHub, Microsoft Purview und OpenMetadataDie JSON- und CSV-Exporte dienen als Grundlage für alle benutzerdefinierten Anpassungen. Im großen Maßstab werden Batch- und inkrementelle Scans über mehr als 100 Datenbanken und über eine Million Spalten hinweg durchgeführt. Dank eines persistenten Herkunftsarchivs bleibt der Katalog stets aktuell, ohne dass die Herkunft manuell gepflegt werden muss.
Anwendungsfall: Herkunftsnachverfolgung innerhalb Ihrer eigenen Tools
Interne Datenplattformen entwickeln immer wieder dieselben Funktionen: ein Panel zur Herkunft von Metriken, eine Überprüfung veralteter Funktionen, eine Migrationsabhängigkeitsübersicht. Anstatt einen SQL-Parser zu erstellen, rufen Sie die API von Ihrem Dienst aus auf und stellen Sie das Diagramm nach Ihren Wünschen dar. Wenn Sie das interaktive Diagramm selbst anstelle von rohem JSON benötigen, bietet SQLFlow auch ein einbettbares JavaScript-Widget mit einer API von über 30 Methoden, das sich in jede Webanwendung integrieren lässt. Für die reine JVM-Integration im Backend steht eine Java-Bibliothek mit derselben Engine zur Verfügung. API, Widget und Bibliothek liefern konsistente Ergebnisse, da sie denselben Parser verwenden.
Wandeln Sie Ihre SQL-Abfrage in einen Herkunftsgraphen über HTTP um.
Untersuchen Sie den Graphen im kostenlosen Visualisierer und senden Sie dann die gleiche SQL-Anweisung per POST aus Ihrer Pipeline an die REST-API.
Wie schneidet diese Option im Vergleich zu anderen programmatischen Herkunftsanalyseoptionen ab?
Dies ist ein SQL-Analysedienst, keine Parserbibliothek oder ein Laufzeitkollektor. Drei Kategorien sind es wert, bekannt zu sein. Open-Source-Parsing-Bibliotheken wie sqllineage Und sqlglot Sie eignen sich hervorragend zum Parsen einzelner Anweisungen innerhalb eines Python-Prozesses und sind für einfache SELECT- und INSERT-Logik möglicherweise ausreichend; die Lücke zeigt sich bei gespeicherten Prozeduren, dynamischem SQL, Dialekt-Sonderfällen und der Auflösung von Views oder Sternerweiterungen, die einen Schema-Kontext erfordern. Laufzeit-Abstammungsstandards Ähnlich wie OpenLineage, das die Herkunft von Job-Ausführungsereignissen erfasst, was hervorragend für die Herkunftsnachverfolgung auf Orchestrator-Ebene, von Ausführung zu Ausführung, geeignet ist, sieht es nur Code, der tatsächlich ausgeführt wurde, und zwar in der Granularität, die die ausgebende Integration bietet. Katalogbasierte Plattformen Die Lineage-APIs von SQLFlow bieten Zugriff auf alle erfassten Daten, sodass ihre Ergebnisse nur so tief reichen wie die erfassten Daten. Die REST-API von SQLFlow hingegen ist ein spezialisierter SQL-Analysedienst, der die Lineage auf Spaltenebene direkt aus dem Code berechnet – einschließlich des SQL-Codes, der nie ausgeführt wurde, und der Prozeduren, die andere Tools überspringen. Die beiden Ansätze ergänzen sich gut; viele Teams nutzen SQLFlow zur Lineage-Berechnung und einen Katalog, um die Ergebnisse den Endbenutzern bereitzustellen.
Wo die API ausgeführt wird: in der Cloud oder in Ihrem eigenen Netzwerk
Die REST-API ist in beiden SQLFlow-Bereitstellungen verfügbar. SQLFlow Cloud ist der schnellste Einstieg: eine SaaS-Lösung mit kostenlosem Tarif, Premium-Tarif für $49,99/Monat, keine zu betreibende Infrastruktur. SQLFlow vor Ort Die Bereitstellung erfolgt über Docker oder Kubernetes innerhalb Ihres Netzwerks, funktioniert vollständig isoliert und kostet 1.300.500 TP/Monat oder einmalig 1.300.4800 TP pro ausgewähltem Datenbanktyp. Die Installation ist auf zwei Servern möglich. Üblicherweise wird die Integration zunächst in der Cloud prototypisch entwickelt und anschließend werden dieselben API-Aufrufe auf einen lokalen Host übertragen, sodass SQL-Daten Ihre Infrastruktur nicht verlassen.
Häufig gestellte Fragen
Gibt die API die Herkunftsinformationen auf Spalten- oder Tabellenebene zurück?
Beides. Die Spaltenebene ist die Standardtiefe: Für jede Ausgabespalte erhalten Sie die exakten Quellspalten sowie die Funktionen, Joins und Mengenoperationen zwischen ihnen, wobei direkte und indirekte Abhängigkeiten unterschieden werden. Sie können die Tabellenebene als Granularität anfordern, wenn ein kompakter Abhängigkeitsgraph ausreicht.
Welche SQL-Dialekte unterstützt die Data-Lineage-API?
39 Dialekte, jeder mit eigenem Parser: Snowflake, BigQuery, Redshift, Databricks, Oracle, SQL Server, PostgreSQL, MySQL, Teradata, Hive, Spark SQL, Trino und weitere. Sie geben den gewünschten Dialekt in jeder Anfrage an.
Kann es gespeicherte Prozeduren und dynamisches SQL analysieren?
Ja. Oracle PL/SQL und SQL Server T-SQL verfügen über dedizierte Prozedurparser. Die Herkunft des Codes wird über Prozedurparameter und temporäre Tabellen nachverfolgt, dynamischer SQL-Code innerhalb von Prozeduren wird aufgelöst und analysiert, und die API kann den Aufrufgraphen der einzelnen Prozeduren zurückgeben.
Benötigt die API Zugriff auf meine Daten?
Nein. Es führt eine statische Analyse des von Ihnen übermittelten SQL-Textes durch und liest niemals Tabellenzeilendaten. Bei der On-Premise-Edition verbleibt der SQL-Text selbst ebenfalls innerhalb Ihres Netzwerks.
Welche Ausgabeformate stehen zur Verfügung?
JSON ist das primäre Format für die programmatische Nutzung; der CSV-Export eignet sich für Tabellenkalkulationen und Massenimporte, und der PNG-Export erzeugt das gerenderte Diagramm für die Dokumentation. Enterprise-Implementierungen bieten Exportadapter für DataHub, Microsoft Purview und OpenMetadata.
Wo finde ich die vollständige API-Referenz?
Bei docs.gudusoft.comDies umfasst Endpunktpfade, Authentifizierung, Anfrageparameter pro Funktion und das vollständige Antwortschema. Informationen darüber, welche Pläne API-Zugriff beinhalten, finden Sie hier. SQLFlow-Preisgestaltung.
Ermitteln Sie die Herkunft Ihrer SQL-Abfragen als JSON.
Fügen Sie eine Abfrage in den kostenlosen Visualisierer ein, um die Graphstruktur zu untersuchen, und verbinden Sie dann die REST-API mit Ihrer Pipeline.