Abhängigkeiten deklarieren

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 Funktion ref deklarieren möchten, müssen Sie das Attribut hasOutput in der SQLX-Definitionsdatei des benutzerdefinierten SQL-Vorgangs auf true 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 im config-Block deklarieren.

Sie können die Abhängigkeitsbeziehung so definieren:

Hinweis

  1. Entwicklungsarbeitsbereich in Ihrem Repository erstellen und initialisieren.
  2. Optional: Deklarieren Sie eine Datenquelle.
  3. 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.sqlxSQLX-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:

  1. Maximieren Sie im Entwicklungsarbeitsbereich im Bereich Dateien das Verzeichnis definitions/.
  2. Wählen Sie die SQLX-Datei für die Tabelle, Assertion oder benutzerdefinierte SQL-Vorgänge aus, die Sie bearbeiten möchten.
  3. 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