BigQuery-Datenherkunft: Spaltenebene-Herkunft für Google BigQuery SQL

BigQuery-Datenherkunft ist die Karte, die den Datenfluss in Ihrem BigQuery-Projekt darstellt: welche Quelltabellen und -spalten die einzelnen abgeleiteten Tabellen, Ansichten und geplanten Abfragen speisen und welche Ausdrücke die Daten dabei transformieren. Googles Dataplex erfasst die Datenherkunft für BigQuery-Aufträge automatisch auf Tabellenebene; um zu sehen, welche Spalten Welchen Input geben Sie und welche Funktionen und Joins müssen Sie verwenden, um das SQL selbst zu parsen? Gudu SQLFlow genau das tut es, mit einem dedizierten BigQuery-Dialektparser, der verschachtelte Abfragen auflöst. STRUKTUR Felder UNNEST, Sternexpansion und Ansichtsketten bis hin zur Spaltengranularität.

Probieren Sie es in 30 Sekunden: Fügen Sie eine beliebige BigQuery-Abfrage in das Feld ein. kostenloser SQLFlow-Lineage-VisualisiererWählen Sie den BigQuery-Dialekt aus und erhalten Sie ein interaktives Datenherkunftsdiagramm auf Spaltenebene. Die Cloud-Edition bietet ein kostenloses Kontingent.

Warum die BigQuery-Herkunftsnachverfolgung schwieriger ist als sie aussieht

BigQuerys SQL ist kein generisches ANSI-SQL. Insbesondere drei Funktionen führen dazu, dass Lineage-Tools, die auf einer universellen Grammatik basieren, nicht mehr funktionieren:

  • Verschachtelte und wiederholte Spalten. Eine einzelne BigQuery-Spalte kann eine STRUKTUR andere Felder enthaltend oder ein ARRAY von Strukturen. Die tatsächliche Abstammung muss bis ins Innere reichen: orders.customer.email ist ein anderer Abstammungsknoten als Bestellungen.Kunde.Land, obwohl beide in einer einzigen physischen Säule leben.
  • UNNEST. Das Glätten eines wiederholten Feldes wandelt eine Zeile in mehrere um und führt mitten in der Abfrage eine abgeleitete Relation ein. Ein Parser, der dies nicht modelliert. UNNEST Die Verbindung zwischen dem vereinfachten Alias und dem Array-Feld, aus dem er stammt, geht verloren.
  • Sternenexpansion. WÄHLEN * Die Verwendung einer Kette von Sichten bedeutet, dass die Ausgabespalten nirgendwo im Abfragetext definiert sind. Um sie aufzulösen, werden die Tabellen- und Sichtdefinitionen benötigt, nicht nur die einzelne Anweisung, die Ihnen vorliegt.

