Azure SQL-Datenherkunft Es handelt sich um eine spaltenweise Abbildung des Datenflusses durch den T-SQL-Code, der in Azure SQL-Datenbank, Azure SQL Managed Instance und Synapse SQL ausgeführt wird: welche Quellspalten welche Zielspalten speisen und über welche Sichten, gespeicherten Prozeduren, Joins und Funktionen. Am genauesten lässt sich diese Abbildung erstellen, indem man den T-SQL-Code selbst analysiert. Gudu SQLFlow Genau das leistet es mit einem dedizierten Azure SQL-Dialektparser und kann die resultierende Spalten-Level-Herkunft in Microsoft Purview übertragen, sodass sie zusammen mit dem Rest Ihrer Azure-Umgebung angezeigt wird.
Probieren Sie es in 30 Sekunden: Fügen Sie eine beliebige Azure SQL-Abfrage oder gespeicherte Prozedur in das Feld ein. kostenloser SQLFlow-Lineage-VisualisiererWählen Sie den Azure SQL-Dialekt aus und erhalten Sie ein interaktives Diagramm zur Datenherkunft auf Spaltenebene. Die Cloud-Edition bietet ein kostenloses Kontingent.
Warum die Datenherkunft in Azure SQL ein Parsing-Problem ist
In Azure befindet sich die Transformationslogik, die Ihre Daten tatsächlich formt, selten in einer Pipeline-Definition. Sie ist in T-SQL implementiert: in aufeinander verschachtelten Ansichten, in gespeicherten Prozeduren, die von Azure Data Factory-Aktivitäten aufgerufen werden, VERSCHMELZEN Anweisungen, temporäre Tabellen und dynamisches SQL werden zur Laufzeit zusammengestellt. Ein allein auf Pipeline-Metadaten basierendes Herkunftsdiagramm zeigt zwar die einzelnen Elemente, aber nicht, was darin geschieht.
Zu wissen, dass Bericht.Monatlicher_Umsatz wird berechnet als SUMME(orders.amount) gefiltert nach Bestellungen.StatusEtwas muss den SQL-Code so lesen, wie es die Datenbank-Engine tut: jede Spaltenreferenz über CTEs, Unterabfragen, Sichten und … auflösen. WÄHLEN * Nach der Erweiterung wird der Datenfluss von den Quellspalten zu den Zielspalten verfolgt. Dies ist statische SQL-Analyse, und genau dafür wurde SQLFlow entwickelt. Es liest ausschließlich SQL-Code und Schema-Metadaten; die Zeilen in Ihren Tabellen werden niemals verändert.
Wo Microsoft Purview aufhört und wie das Parsen die Lücke füllt
Microsoft Purview erfüllt die Anforderungen einer katalogorientierten Plattform hervorragend: Es scannt und klassifiziert Assets in einer Azure-Umgebung, ordnet sensible Daten zu und zeigt die Datenherkunft der integrierten Datenmigrationstools wie Azure Data Factory und Synapse Pipelines an. Für Azure-Nutzer jeder Größenordnung ist Purview eine sinnvolle Plattform zur Erfassung der Datenherkunft. angezeigt.
Die Lücke liegt darin, wie die Abstammungslinie entsteht. berechnetPurviews automatisierte SQL-Lineage-Analyse weist Lücken bei komplexem T-SQL auf: gespeicherte Prozeduren mit Kontrollfluss, temporäre Tabellen und dynamisches SQL, das mit sp_executesql Genau dort stößt die automatische Abdeckung an ihre Grenzen und die Herkunftsgrenzen gehen verloren. Dort finden auch die Transformationen mit dem höchsten Risiko statt.
Die bewährte Arbeitsteilung: SQLFlow analysiert den T-SQL-Code, berechnet die Datenherkunft auf Spaltenebene (einschließlich Prozeduren und dynamischem SQL) und exportiert sie anschließend über den Microsoft Purview-Adapter. SQLFlow übernimmt die Berechnung, Purview die übersichtliche Darstellung. So bleibt Ihr Katalog zentral und die SQL-lastigen Bereiche sind nicht länger ungenutzt.
Was SQLFlow aus Azure SQL-Code extrahiert
SQLFlow liefert 39 dialektspezifische Parser anstelle einer generischen ANSI-Grammatik. Azure SQL gehört wie SQL Server zur T-SQL-Familie. Auch die dedizierten SQL-Pools von Synapse verwenden T-SQL, daher gilt die gleiche Analyse für Synapse-SQL-Skripte. Für Azure SQL-Code erzeugt SQLFlow Folgendes:
- Herkunft auf Spaltenebene: Für jede Ausgabespalte werden die genauen Quellspalten, die sie speisen, sowie die dazwischenliegenden Funktionen, Typumwandlungen, Unterabfragen, Joins und Mengenoperatoren aufgeführt. Referenzen werden mithilfe von CTEs, Sichten, Unterabfragen und Sternexpansion aufgelöst.
- Direkte vs. indirekte Abstammung: eine Spalte, die in einem
WOKlausel,VERBINDENZustand oderGRUPPE NACHDiese Werte landen zwar nie im Ergebnis, beeinflussen es aber dennoch. SQLFlow modelliert dies als separaten, umschaltbaren Beziehungstyp, sodass die Auswirkungsanalyse Filterspalten erfasst, die die meisten Herkunftsanalyse-Tools ignorieren. - Herkunft der gespeicherten Prozeduren: Ein spezieller Prozedurparser für die T-SQL-Familie verfolgt den Datenfluss durch Prozedurparameter und temporäre Tabellen und erstellt einen interaktiven Aufrufgraphen, der anzeigt, welche Prozeduren welche anderen aufrufen.
- Dynamische SQL-Auflösung: SQL-Abfrage innerhalb einer Prozedur und Ausführung mit
EXEodersp_executesqlwird aufgelöst und analysiert, anstatt übersprungen zu werden. Dies ist der häufigste blinde Fleck bei der automatisierten Herkunftsanalyse. - ER-Diagramme aus DDL: Primär- und Fremdschlüsselbeziehungen, abgeleitet aus Ihren Tabellendefinitionen, dargestellt als Entity-Relationship-Diagramm.
Die Eingabe kann aus eingefügtem SQL-Code, hochgeladenen Skriptdateien oder über JDBC abgerufenen Live-Metadaten bestehen. So können Sie SQLFlow auf eine Azure SQL-Datenbank verweisen und es die Ansichts- und Prozedurdefinitionen selbst erfassen lassen.
Beispiel: eine T-SQL-Prozedur mit dynamischem SQL
Dieses Verfahren führt dazu, dass automatisierte Lineage-Scanner versagen. Es speichert Daten in einer temporären Tabelle und erstellt anschließend die endgültige Tabelle. EINFÜGEN als Zeichenkette und führt sie aus:
CREATE PROCEDURE dbo.usp_refresh_regional_sales @region NVARCHAR(50) AS BEGIN SELECT o.customer_id, SUM(o.amount) AS total_amount INTO #staged FROM dbo.orders AS o WHERE o.region = @region GROUP BY o.customer_id; DECLARE @sql NVARCHAR(MAX) = N' INSERT INTO dbo.regional_sales (customer_id, customer_name, total_amount) SELECT s.customer_id, c.customer_name, s.total_amount FROM #staged AS s JOIN dbo.customers AS c ON c.customer_id = s.customer_id;'; EXEC sp_executesql @sql; END
Ein Scanner, der an der Prozedurgrenze stoppt, liefert hier keine hilfreichen Ergebnisse: Die Zieltabelle erscheint nur innerhalb eines Stringliterals. SQLFlow analysiert den Prozedurrumpf, löst das dynamische SQL auf und verfolgt den Datenfluss durch die temporäre Tabelle. Das Ergebnis ist:
regional_sales.total_amount←SUMME(orders.amount), via#staged.total_amount(direkte Abstammung).regional_sales.customer_name←Kunden.Kundenname(direkte Abstammung).orders.regionund die VerbindungsschlüsselKunden.Kunden-ID/orders.customer_idAls indirekte Abstammung gekennzeichnet: Sie filtern und verbinden das Ergebnis, ohne darin aufzutauchen.
Umbenennen orders.region Die Betrachtung der Pipeline-Metadaten zeigt, dass nichts davon abhängt. Die analysierte Sicht hingegen besagt, dass diese Prozedur im Hintergrund eine leere Tabelle aktualisiert. Genau das ist der Unterschied, den die Datenherkunft auf Spaltenebene ausmacht.
Einbindung der Datenlinie in den Microsoft-Purview-Bereich
SQLFlow-Implementierungen für Unternehmen umfassen Exportadapter für Microsoft Purview, DataHub und OpenMetadata. Der Workflow in einer Azure-Umgebung ist unkompliziert: SQLFlow scannt die Datenbanken im Batch-Verfahren (skaliert auf über 100 Datenbanken und mehr als eine Million Spalten, mit inkrementellen Scans und einem persistenten Datenherkunfts-Repository), berechnet die Datenherkunft auf Spaltenebene aus dem eigentlichen T-SQL-Code und veröffentlicht diese in Purview. Analysten und Stewards arbeiten weiterhin mit dem gewohnten Katalog; die zugrunde liegende Datenherkunft ist präzise und nicht nur eine bestmögliche.
Falls Sie Ihre Integration lieber selbst erstellen möchten, steht Ihnen die gleiche Datenbasis als JSON- oder CSV-Export und über eine REST-API zur Verfügung.
Bereitstellungsoptionen für Azure-Umgebungen
| Ausgabe | Am besten geeignet für | So funktioniert es |
|---|---|---|
| SQLFlow Cloud | Ich teste es heute an echten Anfragen. | SaaS mit kostenlosem Basistarif; Premium kostet $49,99/Monat. T-SQL-Code einfügen oder Datenquellen im Browser verbinden. |
| SQLFlow vor Ort | Regulierte Arbeitslasten, bei denen SQL-Text innerhalb des Netzwerks bleiben muss | Docker/Kubernetes in Ihrem eigenen Azure-Abonnement oder Rechenzentrum, bei Bedarf abgeschottet. 1.300.500 TP/Monat oder einmalig 1.300.4800 TP/Monat pro ausgewähltem Datenbanktyp, installierbar auf zwei Servern. |
| REST-API / Java-Bibliothek / CLI | Automatisierung der Datenherkunft innerhalb von CI oder einer Datenplattform | Dieselbe Analyse-Engine, aufrufbar aus Pipelines und JVM-Anwendungen. |
Unabhängig von der verwendeten Edition ist der Datenschutzstandard derselbe: SQLFlow führt ausschließlich eine statische Analyse des SQL-Codes durch und liest niemals Tabellenzeilendaten.
Azure SQL, SQL Server oder etwas anderes?
Azure SQL und lokale SQL Server gehören zwar zur T-SQL-Familie, verwenden aber in SQLFlow unterschiedliche Dialekte mit jeweils eigenem Parser. Wenn Ihre Umgebung auf selbstgehosteten SQL Servern basiert, SQL Server-Datenherkunft Die Seite behandelt diesen Aspekt detailliert; hybride Systeme können beides in einem Repository analysieren. Und falls Sie noch Ansätze vergleichen (katalognative Herkunftsanalyse, laufzeitprotokollbasierte Herkunftsanalyse, Open-Source-Parser), bietet die Übersicht der die besten Datenherkunftstools legt dar, wo jede Kategorie ihren Platz hat und wo SQL-Parsing die richtige Lösung ist.
Under the hood, all of this runs on the General SQL Parser engine, developed commercially since the mid-2000s and validated against roughly 13,600 per-dialect SQL test fixtures. Depth on hard SQL is the product.
Häufig gestellte Fragen
Unterstützt SQLFlow Azure Synapse SQL?
Ja. Synapse-SQL-Pools verwenden T-SQL, und der Azure SQL-Dialektparser von SQLFlow deckt die T-SQL-Familie ab. Sie können Synapse SQL-Skripte, -Sichten und -gespeicherte Prozeduren genauso analysieren wie Azure SQL-Datenbankcode.
Kann SQLFlow die Herkunft von dynamischem SQL in gespeicherten Prozeduren nachverfolgen?
Ja. SQL-Code, der innerhalb einer Prozedur zusammengestellt und ausgeführt wird mit EXE oder sp_executesql Die Abfrage wird aufgelöst und analysiert, anstatt übersprungen zu werden, und die Abfolge wird über Prozedurparameter und temporäre Tabellen nachverfolgt. SQLFlow erstellt außerdem einen Aufrufgraphen der Prozeduraufrufe.
Wie gelangt die SQLFlow-Herkunft in Microsoft Purview?
SQLFlow nutzt einen in Unternehmensumgebungen integrierten Exportadapter, um die Datenherkunft auf Spaltenebene durch Parsen Ihres T-SQL-Codes zu berechnen und diese anschließend an Purview zu übermitteln. So erscheint sie im Katalog neben den Scans von Purview. Für benutzerdefinierte Integrationen stehen Ausgaben in den Formaten JSON, CSV und REST-API zur Verfügung.
Benötigt SQLFlow Zugriff auf die Daten in meinen Azure SQL-Tabellen?
Nein. SQLFlow führt eine statische Analyse des SQL-Codes durch und liest optional Schema-Metadaten (Tabellen-, Sicht- und Prozedurdefinitionen) über JDBC. Es liest niemals Zeilen. Die On-Premise-Edition hält sogar den SQL-Text innerhalb Ihres Netzwerks.
Welchen Mehrwert bietet die Spalten-Level-Herkunftsanalyse gegenüber der Asset-Level-Ansicht von Purview?
Präzision. Die Herkunftsanalyse auf Asset-Ebene zeigt, welche Tabelle einen Bericht speist; die Herkunftsanalyse auf Spaltenebene zeigt, welche spezifischen Spalten welche Daten durch welche Transformationen speisen, und kennzeichnet zusätzlich Spalten, die die Ergebnisse nur über Filter und Joins beeinflussen. Genau diese Granularität ist für Wirkungsanalysen und Prüfungsfragen erforderlich.
Wie viel kostet SQLFlow?
SQLFlow Cloud ist kostenlos; Premium-Konten kosten $49,99/Monat. SQLFlow On-Premise kostet $500/Monat oder einmalig $4.800 pro ausgewähltem Datenbanktyp. Ausführliche Informationen finden Sie unter [Link einfügen]. Preisseite.
Sehen Sie sich jetzt Ihre Azure SQL-Herkunft an.
Fügen Sie Ihre komplizierteste T-SQL-Prozedur in den kostenlosen Visualisierer ein oder sprechen Sie mit uns über das Scannen Ihrer Azure-Umgebung und den Export nach Purview.