In Dataform ist eine Tabelle einer der Objekttypen, aus denen ein Workflow besteht. Sie können Tabellen erstellen, die auf Daten aus den Datenquellen verweisen, die für Ihren Workflow deklariert wurden, oder aus anderen Tabellen in Ihrem Workflow. Dataform kompiliert Ihre Tabellendefinitionen in Echtzeit in SQL. Wenn Sie die Ausführung auslösen, wird der SQL-Code von Dataform ausgeführt und die von Ihnen definierten Tabellen werden in BigQuery erstellt.
Sie können die folgenden Tabellentypen in einer type: "table"-SQLX-Datei erstellen:
table: Eine reguläre Tabelle.incremental: eine inkrementelle Tabelle.view: Eine Tabellenansicht. Weitere Informationen finden Sie unter Einführung in Ansichten.materialized: Eine materialisierte Tabellenansicht. Weitere Informationen finden Sie unter Einführung in materialisierte Ansichten.
Sie können auch Tabellenpartitionen und ‑cluster definieren.
Wenn Sie den Zweck einer Tabelle oder ihre Beziehung zu anderen Tabellen in Ihrem Workflow dokumentieren möchten, können Sie der Tabelle oder den ausgewählten Spalten Dokumentation hinzufügen.
Wenn Sie die Daten in einer Tabelle anhand bestimmter Bedingungen testen möchten, können Sie Datenqualitäts-Testabfragen erstellen, die als Assertions bezeichnet werden. Dataform führt Zusicherungen jedes Mal aus, wenn der Workflow aktualisiert wird, und benachrichtigt Sie, wenn Zusicherungen fehlschlagen.
Wenn Sie das Standardschema, die Standarddatenbank und den Standardnamen einer ausgewählten Tabelle überschreiben möchten, können Sie Tabelleneinstellungen überschreiben.
Wenn Sie die Tabellenerstellung deaktivieren oder eine SQL-Anweisung vor oder nach der Tabellenerstellung ausführen möchten, können Sie zusätzliche Aktionen konfigurieren.
Nachdem Sie Ihre Tabellen in BigQuery ausgeführt haben, können Sie sie mit BigQuery-Labels organisieren. Weitere Informationen finden Sie unter Einführung in Labels.
Wenn Sie den Datenzugriff auf Tabellenspaltenebene einschränken möchten, können Sie BigQuery-Richtlinien-Tags hinzufügen. Weitere Informationen finden Sie unter Einführung in die Zugriffssteuerung auf Spaltenebene.
Neben der Definition von Tabellen in einer type: "table"-SQLX-Datei können Sie leere Tabellen erstellen, indem Sie eine benutzerdefinierte SQL-Abfrage in einer type: "operations"-SQLX-Datei definieren.
Möglicherweise möchten Sie eine leere Tabelle erstellen, damit ein anderer Dienst sie mit Daten füllen kann.
Hinweis
Rufen Sie in der Google Cloud Console die Seite Dataform auf.
Entwicklungsarbeitsbereich in Ihrem Repository erstellen und initialisieren
Optional: Datenquelle deklarieren
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 Ausführen der Aufgaben in diesem Dokument 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.
Tabelle erstellen
In diesem Abschnitt erfahren Sie, wie Sie mit Dataform Core Tabellen in Dataform erstellen.
Tabellendefinitionen
Um eine Tabelle zu definieren, definieren Sie den Tabellentyp und schreiben eine SELECT-Anweisung in eine type: "table"-SQLX-Datei. Dataform kompiliert dann Ihren Dataform-Kerncode in SQL, führt den SQL-Code aus und erstellt die von Ihnen definierten Tabellen in BigQuery.
In einer Dataform Core-SELECT-Anweisung definieren Sie die Tabellenstruktur und verweisen auf andere Objekte Ihres Workflows.
Neben der Definition von Tabellen in einer type: "table"-SQLX-Datei können Sie auch leere Tabellen erstellen, indem Sie eine benutzerdefinierte SQL-Abfrage in einer type: "operations"-SQLX-Datei definieren.
Weitere Informationen finden Sie unter Leere Tabelle erstellen.
Abhängigkeiten mit ref referenzieren
Wenn Sie in einer SELECT-Anweisung auf eine Workflow-Aktion verweisen und sie automatisch als Abhängigkeit hinzufügen möchten, verwenden Sie die Funktion ref. Dataform führt Abhängigkeiten vor Tabellen aus, die von ihnen abhängen, um die richtige Reihenfolge der Pipeline zu überprüfen.
Die Funktion ref ist eine integrierte Dataform Core-Funktion, die für die Abhängigkeitsverwaltung in Dataform unerlässlich ist. Mit der Funktion ref können Sie auf die folgenden Objekte verweisen, die in Ihrem Dataform-Workflow definiert sind, und automatisch von ihnen abhängig sein, anstatt Schema- und Tabellennamen fest zu codieren:
- Tabellen aller unterstützten Tabellentypen.
- Deklarationen von Datenquellen
- Benutzerdefinierte SQL-Vorgänge, bei denen das Attribut
hasOutputauftruefestgelegt ist.
Dataform verwendet die Funktion ref, um einen Abhängigkeitsbaum aller Tabellen zu erstellen, die erstellt oder aktualisiert werden sollen.
Nach dem Kompilieren fügt Dataform der SQL-Anweisung Boilerplate-Anweisungen wie CREATE, REPLACE, INSERT oder MERGE hinzu.
Das folgende Codebeispiel zeigt eine Tabellendefinition mit der Funktion ref:
config { type: "table" }
SELECT
order_date AS date,
order_id AS order_id,
order_status AS order_status,
SUM(item_count) AS item_count,
SUM(amount) AS revenue
FROM ${ref("store_clean")}
GROUP BY 1, 2
In der ref-Funktion geben Sie den Namen der Tabellen- oder Datenquellendeklaration an, von der Sie abhängig sein möchten. Dies ist in der Regel der Dateiname der SQLX-Datei, in der die Deklaration der Tabelle oder Datenquelle definiert ist.
Wenn ein Tabellenname überschrieben wird, verwenden Sie den überschriebenen Namen in der Funktion ref.
Verweisen Sie beispielsweise auf eine Tabelle mit config { name: "overridden_name" } als ref("overridden_name"). Weitere Informationen finden Sie unter Tabelleneinstellungen überschreiben und Auf eine Tabelle mit einem überschriebenen Tabellennamen verweisen.
Wenn Sie mehrere Tabellen mit demselben Namen in verschiedenen Schemas haben, können Sie auf eine bestimmte Tabelle verweisen, indem Sie der Funktion ref zwei Argumente übergeben: den Schemanamen und den Tabellennamen.
Das folgende Codebeispiel zeigt die Funktion ref mit zwei Argumenten, um eine Tabelle in einem bestimmten Schema anzugeben:
config { type: "table" }
SELECT * FROM ${ref("schema", "store_clean")}
Sie können dem