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
so definieren, dass eine SQL-Anweisung vor oder nach der Tabellenerstellung ausgeführt wird. Sie können auch Tabelleneinstellungen wie database
oder schema
überschreiben und die Tabellenerstellung deaktivieren.
Hinweise
Öffnen Sie in der Google Cloud Console die Seite Dataform.
Wählen Sie ein Repository aus oder erstellen Sie ein Repository.
Wählen Sie einen Entwicklungsarbeitsbereich aus oder erstellen Sie einen.
Erforderliche Rollen
Um die Berechtigungen zu erhalten, die Sie zum Konfigurieren zusätzlicher Tabelleneinstellungen benötigen,
bitten Sie Ihren Administrator, Ihnen
IAM-Rolle Dataform Editor (roles/dataform.editor
) für Arbeitsbereiche.
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.
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
Der Name einer Tabelle entspricht dem Namen der Tabelle
SQLX-Definitionsdatei.
So überschreiben Sie das Schema und den Namen einer ausgewählten Tabelle:
Rufen Sie den Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien den Bereich
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie im Block
config
das folgende Code-Snippet ein:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
Ersetzen Sie Folgendes:
OVERRIDDEN_SCHEMA
: BigQuery Dataset, in dem Sie die Tabelle erstellen möchtenOVERRIDDEN_DATABASE
: die ID des BigQuery-Projekt, in dem Sie die Tabelle erstellen möchtenOVERRIDDEN_NAME
: der Name der Tabelle unterscheidet sich vom Namen der SQLX-Tabellendefinitionsdatei
Optional: Klicken Sie auf Format.
Auf eine Tabelle mit einem überschriebenen Tabellennamen verweisen
- Um auf eine Tabelle mit einem überschriebenen Tabellennamen zu verweisen, geben Sie in der Funktion
ref
Folgendes an: Geben Sie den überschriebenen Tabellennamen ein, der inname: ""
festgelegt wurde.
Im folgenden Codebeispiel wird auf eine Tabelle verwiesen, deren Name durch überschrieben wird
overridden_name
:
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 Sie eine ausgewählte Tabelle in BigQuery erstellen. Um eine SQL-Abfrage
bevor Dataform eine ausgewählte Tabelle erstellt, fügen Sie
-Anweisung zum Block pre_operations
in der SQLX-Tabellendefinitionsdatei hinzu.
Um eine benutzerdefinierte SQL-Anweisung zu erstellen, die ausgeführt wird, bevor Dataform eine bestimmte führen Sie die folgenden Schritte aus:
Rufen Sie den Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien den Bereich
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie außerhalb des Blocks
config
pre_operations { ... }
ein.Fügen Sie in
pre_operations { ... }
Ihre SQL-Anweisung hinzu.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 ein
temporäre Funktion, 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. So führen Sie eine SQL-Anweisung aus:
Nachdem Dataform eine ausgewählte Tabelle erstellt hat, fügen Sie Ihre Anweisung
den Block post_operations
in der SQLX-Tabellendefinitionsdatei. Sie können
mehrere SQL-Anweisungen in den post_operations
-Block ein.
Um eine benutzerdefinierte SQL-Anweisung zu erstellen, die ausgeführt wird, nachdem Dataform eine bestimmte führen Sie die folgenden Schritte aus:
Rufen Sie den Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien den Bereich
definitions/
.Öffnen Sie eine SQLX-Tabellendefinitionsdatei.
Geben Sie außerhalb des Blocks
config
post_operations { ... }
ein.Fügen Sie in
post_operations { ... }
Ihre SQL-Anweisung hinzu.Optional: Klicken Sie auf Format.
Das folgende Codebeispiel zeigt post_operations
-Anweisungen, die Gruppen gewähren
auf die erstellte Tabelle:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Tabellenerstellung deaktivieren
Um zu verhindern, dass Dataform eine ausgewählte Tabelle erstellt in BigQuery können Sie die Tabelle in der zugehörigen SQLX-Tabellendefinitionsdatei deaktivieren. Dataform behält eine deaktivierte Tabelle im Abhängigkeitsdiagramm bei, nicht kompilieren und erstellen. Dies kann beispielsweise nützlich sein, wenn eine Tabelle ausfällt und möchten Sie nicht, dass der gesamte Workflow fehlt, während Sie das Problem beheben.
So deaktivieren Sie eine Tabelle:
Rufen Sie den Entwicklungsarbeitsbereich auf.
Maximieren Sie im Bereich Dateien den Bereich
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
Weitere Informationen zum Konfigurieren der Dataform-Einstellungen in
dataform.json
Siehe Dataform-Einstellungen konfigurieren.Informationen zum Testen von Tabellendaten mit Assertions finden Sie unter Tabellen mit Assertions testen.
Informationen zum Wiederverwenden von Code mit Einbindungen finden Sie unter Variablen und Funktionen mit Einbindungen wiederverwenden.
Informationen zum manuellen Auslösen von Ausführungen finden Sie unter Ausführung auslösen.