In diesem Dokument wird erläutert, wie Sie die Beziehung zwischen Objekten in Ihrem SQL-Workflow in Dataform durch Deklarieren von Abhängigkeiten definieren.
Sie können eine Abhängigkeitsbeziehung zwischen Objekten eines SQL-Workflows definieren. In einer Abhängigkeitsbeziehung hängt die Ausführung des abhängigen Objekts von der Ausführung des Abhängigkeitsobjekts ab. Das bedeutet, dass Dataform die Abhängigkeit nach der Abhängigkeit ausführt. Sie definieren die Beziehung, indem Sie Abhängigkeiten in der SQLX-Definitionsdatei des abhängigen Objekts deklarieren.
Die Abhängigkeitsdeklarationen bilden eine Abhängigkeitsstruktur Ihres SQL-Workflows, die die Reihenfolge bestimmt, in der Dataform Ihre SQL-Workflowobjekte ausführt.
Sie können die Abhängigkeitsbeziehung zwischen den folgenden SQL-Workflowobjekten definieren:
- Erklärungen zur Datenquelle
- Erklärungen zu BigQuery-Datenquellen, mit denen Sie in Datenquellen-Definitionen und SQL-Vorgängen auf diese Datenquellen verweisen können. Sie können eine Datenquellendeklaration als Abhängigkeit festlegen, aber nicht als abhängig.
- Tabellen
- Tabellen, die Sie in Dataform basierend auf den deklarierten Datenquellen oder anderen Tabellen in Ihrem SQL-Workflow erstellen. Dataform unterstützt die folgenden Tabellentypen: Tabelle, inkrementelle Tabelle, Ansicht und materialisierte Ansicht. Sie können eine Tabelle als Abhängigkeit und als Abhängigkeit festlegen.
- Benutzerdefinierte SQL-Vorgänge
- SQL-Anweisungen, die Dataform ohne Änderungen in BigQuery ausführt. Sie können einen benutzerdefinierten SQL-Vorgang festlegen, der in einer
type: operations
-Datei als Abhängigkeit und als Abhängigkeit definiert ist. Wenn Sie einen benutzerdefinierten SQL-Vorgang als Abhängigkeit in der Funktionref
deklarieren möchten, müssen Sie das AttributhasOutput
in der SQLX-Definitionsdatei des benutzerdefinierten SQL-Vorgangs auftrue
festlegen. - Hinweise
- Abfragen des Datenqualitätstests, mit denen Sie Tabellendaten validieren können.
Dataform führt bei jeder Aktualisierung Ihres SQL-Workflows Assertions aus und benachrichtigt Sie, wenn Assertions fehlschlagen. Sie können eine in einer
type: assertion
-Datei definierte Assertion als Abhängigkeit und als Abhängigkeit festlegen, indem Sie Abhängigkeiten imconfig
-Block deklarieren.
Sie können die Abhängigkeitsbeziehung so definieren:
- Deklarieren Sie eine Abhängigkeit mithilfe der Dataform Core-
ref
-Funktion, um auf die Abhängigkeit in einerSELECT
-Anweisung zu verweisen. - Eine Liste der Abhängigkeiten im
config
-Block einer SQLX-Definitionsdatei angeben.
Hinweis
- Entwicklungsarbeitsbereich in Ihrem Repository erstellen und initialisieren.
- Optional: Deklarieren Sie eine Datenquelle.
- Erstellen Sie mindestens zwei SQL-Workflowobjekte: Tabellen, Zuweisungen, Datenquellendeklarationen oder Vorgänge.
Erforderliche Rollen
Wenn Sie die Berechtigungen benötigen, die Sie zum Deklarieren von Abhängigkeiten für Tabellen, Assertions, Datenquellendeklarationen und benutzerdefinierte SQL-Vorgänge benötigen, müssen Sie Ihren Administrator bitten, Ihnen die IAM-Rolle Dataform-Bearbeiter (roles/dataform.editor
) für Arbeitsbereiche zu gewähren.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Eine Abhängigkeit als Argument der Funktion ref
deklarieren
Wenn Sie eine Abhängigkeit in einer SELECT
-Anweisung verwenden und automatisch deklarieren möchten, fügen Sie die Abhängigkeit als Argument der ref
-Funktion hinzu.
Die Funktion ref
ist eine in Dataform integrierte Kernfunktion, mit der Sie jederzeit auf alle Tabellen, Datenquellendeklarationen oder benutzerdefinierten SQL-Vorgänge verweisen können, sofern das Attribut hasOutput
im SQL-Workflow auf true
gesetzt ist.
Weitere Informationen zur Funktion ref
finden Sie in der Referenz zu den Methoden des Dataform-Kernkontexts.
Weitere Informationen zur Verwendung der Funktion ref
in einer Tabellendefinition finden Sie unter Tabellendefinitionen.
Das folgende Codebeispiel zeigt die source_data
Datenquellendeklaration, die als Argument der ref
-Funktion in der incremental_table.sqlx
SQLX-Definitionsdatei einer inkrementellen Tabelle hinzugefügt wurde:
// filename is incremental_table.sqlx
config { type: "incremental" }
SELECT * FROM ${ref("source_data")}
Im vorherigen Codebeispiel wird source_data
automatisch als Abhängigkeit von incremental_table
deklariert.
Das folgende Codebeispiel zeigt die SQLX-Datei some_table
der Tabellendefinition, die als Argument der Funktion ref
in der custom_assertion.sqlx
SQLX-Definitionsdatei einer Assertion hinzugefügt wurde:
// filename is custom_assertion.sqlx
config { type: "assertion" }
SELECT
*
FROM
${ref("some_table")}
WHERE
a is null
or b is null
or c is null
Im vorherigen Codebeispiel wird some_table
automatisch als Abhängigkeit von custom_assertion
deklariert. Während der Ausführung wird Dataform zuerst some_table
und dann custom_assertion
ausgeführt, nachdem some_table
erstellt wurde.
Abhängigkeiten im config
-Block deklarieren
So deklarieren Sie Abhängigkeiten, auf die in der Definition der abhängigen SQL-Anweisung nicht verwiesen wird, die aber vor der Tabelle, der Assertion oder einem benutzerdefinierten SQL-Vorgang ausgeführt werden müssen:
- Maximieren Sie im Entwicklungsarbeitsbereich im Bereich Dateien das Verzeichnis
definitions/
. - Wählen Sie die SQLX-Datei für die Tabelle, Assertion oder benutzerdefinierte SQL-Vorgänge aus, die Sie bearbeiten möchten.
- Geben Sie im
config
-Block der Datei das folgende Code-Snippet ein:
dependencies: [ "DEPENDENCY", ]
Ersetzen Sie DEPENDENCY durch den Dateinamen der Tabelle, der Assertion, der Datenquellendeklaration oder des benutzerdefinierten SQL-Vorgangs, den Sie als Abhängigkeit hinzufügen möchten. Sie können mehrere Dateinamen eingeben.
Das folgende Codebeispiel zeigt die Tabelle some_table
und die some_assertion
-Assertion als Abhängigkeiten zum Block config
einer Tabellendefinitionsdatei:
config { dependencies: [ "some_table", "some_assertion" ] }
Nächste Schritte
- Informationen zum Deklarieren einer Datenquelle finden Sie unter Datenquelle deklarieren.
- Informationen zum Definieren von benutzerdefinierten SQL-Vorgängen finden Sie unter Benutzerdefinierte SQL-Vorgänge hinzufügen.
- Informationen zum Wiederverwendung von Code im gesamten SQL-Workflow mit Include finden Sie unter Variablen und Funktionen mit Include wiederverwenden.