SQLFlow liefert einen BigQuery-spezifischen Parser (einen der 39 dialektspezifische Parser Im Produkt gibt es keine einzige generische Grammatik, die alle drei abdeckt. Es löst jede Spaltenreferenz über CTEs, Unterabfragen, Sichten und Sternexpansion auf und modelliert verschachtelte STRUKTUR Felder als erstklassige Abstammungsknoten.

Dataplex liefert Ihnen die Auftragsherkunft auf Tabellenebene. Und was dann?

Dataplex (die Datenverwaltungsschicht von Google Cloud) ist in seiner Funktion wirklich gut: Es überwacht BigQuery-Jobs während ihrer Ausführung und protokolliert, welche Tabellen jeder Job liest und beschreibt. Wenn Sie wissen möchten, welche Tabellen eine geplante Abfrage befüllt, … dw.daily_revenue aus RohbestellungenDas teilt Ihnen Dataplex bereits mit.

Die Laufzeitüberwachung eines Jobs kann Ihnen nicht die Transformationslogik zwischen diesen Tabellen aufzeigen: welche Quellspalten welche Ausgabespalten speisen und welche Ausdrücke, Filter und Joins verwendet werden. Diese Informationen sind nur im SQL-Text enthalten, daher ist für ihre Extraktion SQL-Parsing erforderlich. Die beiden Ansätze beantworten unterschiedliche Fragen:

FrageDataplex-JobhistorieSQLFlow analysierte Herkunft
Welche Tabellen fallen unter diese Aufgabe?Ja, automatisch, pro JoblaufJa, aus dem SQL-Code.
Welche Spalten speisen Tagesumsatz.gesamt?Nein – TabellengranularitätJa, pro Ausgabespalte
Welcher Ausdruck berechnet die einzelnen Ausgabespalten?NEINJa: Funktionen, Typumwandlungen, Aggregate
Welche Spalten dienen nur der Filterung oder der Verknüpfung (indirekte Herkunft)?NEINJa, als separate, umschaltbare Ebene
Herkunftsnachweis für SQL-Anweisungen, die noch nicht ausgeführt wurden (Code-Review, Migration)Nein – es bedarf einer ausgeführten Aufgabe.Ja – statische Analyse des SQL-Textes

Teams verwenden typischerweise beides: Dataplex für die ständige Jobverwaltung und SQL-Parsing, wenn sie spaltengenau Antworten auf Fragen wie „Was funktioniert nicht mehr, wenn ich diese Spalte ändere?“ oder „Woher genau kommt diese Zahl?“ benötigen.

Beispiel: CREATE TABLE AS SELECT mit UNNEST

Hier ist ein typisches BigQuery-Muster: Erstellen einer flachen Umsatztabelle aus einer Bestelltabelle mit wiederholten Positionsartikel Struktur.

CREATE TABLE dw.order_line_revenue AS SELECT o.order_id, o.customer.email AS customer_email, li.product_id, li.qty * li.unit_price AS line_revenue FROM raw.orders AS o, UNNEST(o.line_items) AS li WHERE o.status = 'COMPLETE';

Übergeben Sie dies an SQLFlow, und die erzeugte Spaltenherkunft ist:

  • order_line_revenue.customer_email stammt aus dem verschachtelten Feld raw.orders.customer.email — ein Strukturelement, nicht das Ganze Kunde Spalte.
  • order_line_revenue.line_revenue kommt von raw.orders.line_items.qty Und raw.orders.line_items.unit_pricedurch die UNNEST alias li und einer Multiplikation. Beide Quellfelder befinden sich innerhalb einer wiederholten Struktur; SQLFlow verfolgt die Vereinfachung.
  • Rohbestellungsstatus erscheint als indirekte AbstammungEs landet nie in der Ausgabe, aber WO Der Filter beeinflusst jede Zeile des Ergebnisses. SQLFlow modelliert direkten Datenfluss und indirekten Einfluss (WHERE-, JOIN- und GROUP BY-Spalten) als unterschiedliche Beziehungstypen, die im Diagramm separat umgeschaltet werden können – eine Unterscheidung, die die meisten Datenherkunftsanalyse-Tools gar nicht treffen.

Indirekte Abstammung ist wichtiger, als es zunächst scheint. Wenn jemand die Enum-Werte in Status, ein rein direktes Abstammungstool sagt Linienumsatz ist nicht betroffen. Das stimmt nicht: Jede nachgelagerte Umsatzkennzahl ändert sich. Eine Wirkungsanalyse ohne Berücksichtigung der indirekten Umsatzlinie ist eine Wirkungsanalyse mit blinden Flecken.

Verfolgung geplanter Abfragen und Ansichtsketten

In den meisten BigQuery-Umgebungen ist die interessante Datenherkunft nicht eine einzelne Anweisung, sondern eine Kette: Rohtabellen, dann eine Ebene von Ansichten, dann eine geplante Abfrage, die eine Berichtstabelle erstellt, und schließlich weitere Ansichten. Jede einzelne Verbindung ist leicht nachvollziehbar; der vollständige Pfad von einer Quellspalte zu einem Dashboard-Feld hingegen nicht.

SQLFlow analysiert das gesamte Set zusammen. Geben Sie ihm das View-DDL plus das geplante Abfrage-SQL (Einfügen, Datei-Upload, Live-Metadaten über JDBC, ein dbt-Manifest oder Grabit-Metadatenextraktion), und es verbindet die Kette: View-auf-View-Referenzen werden aufgelöst, WÄHLEN * Die Darstellung wird anhand der realen Schemas auf jeder Ebene erweitert. Das resultierende Diagramm ermöglicht es, auf jede Ausgabespalte zu klicken und die Datenherkunft über alle Zwischenansichten bis zu den Quellspalten in den Rohdatentabellen zu verfolgen. Der Export erfolgt im JSON-, CSV- oder PNG-Format oder programmatisch über die REST-API. Unternehmensbereitstellungen übertragen die Datenherkunft in DataHub, Microsoft Purview oder OpenMetadata.

ER-Diagramme aus NICHT ERZWUNGENEN Einschränkungen

BigQuery unterstützt Primär- und Fremdschlüssel nur als NICHT DURCHGESETZT Einschränkungen: Sie werden in der DDL für den Optimierer und die Dokumentation deklariert, aber nie beim Schreiben überprüft. Da sie nicht erzwungen werden, nehmen viele Teams an, es handele sich um nutzlose Metadaten. Das stimmt nicht – sie sind genau die Beziehungsdefinitionen, die ein ER-Diagramm benötigt.

Die ER-Inferenz von SQLFlow versteht BigQuerys NICHT DURCHGESETZT PK/FK-Idiom: Führen Sie Ihr DDL-Skript damit aus, und es erstellt das Entity-Relationship-Diagramm aus Einschränkungen wie z. B. PRIMÄRSCHLÜSSEL (order_id) HINZUFÜGEN NICHT ERZWUNGEN und die passende FREMDER SCHLÜSSEL ... REFERENZEN ... NICHT ERZWUNGEN Deklarationen. Das Ergebnis ist ein ER-Modell Ihres Data Warehouse, das direkt aus dem bereits vorhandenen DDL generiert wird, für Schemata, deren Beziehungsdokumentation wahrscheinlich nirgendwo sonst existiert.

Wofür nutzen Teams die Datenherkunftsanalyse von BigQuery?

  • Folgenabschätzung vor Schemaänderungen: Finden Sie alle geplanten Abfragen, Ansichten und Berichte, die eine Spalte tatsächlich speist – einschließlich über UNNEST und Zugriff auf Strukturen – bevor Sie sie umbenennen oder neu typisieren.
  • Fehlerbehebung bei falschen Zahlen: Gehen Sie von einer Dashboard-Metrik über die Ansichtskette zurück zu den genauen Quellfeldern und Ausdrücken, die sie erzeugt haben.
  • Migrationsplanung: Beim Import oder Export von Daten in BigQuery zeigt der Abhängigkeitsgraph die Reihenfolge der Datenverschiebung an und gibt an, welche Daten bedenkenlos verbleiben können. SQLFlow erstellt denselben Graphen auf Spaltenebene für … Schneeflocke Und Amazon RedshiftSo können standortübergreifende Migrationen auf beiden Seiten mit einem einzigen Tool abgebildet werden.
  • Compliance und Audit: Nachweis, welche Quellfelder in eine regulierte Ausgabe mit der von den Prüfern geforderten Spaltengranularität fließen, die aus dem SQL generiert und nicht manuell gepflegt wird.

Datenschutz, Bereitstellung und Preisgestaltung

SQLFlow führt ausschließlich statische Analysen von SQL-Code und Schema-Metadaten durch. Es liest niemals die Zeilen Ihrer BigQuery-Tabellen und benötigt kein Dienstkonto mit Datenzugriff – SQL-Text und DDL genügen. SQLFlow Cloud bietet eine kostenlose Version (Premium kostet 1.030 TP3T49,99/Monat). Für regulierte Umgebungen SQLFlow vor Ort Läuft auf Docker oder Kubernetes in Ihrem eigenen Netzwerk, bei Bedarf abgeschottet, zu $500/Monat oder einmalig $4.800 pro ausgewähltem Datenbanktyp; vollständige Details finden Sie auf der Preisseite. Enterprise-Implementierungen scannen im Batch-Verfahren Bestände von mehr als 100 Datenbanken und über einer Million Spalten mit inkrementellen Scans und einem persistenten Herkunftsarchiv.

Häufig gestellte Fragen

Liefert Dataplex mir nicht bereits die BigQuery-Herkunftsdaten?

Ja, auf Tabellenebene. Dataplex protokolliert automatisch, welche Tabellen jeder BigQuery-Job liest und beschreibt – eine zuverlässige Jobübersicht. Die Transformationslogik im SQL-Code – welche Spalten welche Daten über welche Ausdrücke verarbeiten – wird jedoch nicht extrahiert. Dafür benötigen Sie ein Tool, das den SQL-Code analysiert, wie beispielsweise SQLFlow.

Kann SQLFlow die Herkunft über STRUCT- und ARRAY-Spalten nachverfolgen?

Ja. Der BigQuery-Parser modelliert verschachtelte Strukturfelder als einzelne Herkunftsknoten, daher Kunden-E-Mail Und Kunde.Land haben eine separate Abstammungslinie und verfolgen Felder durch UNNEST Glättung wiederholter Spalten.

Wie verarbeitet SQLFlow SELECT * in BigQuery-Views?

Sternausdrücke werden anhand der tatsächlichen Tabellen- und Ansichtsdefinitionen erweitert, sodass jede implizite Spalte eine explizite Herkunft erhält. Dies funktioniert über mehrschichtige Ansichtsketten hinweg, wobei die Spalten hinter einer WÄHLEN * kann aus mehreren vorgelagerten Perspektiven definiert werden.

Kann es die Herkunft von geplanten Abfragen und Ansichten gemeinsam abbilden?

Ja. Analysieren Sie die geplante SQL-Abfrage und betrachten Sie das DDL als einen einzigen Auftrag. SQLFlow verknüpft die gesamte Kette, sodass Sie eine Berichtsspalte über die materialisierende Abfrage und jede Zwischenansicht bis zu den Rohdatenspalten zurückverfolgen können.

Benötigt SQLFlow Zugriff auf meine BigQuery-Daten?

Nein. Es handelt sich um eine statische Analyse: SQL-Text plus optionale Schema-Metadaten. Tabellenzeilendaten werden niemals gelesen. Bei einer On-Premise-Lösung verbleibt sogar der SQL-Text innerhalb Ihres Netzwerks.

Was 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 und kann auf zwei Servern installiert werden.

Sehen Sie sich jetzt Ihre BigQuery-Herkunft an

Fügen Sie eine BigQuery-Abfrage in den kostenlosen Visualisierer ein oder sprechen Sie mit uns über die Möglichkeit, Ihr gesamtes Projekt zu scannen.