Kategorien:

Tabellenfunktionen

GET_LINEAGE (SNOWFLAKE.CORE)

Gibt in Bezug auf ein Snowflake-Objekt Informationen zur Datenherkunft – vorgelagert oder nachgelagert in Bezug auf dieses Objekt – zurück. „Upstream“ bezeichnet den Pfad von Objekten, der zur Erstellung eines bestimmten Objekts geführt hat. „Downstream“ bezeichnet den Pfad von Objekten, die aus diesem Objekt erstellt wurden.

Syntax

SNOWFLAKE.CORE.GET_LINEAGE(
    '<object_name>',
    '<object_domain>',
    '<direction>',
    [ <distance>, ]
    [ '<object_version>' ]
)
Copy

Argumente

Benötigt:

'object_name'

Name des Objekts, für das Datenherkunftsinformationen abgerufen werden. Verwenden Sie den vollqualifizierten Namen, wenn sich das Objekt in einem anderen Schema als dem Schema der aktuellen Sitzung befindet.

'object_domain'

Die Domäne des Objekts. Unterstützte Domänen sind ‚COLUMN‘, ‚TABLE‘ (was alle tabellenähnlichen Objekte einschließlich Ansichten und dynamischer Tabellen umfasst) und ‚STAGE‘. Für ML-Herkunft verwenden Sie TABLE für Feature-Ansichten (die intern dynamische Tabellen und Ansichten sind) und ‚DATASET oder ‚MODULE‘ für Modelle.

'direction'

Die Richtung, für die die Herkunft beibehalten werden soll. Unterstützte Richtungen sind ‚UPSTREAM‘ und ‚DOWNSTREAM‘.

Optional:

distance

Die Anzahl der abzurufenden Ebenen der Herkunft. Das Höchstwert ist 5; dies ist auch die Standardeinstellung.

'object_version'

Bei versionierten Objekten, wie z. B. Datensätzen und Modellen, die Version des Objekts, für das die Herkunft abgerufen wird. Wenn nicht angegeben, wird die Standardversion verwendet.

Ausgabe

Die Ausgabe ist eine Tabelle mit einer Zeile pro Objektbeziehung im Herkunftspfad (d. h. eine Kante im Herkunftsdiagramm). Beziehungen bestehen zwischen Objekten, die in jeder Zeile als Quelle und Ziel bezeichnet werden. Die Tabelle enthält die folgenden Spalten:

Spalte

Typ

Beschreibung

SOURCE_OBJECT_DATABASE

VARCHAR

Die Datenbank, die das Quellobjekt enthält.

SOURCE_OBJECT_SCHEMA

VARCHAR

Das Schema, das das Quellobjekt enthält.

SOURCE_OBJECT_NAME

VARCHAR

Der unqualifizierte Name des Quellobjekts.

SOURCE_OBJECT_DOMAIN

VARCHAR

Die Domäne des Zielobjekts. Mögliche Werte sind ‚COLUMN‘, ‚TABLE‘, ‚DATASET‘, ‚MODULE‘ (für ML Modelle), und ‚STAGE‘.

SOURCE_OBJECT_VERSION

VARCHAR

Die Version des Quellobjekts, für versionierte Objekte wie Datensätze und Modelle. NULL wenn das Quellobjekt nicht versioniert ist.

SOURCE_COLUMN_NAME

VARCHAR

Der Name der Quellspalte, wenn das Quellobjekt eine Spalte ist. NULL wenn das Quellobjekt keine Spalte ist.

SOURCE_STATUS

VARCHAR

Der Status des Quellobjekts. Mögliche Werte sind ‚DELETED‘, ‚ACTIVE‘, and ‚MASKED‘.

TARGET_OBJECT_DATABASE

VARCHAR

Die Datenbank, die das Zielobjekt enthält.

TARGET_OBJECT_SCHEMA

VARCHAR

Das Schema, das das Zielobjekt enthält.

TARGET_OBJECT_NAME

VARCHAR

Der unqualifizierte Name des Zielobjekts.

TARGET_OBJECT_DOMAIN

VARCHAR

