Abhängigkeiten deklarieren

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 der ref-Funktion deklarieren möchten, müssen Sie in der SQLX-Definitiondatei für den benutzerdefinierten SQL-Vorgang die Eigenschaft hasOutput auf true 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 im config-Block deklarieren.

Sie können die Abhängigkeitsbeziehung auf folgende Weisen definieren:

Hinweis

  1. Erstellen und initialisieren Sie einen Entwicklungsarbeitsbereich in Ihrem Repository.
  2. Optional: Erklären Sie eine Datenquelle.
  3. 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:

  1. Maximieren Sie im Bereich Dateien Ihres Entwicklungsbereichs das Verzeichnis definitions/.
  2. 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.
  3. 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.

  4. 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