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.
Hinweise
Rufen Sie in der Google Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository aus oder erstellen Sie ein Repository.
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 zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren zusätzlicher Tabelleneinstellungen benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Möglicherweise können Sie 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 dem Schema und der Datenbankkonfiguration, die Sie in dataform.json
festgelegt haben. Der Name der Tabelle entspricht dem Namen der SQLX-Datei für die Tabellendefinition.
So überschreiben Sie das Schema und den Namen einer ausgewählten Tabelle:
Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien die Option
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie im
config
-Block das folgende Code-Snippet ein:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
Ersetzen Sie Folgendes:
OVERRIDDEN_SCHEMA
ist das BigQuery-Dataset, in dem Sie die Tabelle erstellen möchten.OVERRIDDEN_DATABASE
: die ID des BigQuery-Projekts, in dem Sie die Tabelle erstellen möchtenOVERRIDDEN_NAME
: der Name der Tabelle, der sich vom Namen der SQLX-Tabellendefinitionsdatei unterscheidet.
Optional: Klicken Sie auf Format.
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 mit overridden_name
überschrieben wird:
SELECT * FROM ${ref("overridden_name")}
SQL-Anweisung definieren, die vor der Tabellenerstellung 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 der 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 die Option
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie außerhalb des
config
-Blockspre_operations { ... }
ein.Fügen Sie die SQL-Anweisung in
pre_operations { ... }
ein.Optional: Wenn Sie mehrere Anweisungen hinzufügen möchten, trennen Sie sie durch
---
.Optional: Klicken Sie auf Format.
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 der Tabellenerstellung ausgeführt werden soll
Sie können Dataform so konfigurieren, dass eine oder mehrere SQL-Anweisungen ausgeführt werden, nachdem Sie eine ausgewählte Tabelle in BigQuery erstellt haben. Wenn Sie eine SQL-Anweisung ausführen möchten, nachdem Dataform eine ausgewählte Tabelle erstellt hat, fügen Sie die Anweisung dem Block post_operations
in der SQLX-Datei der Tabellendefinition hinzu. Sie können dem Block post_operations
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 die Option
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie außerhalb des
config
-Blockspost_operations { ... }
ein.Fügen Sie die SQL-Anweisung in
post_operations { ... }
ein.Optional: Klicken Sie auf Format.
Das folgende Codebeispiel enthält post_operations
-Anweisungen, durch die Gruppen Zugriff auf die erstellte Tabelle gewährt wird:
post_operations {
GRANT SELECT ON ${self()} TO GROUP "allusers@example.com";
GRANT SELECT ON ${self()} TO GROUP "otherusers@example.com";
}
Tabellenerstellung deaktivieren
Wenn Dataform keine ausgewählte Tabelle in BigQuery erstellen soll, können Sie die Tabelle in der entsprechenden SQLX-Tabellendefinitionsdatei deaktivieren. Dataform behält eine deaktivierte Tabelle im Abhängigkeitsdiagramm bei, kompiliert und erstellt sie aber nicht. Dies kann beispielsweise nützlich sein, wenn eine Tabelle fehlschlägt und Sie nicht möchten, dass der gesamte Workflow während der Behebung des Problems fehlschlägt.
So deaktivieren Sie eine Tabelle:
Rufen Sie Ihren Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien die Option
definitions/
.Wählen Sie eine SQLX-Tabellendefinitionsdatei aus.
Geben Sie im Block
config
der Dateidisabled: true
ein.Optional: Klicken Sie auf Format.
Das folgende Codebeispiel zeigt eine deaktivierte Tabelle:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
Nächste Schritte
Informationen zum Konfigurieren von Dataform-Einstellungen in
dataform.json
finden Sie unter Dataform-Einstellungen konfigurieren.Informationen zum Testen von Tabellendaten mit Assertions finden Sie unter Tabellen mit Assertions testen.
Weitere Informationen zur Wiederverwendung von Code mit „Einschließen“ finden Sie unter Variablen und Funktionen mit „Includes“ wiederverwenden.
Informationen zum manuellen Auslösen von Ausführungen finden Sie unter Ausführung auslösen.