In diesem Dokument erfahren Sie, wie Sie die Beziehung zwischen Objekten in Ihrem SQL-Workflow in Dataform definieren, indem Sie Abhängigkeiten deklarieren.
Sie können eine Abhängigkeitsbeziehung zwischen Objekten eines SQL-Workflows definieren. Bei 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ängige Funktion 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 ein Abhängigkeitsbaum Ihres SQL-Workflows, der die Reihenfolge bestimmt, in der Dataform Ihre SQL-Workflowobjekte ausführt.
Sie können die Abhängigkeitsbeziehung zwischen den folgenden SQL-Workflowobjekten definieren:
- Deklarationen für Datenquellen
- Deklarationen von BigQuery-Datenquellen, mit denen Sie auf diese Datenquellen in Dataform-Tabellendefinitionen und SQL-Vorgängen verweisen können. Sie können eine Datenquellendeklaration als Abhängigkeit festlegen, aber nicht als abhängig.
- Tabellen
- Tabellen, die Sie in Dataform auf Grundlage der deklarierten Datenquellen oder anderer 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ängig festlegen.
- Benutzerdefinierte SQL-Vorgänge
- SQL-Anweisungen, die von Dataform in BigQuery unverändert ausgeführt werden. Sie können einen benutzerdefinierten SQL-Vorgang, der in einer
type: operations
-Datei definiert ist, als Abhängigkeit und als abhängig festlegen. Wenn Sie einen benutzerdefinierten SQL-Vorgang als Abhängigkeit in derref
-Funktion deklarieren möchten, müssen Sie in der SQLX-Definitiondatei für den benutzerdefinierten SQL-Vorgang die EigenschafthasOutput
auftrue
festlegen. - Behauptungen
- Abfragen zur Datenqualität, mit denen Sie Tabellendaten testen können.
Dataform führt jedes Mal, wenn Ihr SQL-Workflow aktualisiert wird, Prüfungen aus und benachrichtigt Sie, wenn Prüfungen fehlschlagen. Sie können eine in einer
type: assertion
-Datei definierte Behauptung als Abhängigkeit und als abhängig festlegen, indem Sie Abhängigkeiten imconfig
-Block deklarieren.
Sie können die Abhängigkeitsbeziehung auf folgende Weisen definieren:
- Deklarieren Sie eine Abhängigkeit, indem Sie die Dataform-Kernfunktion
ref
verwenden, um in einerSELECT
-Anweisung auf die Abhängigkeit zu verweisen. - Eine Liste von Abhängigkeiten im Block
config
einer SQLX-Definitiondatei angeben.
Hinweis
- Erstellen und initialisieren Sie einen Entwicklungsarbeitsbereich in Ihrem Repository.
- Optional: Erklären Sie eine Datenquelle.
- Erstellen Sie mindestens zwei SQL-Workflow-Objekte: Tabellen, Behauptungen, Datenquellendeklarationen oder Vorgänge.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform Editor (roles/dataform.editor
) für Arbeitsbereiche zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie zum Deklarieren von Abhängigkeiten für Tabellen, Behauptungen, Datenquellendeklarationen und benutzerdefinierten SQL-Vorgängen benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Abhängigkeit als Argument der Funktion ref
deklarieren
Wenn Sie in einer SELECT
-Anweisung auf eine Abhängigkeit verweisen und sie automatisch deklarieren möchten, fügen Sie die Abhängigkeit als Argument der ref
-Funktion hinzu.
Die Funktion ref
ist eine integrierte Funktion von Dataform Core, mit der Sie in Ihrem SQL-Workflow auf jede Tabelle, Datenquellendeklaration oder benutzerdefinierten SQL-Vorgang verweisen und automatisch davon abhängig machen können, wenn die Eigenschaft hasOutput
auf true
festgelegt 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.
Im folgenden Codebeispiel wird die source_data
-Datenquellendeklaration als Argument der ref
-Funktion in der incremental_table.sqlx
-SQLX-Definitiondatei einer inkrementellen Tabelle hinzugefügt:
// 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.
Im folgenden Codebeispiel wird eine some_table
-SQLX-Datei mit Tabellendefinition als Argument der ref
-Funktion in der custom_assertion.sqlx
-SQLX-Definitiondatei einer Assertion hinzugefügt:
// 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. Bei der Ausführung führt Dataform zuerst some_table
und dann custom_assertion
aus, sobald some_table
erstellt wurde.
Abhängigkeiten im config
-Block deklarieren
So deklarieren Sie Abhängigkeiten, auf die in der SQL-Anweisungsdefinition des abhängigen Elements nicht verwiesen wird, die aber vor der Tabelle, Behauptung oder benutzerdefinierten SQL-Operation ausgeführt werden müssen:
- Maximieren Sie im Bereich Dateien Ihres Entwicklungsbereichs das Verzeichnis
definitions/
. - Wählen Sie die SQLX-Datei für die Tabelle, die Behauptung oder den benutzerdefinierten SQL-Vorgang aus, die bzw. den Sie bearbeiten möchten.
Geben Sie in der Datei im Block
config
das folgende Code-Snippet ein:dependencies: [ "DEPENDENCY", ]
Ersetzen Sie DEPENDENCY durch das Stringziel, z. B. den Dateinamen der Aktion, die Sie als Abhängigkeit hinzufügen möchten. Sie können mehrere Ziele eingeben, die durch Kommas getrennt werden.
Optional: Klicken Sie auf Formatieren.
Im folgenden Codebeispiel sind die Tabelle some_table
und die some_assertion
-Behauptung zu sehen, die als Abhängigkeiten zum config
-Block einer Tabellendefinitionsdatei hinzugefügt wurden:
config { dependencies: [ "some_table", "some_assertion" ] }
Nächste Schritte
- Informationen zum Festlegen von Behauptungen als Abhängigkeiten finden Sie unter Tabellen mit Behauptungen testen.
- Informationen zum Deklarieren einer Datenquelle finden Sie unter Datenquelle deklarieren.
- Informationen zum Definieren benutzerdefinierter SQL-Vorgänge finden Sie unter Benutzerdefinierte SQL-Vorgänge hinzufügen.
- Informationen zum Wiederverwenden von Code in Ihrem SQL-Workflow mit Includes finden Sie unter Code in einem einzelnen Repository mit Includes wiederverwenden.