In diesem Dokument erfahren Sie, wie Sie zusätzliche Tabelleneinstellungen in einer Tabellendefinitionsdatei konfigurieren. Mit Dataform Core können Sie pre_operations
und post_operations
definieren, um eine SQL-Anweisung vor oder nach dem Erstellen der Tabelle auszuführen. Sie können auch Tabelleneinstellungen wie database
oder schema
überschreiben und die Tabellenerstellung deaktivieren.
Hinweis
Öffnen Sie in der Google Cloud Console die Seite Dataform.
Wählen Sie ein Repository aus oder erstellen Sie ein neues.
Wählen Sie einen Entwicklungsarbeitsbereich aus oder erstellen Sie einen.
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 Konfigurieren zusätzlicher Tabelleneinstellungen 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.
Tabelleneinstellungen überschreiben
Sie können das Schema, die Datenbank und den Namen einer ausgewählten Tabelle überschreiben.
Standardmäßig folgt eine Tabelle der Schema- und Datenbankkonfiguration, die Sie in workflow_settings.yaml
festgelegt haben. Der Name einer Tabelle ist mit dem Namen der SQLX-Datei der Tabellendefinition identisch.
So überschreiben Sie das Schema und den Namen einer ausgewählten Tabelle:
Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie in den Block
config
das folgende Code-Snippet ein:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
Ersetzen Sie Folgendes:
OVERRIDDEN_SCHEMA
: das BigQuery-Dataset, in dem Sie die Tabelle erstellen möchtenOVERRIDDEN_DATABASE
: die ID des BigQuery-Projekts, in dem Sie die Tabelle erstellen möchtenOVERRIDDEN_NAME
: der Name der Tabelle, der sich vom Dateinamen der SQLX-Tabellendefinition unterscheidet
Optional: Klicken Sie auf Formatieren.
Auf eine Tabelle mit einem überschriebenen Tabellennamen verweisen
- Wenn Sie auf eine Tabelle mit einem überschriebenen Tabellennamen verweisen möchten, geben Sie in der Funktion
ref
den inname: ""
festgelegten überschriebenen Tabellennamen ein.
Im folgenden Codebeispiel wird auf eine Tabelle verwiesen, deren Name in overridden_name
überschrieben wurde:
SELECT * FROM ${ref("overridden_name")}
SQL-Anweisung definieren, die vor dem Erstellen der Tabelle ausgeführt werden soll
Sie können Dataform so konfigurieren, dass eine oder mehrere SQL-Anweisungen ausgeführt werden, bevor eine ausgewählte Tabelle in BigQuery erstellt wird. Wenn Sie eine SQL-Anweisung ausführen möchten, bevor Dataform eine ausgewählte Tabelle erstellt, fügen Sie die Anweisung dem Block pre_operations
in der SQLX-Datei für die Tabellendefinition hinzu.
So erstellen Sie eine benutzerdefinierte SQL-Anweisung, die ausgeführt wird, bevor Dataform eine bestimmte Tabelle erstellt:
Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie außerhalb des Blocks
config
den Wertpre_operations { ... }
ein.Fügen Sie die SQL-Anweisung in
pre_operations { ... }
ein.Optional: Wenn Sie mehrere Anweisungen hinzufügen möchten, trennen Sie diese durch
---
.Optional: Klicken Sie auf Formatieren.
Das folgende Codebeispiel zeigt eine pre_operations
-Anweisung, mit der eine temporäre Funktion erstellt wird, die in der SELECT-Anweisung verwendet werden kann:
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
SQL-Anweisung definieren, die nach dem Erstellen der Tabelle ausgeführt werden soll
Sie können Dataform so konfigurieren, dass eine oder mehrere SQL-Anweisungen ausgeführt werden, nachdem eine ausgewählte Tabelle in BigQuery erstellt wurde. Wenn Sie eine SQL-Anweisung ausführen möchten, nachdem Dataform eine ausgewählte Tabelle erstellt hat, fügen Sie die Anweisung dem post_operations
-Block in der SQLX-Datei für die Tabellendefinition hinzu. Sie können dem post_operations
-Block mehrere SQL-Anweisungen hinzufügen.
So erstellen Sie eine benutzerdefinierte SQL-Anweisung, die ausgeführt wird, nachdem Dataform eine bestimmte Tabelle erstellt hat:
Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie außerhalb des Blocks
config
den Wertpost_operations { ... }
ein.Fügen Sie die SQL-Anweisung in
post_operations { ... }
ein.Optional: Klicken Sie auf Formatieren.
Das folgende Codebeispiel zeigt post_operations
-Anweisungen, die Gruppen Zugriff auf die erstellte Tabelle gewähren:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Tabellenerstellung deaktivieren
Wenn Sie verhindern möchten, dass Dataform eine ausgewählte Tabelle in BigQuery erstellt, können Sie die Tabelle in der SQLX-Tabellendefinitiondatei deaktivieren. Dataform behält eine deaktivierte Tabelle im Abhängigkeitsdiagramm, kompiliert und erstellt sie jedoch nicht. Das kann beispielsweise nützlich sein, wenn bei einer Tabelle ein Fehler auftritt und Sie nicht möchten, dass der gesamte Workflow fehlschlägt, während Sie das Problem beheben.
So deaktivieren Sie eine Tabelle:
Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien
definitions/
.Wählen Sie eine SQLX-Tabellendefinitionsdatei aus.
Geben Sie im
config
-Block der Dateidisabled: true
ein.Optional: Klicken Sie auf Formatieren.
Das folgende Codebeispiel zeigt eine deaktivierte Tabelle:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
Nächste Schritte
Weitere Informationen zum Konfigurieren der Dataform-Einstellungen in
workflow_settings.yaml
finden Sie unter Dataform-Einstellungen konfigurieren.Weitere Informationen zum Testen von Tabellendaten mit Behauptungen
Informationen zum Wiederverwenden von Code mit Includes finden Sie unter Code in einem einzelnen Repository mit Includes wiederverwenden.
Informationen zum manuellen Auslösen von Ausführungen finden Sie unter Triggerausführung.