Die Domäne des Zielobjekts. Mögliche Werte sind ‚COLUMN‘, ‚TABLE‘, ‚DATASET‘, ‚MODULE‘ (für ML Modelle), und ‚STAGE‘.

TARGET_OBJECT_VERSION

VARCHAR

Die Version des Zielobjekts, für versionierte Objekte wie Datensätze und Modelle. NULL wenn das Zielobjekt nicht versioniert ist.

TARGET_COLUMN_NAME

VARCHAR

Der Name der Zielspalte, wenn das Zielobjekt eine Spalte ist. NULL wenn das Zielobjekt keine Spalte ist.

TARGET_STATUS

VARCHAR

Der Status des Zielobjekts. Mögliche Werte sind ‚DELETED‘, ‚ACTIVE‘, and ‚MASKED‘.

DISTANCE

INTEGER

Die Entfernung des Zielobjekts vom Quellobjekt im Herkunftspfad. Eine direkte Beziehung hat einen Abstand von 1.

Nutzungshinweise

  • Sie erhalten eine Fehlermeldung, wenn das Objekt nicht existiert, wenn der aktuelle Benutzer nicht auf das Objekt zugreifen kann, wenn das Objekt keine Datenabfolge unterstützt oder wenn sich das Objekt nicht in der angegebenen Domäne befindet.

  • Die Ausgabetabelle enthält keine Zeilen, wenn keine Herkunftsinformationen für das angegebene Objekt verfügbar sind; dies ist kein Fehler.

  • GET_LINEAGE gibt höchstens 10 Millionen Zeilen zurück, wobei jede Zeile eine Kante (Beziehung) im Herkunftsdiagramm darstellt. Wenn die Ausgabe mehr als 10 Millionen Zeilen enthält, schneidet die Funktion die Ausgabe stillschweigend auf 10 Millionen Zeilen ab

Beispiel

Angenommen, Sie haben eine Tabelle mit dem Namen TABLE_B aus TABLE_A unter Verwendung von CREATE TABLE AS SELECT erstellt und dann eine Tabelle mit dem Namen TABLE_C aus TABLE_B auf ähnliche Weise erstellt. Die folgende SQL-Abfrage ruft zwei Schritte der nachgelagerten Herkunft von TABLE_A ab:

SELECT
    DISTANCE,
    SOURCE_OBJECT_DOMAIN,
    SOURCE_OBJECT_DATABASE,
    SOURCE_OBJECT_SCHEMA,
    SOURCE_OBJECT_NAME,
    SOURCE_STATUS,
    TARGET_OBJECT_DOMAIN,
    TARGET_OBJECT_DATABASE,
    TARGET_OBJECT_SCHEMA,
    TARGET_OBJECT_NAME,
    TARGET_STATUS,
FROM TABLE (SNOWFLAKE.CORE.GET_LINEAGE('my_database.sch.table_a', 'TABLE', 'DOWNSTREAM', 2));
Copy

Die Ausgabe sieht ungefähr wie folgt aus:

+----------+----------------------+------------------------+----------------------+--------------------+---------------+----------------------+------------------------+----------------------+--------------------+---------------+
| DISTANCE | SOURCE_OBJECT_DOMAIN | SOURCE_OBJECT_DATABASE | SOURCE_OBJECT_SCHEMA | SOURCE_OBJECT_NAME | SOURCE_STATUS | TARGET_OBJECT_DOMAIN | TARGET_OBJECT_DATABASE | TARGET_OBJECT_SCHEMA | TARGET_OBJECT_NAME | TARGET_STATUS |
|----------+----------------------+------------------------+----------------------+--------------------+---------------+----------------------+------------------------+----------------------+--------------------+---------------|
|        1 | TABLE                | MY_DATABASE            | SCH                  | TABLE_A            | ACTIVE        | TABLE                | MY_DATABASE            | SCH                  | TABLE_B            | ACTIVE        |
|        2 | TABLE                | MY_DATABASE            | SCH                  | TABLE_B            | ACTIVE        | TABLE                | MY_DATABASE            | SCH                  | TABLE_C            | ACTIVE        |
+----------+----------------------+------------------------+----------------------+--------------------+---------------+----------------------+------------------------+----------------------+--------------------+---------------+