In diesem Dokument erfahren Sie, 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 das abhängige Element 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-Workflow-Objekte ausführt.
Sie können die Abhängigkeitsbeziehung zwischen den folgenden SQL-Workflowobjekten definieren:
- Datenquellendeklarationen
- Deklarationen von BigQuery-Datenquellen, mit denen Sie in Dataform-Tabellendefinitionen und SQL-Vorgängen auf diese Datenquellen verweisen können. Sie können eine Datenquellendeklaration als Abhängigkeit, aber nicht als abhängige festlegen.
- Tables
- 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ängige Tabelle festlegen.
- Benutzerdefinierte SQL-Vorgänge
- SQL-Anweisungen, die Dataform unverändert und unverändert in BigQuery ausgeführt wird. Sie können einen benutzerdefinierten SQL-Vorgang festlegen, der in einer
type: operations
-Datei als Abhängigkeit und als abhängigen Vorgang definiert ist. Wenn Sie einen benutzerdefinierten SQL-Vorgang als Abhängigkeit in derref
-Funktion deklarieren möchten, müssen Sie in der SQLX-Definitionsdatei des benutzerdefinierten SQL-Vorgangs das AttributhasOutput
auftrue
festlegen. - Assertions
- Abfragen zur Datenqualitätstest, mit denen Sie Tabellendaten testen können
Dataform führt jedes Mal Assertions aus, wenn Ihr SQL-Workflow aktualisiert wird, und benachrichtigt Sie, wenn Assertions fehlschlagen. Sie können eine in einer
type: assertion
-Datei definierte Assertion als Abhängigkeit und als abhängig festlegen, indem Sie Abhängigkeiten imconfig
-Block deklarieren.
Sie können die Abhängigkeitsbeziehung auf folgende Arten definieren:
- Deklarieren Sie eine Abhängigkeit, indem Sie mit der Dataform Core-Funktion
ref
auf die Abhängigkeit in einerSELECT
-Anweisung verweisen. - Deklarieren Sie eine Liste von Abhängigkeiten im
config
-Block einer SQLX-Definitionsdatei.
Hinweise
- Erstellen und initialisieren Sie einen Entwicklungsarbeitsbereich in Ihrem Repository.
- Optional: Deklarieren Sie eine Datenquelle.
- Erstellen Sie mindestens zwei SQL-Workflow-Objekte: Tabellen, Assertions, Datenquellendeklarationen oder operations.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen für Arbeitsbereiche die IAM-Rolle Dataform Editor (roles/dataform.editor
) zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Deklarieren von Abhängigkeiten für Tabellen, Assertions, Datenquellendeklarationen und benutzerdefinierte SQL-Vorgänge benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Deklarieren Sie eine Abhängigkeit als Argument der Funktion ref
Wenn Sie auf eine Abhängigkeit verweisen und diese automatisch in einer SELECT
-Anweisung deklarieren möchten, fügen Sie die Abhängigkeit als Argument der Funktion ref
hinzu.
Die ref
-Funktion ist eine integrierte Dataform Core-Funktion, mit der Sie auf beliebige Tabellen, Datenquellendeklarationen oder benutzerdefinierte SQL-Vorgänge verweisen können, bei denen das Attribut hasOutput
in Ihrem SQL-Workflow auf true
gesetzt ist, und automatisch davon abhängig ist.
Weitere Informationen zur Funktion ref
finden Sie in der Referenz zu Dataform Core-Kontextmethoden.
Weitere Informationen zur Verwendung der Funktion ref
in einer Tabellendefinition finden Sie unter Tabellendefinitionen.
Das folgende Codebeispiel zeigt, wie die Datenquellendeklaration source_data
als Argument der Funktion ref
in der SQLX-Definitionsdatei incremental_table.sqlx
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, wie die SQLX-Tabellendefinitionsdatei some_table
der SQLX-Definitionsdatei custom_assertion.sqlx
einer Assertion als Argument der Funktion ref
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 führt Dataform zuerst some_table
und dann custom_assertion
aus, sobald some_table
erstellt wurde.
Abhängigkeiten im Block config
deklarieren
So deklarieren Sie Abhängigkeiten, auf die in der Definition der SQL-Anweisung des abhängigen Abhängigkeiten nicht verwiesen wird, die jedoch vor der Tabelle, der Assertion oder dem benutzerdefinierten SQL-Vorgang ausgeführt werden müssen:
- Maximieren Sie im Entwicklungsarbeitsbereich im Bereich Dateien das Verzeichnis
definitions/
. - Wählen Sie die SQLX-Datei der Tabelle, Assertion oder des benutzerdefinierten SQL-Vorgangs aus, die Sie bearbeiten möchten.
Geben Sie im Block
config
der Datei das folgende Code-Snippet ein:dependencies: [ "DEPENDENCY", ]
Ersetzen Sie DEPENDENCY durch den Dateinamen der Tabelle, der Assertion, der Datenquellendeklaration oder der benutzerdefinierten SQL-Operation, die Sie als Abhängigkeit hinzufügen möchten. Sie können mehrere, durch Kommas getrennte Dateinamen eingeben.
Optional: Klicken Sie auf Format.
Das folgende Codebeispiel zeigt, wie die Tabelle some_table
und die assertion some_assertion
dem Block config
einer Tabellendefinitionsdatei als Abhängigkeiten hinzugefügt wurden:
config { dependencies: [ "some_table", "some_assertion" ] }
Nächste Schritte
- Informationen zum Festlegen von Assertions als Abhängigkeiten finden Sie unter Tabellen mit Assertions testen.
- 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 Wiederverwenden von Code in Ihrem SQL-Workflow mit Einbindungen finden Sie unter Variablen und Funktionen mit Einbindungen wiederverwenden.