In diesem Dokument erfahren Sie, wie Sie die Beziehung zwischen Objekten in Ihrem SQL-Workflow in Dataform durch Deklarieren von Abhängigkeiten
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 die Ausführung des Abhängigkeitsobjekts. Das bedeutet, dass Dataform führt die Abhängige nach der Abhängigkeit aus. Sie definieren die Beziehung durch Sie deklarieren Abhängigkeiten in der SQLX-Definitionsdatei des abhängigen Objekts.
Die Abhängigkeitsdeklarationen bilden eine Abhängigkeitsstruktur Ihres SQL-Workflows die die Reihenfolge bestimmt, in der Dataform Ihre SQL-Workflow-Objekte.
Sie können die Abhängigkeitsbeziehung zwischen Folgendem definieren: SQL-Workflow-Objekte:
- Datenquellendeklarationen
- Angaben zu BigQuery-Datenquellen, damit Sie darauf verweisen können Datenquellen in Dataform-Tabellendefinitionen und SQL-Vorgängen. Sie können eine Datenquellendeklaration als Abhängigkeit, aber nicht als abhängige festlegen.
- Tables
- Tabellen, die Sie in Dataform basierend auf den deklarierten Daten erstellen oder andere Tabellen in Ihrem SQL-Workflow. 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 in BigQuery unverändert ausführt,
unverändert lassen. Sie können einen benutzerdefinierten SQL-Vorgang festlegen, der in einem
type: operations
-Datei als Abhängigkeit und als abhängige Datei. So deklarieren Sie einen benutzerdefinierten SQL-Vorgang als Abhängigkeit in der Funktionref
ausführen, müssen Sie Legen Sie die EigenschafthasOutput
auftrue
fest. in der SQLX-Definitionsdatei des benutzerdefinierten SQL-Vorgangs. - Assertions
- Abfragen zur Datenqualitätstest, mit denen Sie Tabellendaten testen können
Dataform führt bei jeder Aktualisierung Ihres SQL-Workflows
Sie werden benachrichtigt, wenn Assertions fehlschlagen. Sie können eine Assertion festlegen, die in einem
type: assertion
-Datei durch Deklaration als Abhängigkeit und als abhängige Datei Abhängigkeiten imconfig
-Block.
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
Um die Berechtigungen zu erhalten, die Sie zum Deklarieren von Abhängigkeiten für Tabellen, Assertions und Datenquellen benötigen
Deklarationen und benutzerdefinierten SQL-Operationen.
bitten Sie Ihren Administrator, Ihnen
IAM-Rolle Dataform Editor (roles/dataform.editor
) für Arbeitsbereiche.
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.
Deklarieren Sie eine Abhängigkeit als Argument der Funktion ref
Um in einer SELECT
-Anweisung auf eine Abhängigkeit zu verweisen und diese automatisch zu deklarieren,
Fügen Sie die Abhängigkeit als Argument der Funktion ref
hinzu.
Die Funktion ref
ist eine integrierte Dataform-Kernfunktion, mit der Sie
Verweisen und sind automatisch von einer Tabelle, Datenquellendeklaration oder
Benutzerdefinierter SQL-Vorgang mit der Eigenschaft hasOutput
, die auf true
festgelegt ist
in Ihrem SQL-Workflow.
Weitere Informationen zur Funktion ref
finden Sie unter
Referenz zu Kernkontextmethoden von Dataform.
Weitere Informationen zur Verwendung der Funktion ref
in einer Tabellendefinition finden Sie unter
Tabellendefinitionen
Im folgenden Codebeispiel wird die Datenquellendeklaration „source_data
“ hinzugefügt
als Argument der Funktion ref
in der incremental_table.sqlx
-SQLX-Funktion
Definitionsdatei einer inkrementellen Tabelle:
// 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
.
Im folgenden Codebeispiel wird gezeigt, wie die SQLX-Datei zur Tabellendefinition some_table
hinzugefügt wurde.
als Argument der Funktion ref
im custom_assertion.sqlx
SQLX-Definitionsdatei einer Assertion:
// 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
. Während der Ausführung führt Dataform
some_table
und führt dann custom_assertion
aus, sobald some_table
erstellt wurde.
Abhängigkeiten im Block config
deklarieren
Deklarieren von Abhängigkeiten, auf die in der Definition der SQL-Anweisung nicht verwiesen wird die jedoch vor der Tabelle, der Assertion oder der benutzerdefinierten SQL-Vorgang ausführen, gehen Sie folgendermaßen vor:
- 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, Assertion, Datenquellendeklaration oder benutzerdefinierten SQL-Vorgang an, den 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 die Tabelle some_table
und some_assertion
Assertion als Abhängigkeiten zum Block config
einer Tabellendefinitionsdatei hinzugefügt:
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 Deklarieren Sie eine Datenquelle.
- 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