Datenabfolge¶
Snowflake verfolgt, wie Daten von Quell- zu Zielobjekten fließen, z. B. von einer Tabelle zu einer Ansicht, und lässt Sie sehen, woher die Daten in einem Objekt stammen oder wohin sie gehen. Diese Informationen werden Data Lineage genannt und helfen Ihnen, die Beziehungen zwischen Ihren Snowflake-Objekten zu verstehen.
Data Lineage erfasst zwei Arten von Beziehungen:
Datenbewegung, z. B. wenn Daten von einem Objekt in ein anderes kopiert oder materialisiert werden. Zum Beispiel führen CREATE TABLE AS SELECT (CTAS), INSERT oder MERGE-Operationen auf Tabellen zu einer Datenbewegung.
Objektabhängigkeiten, wenn ein Objekt auf ein Basisobjekt verweist, aber keine Daten materialisiert oder kopiert, z. B. wenn eine Ansicht auf eine Tabelle verweist.
Snowflake Data Lineage bietet diese Vorteile:
Bietet eine Auswirkungsanalyse durch das Verständnis der Beziehung zwischen verschiedenen Objekten.
Verbessert die Überwachung und Fehlerbehebung durch Anzeige der Datenbewegungsabstammung und der Objektabhängigkeiten.
Erleichtert die Einhaltung von Vorschriften durch die Verfolgung des Flusses sensibler Daten.
Hilft Ihnen, mit Tags und Maskierungsrichtlinien für Spalten zu arbeiten, um sensible Daten zu schützen.
Erhöht das Vertrauen in die Daten durch das Verständnis der Quell- und Zielobjekte und -spalten.
Ermöglicht die Delegierung der Verwaltung für die Anzeige der Abstammung. Weitere Informationen dazu finden Sie unter Zugriffssteuerung für Herkunftsinformationen.
Über stromaufwärts und stromabwärts gelegene Beziehungen¶
Die Datenherkunft hilft Ihnen, die Beziehungen eines Objekts in Bezug auf Quell- und Zielobjekte zu verstehen. In der Herkunftsterminologie befindet sich das Quellobjekt „stromaufwärts“ vom Zielobjekt und das Zielobjekt „stromabwärts“ vom Quellobjekt. Snowsight zeigt Objekte schrittweise an, einen Schritt nach dem anderen stromaufwärts oder stromabwärts von Ihrer Auswahl.
Zum Beispiel in dieser SQL-Anweisung:
CREATE TABLE table2 AS SELECT col1 FROM table1;
table2
ist die Zieltabelle, die der Quelltabelle table1
nachgelagert ist. Die Spalte col1
, die aus der Tabelle table1
stammt, ist in der Tabelle table2
enthalten; dies ist ebenfalls eine nachgelagerte Abstammungsbeziehung.
Wenn Sie sich die Details der Tabelle table1
in Snowsight ansehen, wird auf der Registerkarte Lineage ein Pfeil angezeigt, der von table1
auf table2
zeigt, um die nachgelagerte Abstammungsbeziehung anzuzeigen. Wenn Sie stattdessen bei Tabelle table2
beginnen, zeigt ein Pfeil von table2
upstream zu table1
.
Erste Schritte¶
Um mit der Verwendung von Datenherkunft in Snowsight zu beginnen, gehen Sie wie folgt vor:
Melden Sie sich auf Snowsight mit den erforderlichen Berechtigungen an.
Verwenden Sie das Menü Data » Databases, um ein unterstütztes Objekt wie z. B. eine Tabelle oder Ansicht auszuwählen.
Wählen Sie die Registerkarte Lineage aus.
Zu den grundlegenden Aktionen auf der Registerkarte Lineage gehören die folgenden:
A. Wählen Sie ein Objekt aus, um zusätzliche Details zu diesem Objekt anzuzeigen, einschließlich Spalten und Markierungen zu diesen Spalten.
B. Wählen Sie +/-, um Objekte, die weiter stromaufwärts oder stromabwärts gelegen sind, ein- oder auszublenden.
C. Wählen Sie den Pfeil, der zwei Objekte verbindet, um Informationen darüber anzuzeigen, wie das stromabwärts liegende Objekt erstellt wurde (z. B. die SQL-Anweisung, die ein Objekt erstellt hat). Ihre Zugriffssteuerungsrechte bestimmen, welche Informationen angezeigt werden.
D. Öffnet ein neues Herkunftsdiagramm, das sich auf die Herkunft des ausgewählten Objekts konzentriert.
Wie Sie auf der Registerkarte Lineage andere Aktionen durchführen können, erfahren Sie im Folgenden:
Spaltenherkunft¶
Sie können Snowsight verwenden, um die Beziehung zwischen Spalten in einem Quellobjekt und Spalten in einem Zielobjekt zu verfolgen. Für eine bestimmte Spalte können Sie alle stromaufwärts und stromabwärts gelegenen Spalten ermitteln, die eine gemeinsame Herkunft mit dieser Spalte haben.
Um die Herkunft einer Spalte zu bestimmen:
Öffnen Sie die Registerkarte Herkunft und wählen Sie das Objekt aus, das die Spalte enthält, die Sie verfolgen möchten. Eine Seitenbereich wird geöffnet.
Bewegen Sie den Mauszeiger über den Spaltennamen im Seitenbereich und wählen Sie View Lineage.
Wählen Sie Upstream Lineage oder Downstream Lineage, um die Spalten in stromaufwärts oder stromabwärts gelegenen Objekten aufzulisten.
Sie können die Spalte Distance verwenden, um festzustellen, wie weit eine Spalte in der Herkunft entfernt ist. Wenn der Abstand der Spalte stromabwärts beispielsweise 1 beträgt, dann befindet sich die Spalte in einem Objekt, das direkt aus dem aktuellen Objekt erstellt wurde. Wenn der Abstand stromabwärts 2 beträgt, dann existiert die Spalte in einem Objekt, das aus einem Objekt erstellt wurde, das aus dem aktuellen Objekt erstellt wurde.
Bezeichner für Maskierungsrichtlinien¶
Öffnen Sie die Registerkarte Herkunft und wählen Sie das Objekt aus, das Sie interessiert. Eine Seitenbereich wird geöffnet.
Um die Maskierungsrichtlinie für eine Spalte des Objekts anzuzeigen, suchen Sie die Spalte im Abschnitt Columns. Wenn die Spalte durch eine Maskierungsrichtlinie geschützt ist, erscheint ein Symbol neben dem Spaltennamen. Bewegen Sie den Mauszeiger über das Symbol, um den Namen und die Details der Maskierungsrichtlinie anzuzeigen.
Wenn es ein Problem mit der Maskierungsrichtlinie gibt, z. B. wenn der gleichen Spalte mehrere Maskierungsrichtlinien zugewiesen sind, erscheint Policy Error anstelle des Maskensymbols. Wenn Sie den Mauszeiger über Policy Error bewegen, erscheint eine Erklärung des Fehlers. Weitere Hilfe bei der Ermittlung der Fehlerursache finden Sie unter Tags und Richtlinien untersuchen und Problembehandlung bei Tag-basierten Maskierungsrichtlinien.
Herkunft programmatisch abrufen¶
Sie können die Funktion GET_LINEAGE (SNOWFLAKE.CORE) verwenden, um Herkunftsinformationen programmatisch abzurufen. Diese Funktion gibt eine Teilmenge der Informationen zurück, die von der Registerkarte Lineage in Snowsight bereitgestellt werden.
Unterstützte Operationen für die Datenherkunft¶
Die folgenden Operationen erstellen stromaufwärts und stromabwärts gelegene Beziehungen zwischen einem Quellobjekt und einem Zielobjekt:
CREATE TABLE … AS SELECT (CTAS)
UPDATE, zum Beispiel:
UPDATE mydb.schema1.table1 FROM mydb.schema2.table2 SET table1.col1 = table2.col1;
Unterstützte Objekte¶
Data Lineage unterstützt Datenbewegungen und Abhängigkeiten zwischen tabellenähnlichen Objekten. Ein „tabellenähnliches“ Objekt ist jedes Objekt, das wie eine Tabelle abgefragt werden kann, einschließlich Tabellen (nichts ist so tabellenähnlich wie eine Tabelle). Zu den tabellenähnlichen Objekten gehören:
Tabellen
Dynamische Tabellen
Externe Tabellen
Iceberg-Tabellen
Ansichten
Materialisierte Ansichten
Stagingbereiche können ebenso wie die folgenden Objekte des maschinellen Lernens in Datenabstammungsbeziehungen einbezogen sein.
Feature-Ansichten (die eigentlich dynamische Tabellen oder Ansichten in Snowflake sind)
Spaltenabstammung wird zwischen Spalten in zwei beliebigen tabellenähnlichen Objekten unterstützt. Sie können z. B. eine Spalte in einer Tabelle auswählen, um die nachgelagerte Spaltenabstammung anzuzeigen, die die anderen tabellenähnlichen Objekte zeigt, in denen diese Spalte erscheint.
Außerdem können Sie die Zuordnungen von Tags und Maskierungsrichtlinien sehen, wenn Sie eine Rolle verwenden, die über Berechtigungen für die Verwaltung von Tags und Maskierungsrichtlinien verfügt.
ML-Abfolge¶
ML Lineage unterstützt speziell Beziehungen des maschinellen Lernens, die sich darauf konzentrieren, wie Daten in Workflows des maschinellen Lernens verwendet und umgewandelt werden, und weniger auf einfachere Bewegungs- oder Abhängigkeitsbeziehungen. Es werden Beziehungen zwischen den folgenden Arten von Objekten unterstützt:
Feature-Ansichten (eigentlich eine dynamische Tabelle oder eine Ansicht in Snowflake)
Zugriffssteuerung für Herkunftsinformationen¶
Eine Rolle mit den folgenden Berechtigungen kann auf die Registerkarte Lineage zugreifen und die stromaufwärts und stromabwärts gelegenen Herkunftsobjekte und Abhängigkeiten eines Objekts anzeigen:
VIEW LINEAGE für das Konto
Jegliche Berechtigung für die Objekte, für die Sie die Abstammung auswerten möchten, wie z. B. SELECT für eine Tabelle.
USAGE für die Datenbank und das Schema, welche das Objekt enthalten.
Die Berechtigung VIEW LINEAGE steuert, ob ein Benutzer die Datenherkunft für seine Objekte einsehen kann. Standardmäßig hat die Rolle PUBLIC diese Berechtigung, d. h. jeder hat die Möglichkeit, die Herkunft einzusehen. Um einzuschränken, wer die Herkunft einsehen kann, können Sie der Rolle PUBLIC die Berechtigung VIEW LINEAGE entziehen und sie stattdessen kundenspezifischen Rollen gewähren.
Wenn ein Benutzer keine Berechtigungen für ein stromaufwärts oder stromabwärts gelegenes Objekt im Herkunftsdiagramm hat, wird das Objekt grau angezeigt und eine Meldung erscheint, dass der Benutzer nicht genügend Berechtigungen hat, um das Objekt anzuzeigen. Das graue Objekt bedeutet nicht, dass es sich um einen Endknoten im Herkunftsdiagramm handelt. Es zeigt lediglich an, dass der Benutzer die Abstammung nicht weiter stromaufwärts oder stromabwärts von diesem Punkt aus einsehen kann, weil er nicht die Berechtigung hat, die Herkunft dieses Objekts abzurufen. Diese Verhaltensweise gilt auch für Objekte und Spalten, die durch andere Zugriffsrichtlinien geschützt sind.
Ein Benutzer muss die Berechtigung haben, auf Ansicht QUERY_HISTORY zuzugreifen, um die SQL-Anweisung zu sehen, die zu dem Zielobjekt geführt hat.
Benutzern erlauben, die Herkunft aller Objekte zu sehen¶
Sie können eine Rolle so konfigurieren, dass sie alle Objekte in der Herkunft anzeigen kann, auch wenn sie keine Berechtigungen für die Objekte, die Datenbank oder das Schema hat. Gewähren Sie der Rolle einfach die Berechtigung RESOLVE ALL für das Konto, zum Beispiel GRANT RESOLVE ALL ON ACCOUNT TO ROLE lineage_role;
. Die Rolle erfordert weiterhin die Berechtigung VIEW LINEAGE.
Umbenannte und gelöschte Tabellenknoten¶
Umbenannte Tabellen werden im Diagramm angezeigt, aber gelöschte Tabellen werden nicht angezeigt.
Verlauf und Speichern der Herkunft¶
Herkunft wurde im November 2024 in Snowflake eingeführt. Herkunftsinformationen sind wie folgt verfügbar:
Herkunft für eine Objektabhängigkeit (z. B. eine auf einer Tabelle basierende Ansicht), die vor diesem Datum aufgetreten ist ist verfügbar.
Herkunft für Datenbewegungen (z. B. die Verwendung einer CTAS-Anweisung, um eine Tabelle aus einer anderen Tabelle zu erstellen), die vor diesem Datum stattgefunden haben, ist nicht verfügbar.
Verlaufsinformationen werden wie folgt aufbewahrt:
Die Spaltenabstammung bleibt ein Jahr lang erhalten.
Die Objektabstammung bleibt ein Jahr lang erhalten.
Einschränkungen und Hinweise¶
Herkunft ist für die folgenden Arten von Objekten nicht verfügbar:
Objekte in einer gemeinsamen Datenbank.
Objekte in der gemeinsamen SNOWFLAKE-Datenbank.
Objekte im INFORMATION_SCHEMA einer Datenbank.
Dynamische Tabellen erscheinen im Verlaufsdiagramm für andere Objekte, aber die Registerkarte Lineage erscheint nicht für dynamische Tabellen selbst.
Die Herkunft umfasst keine Tabelle, die zum Filtern oder Verbinden verwendet wurde, wenn die Daten nicht aus der Tabelle in das stromabwärts gelegene Objekt übertragen wurden. Im folgenden Beispiel wird die Tabelle
t2
nicht als Teil der Herkunft der Tabelletarget_table
betrachtet:CREATE TABLE target_table AS SELECT t1.c1, t1.c2 FROM t1, t2 WHERE t1.c3 = t2.c3;
Herkunft kann die Bewegung von Daten, die aus separaten, unzusammenhängenden Abfragen resultieren, nicht verfolgen. Zum Beispiel führt die folgende Abfrage nicht zu einer Herkunft von Tabelle
sourceTable1
zu Tabelletarget_table
.SET read_output1 = (SELECT c1 FROM sourceTable1); INSERT INTO target_table(c1) VALUES ($read_output1);