Auf dieser Seite erfahren Sie, wie Sie die Verarbeitungseinstellungen für den Dataform-SQL-Workflow für ein bestimmtes Repository bearbeiten.
Sie können die Einstellungsdatei bearbeiten, um die Schemas umzubenennen oder Ihrem Repository benutzerdefinierte Kompilierungsvariablen hinzuzufügen.
Repository-Einstellungen
Jedes Dataform-Repository enthält eine eindeutige Datei mit Workflow-Einstellungen. Die Datei enthält die Google Cloud-Projekt-ID und das Schema, in dem Dataform Assets in BigQuery veröffentlicht. Dataform verwendet Standardeinstellungen, die Sie überschreiben können, um sie an Ihre Anforderungen anzupassen. Bearbeiten Sie dazu die Einstellungsdatei.
Ab Dataform Core 3.0.0 werden Workflow-Einstellungen standardmäßig in der Datei „workflow_settings.yaml“ gespeichert.
In früheren Versionen von Dataform Core werden Workflow-Einstellungen in der Datei dataform.json
gespeichert.
Die Dataform Core 3.0-workflow_settings.yaml
-Datei ist abwärtskompatibel mit dataform.json
. Sie können dataform.json
weiterhin zum Speichern von Workflow-Einstellungen verwenden. Aus Gründen der zukünftigen Kompatibilität sollten Sie Ihre Repository-Workflow-Einstellungen in das workflow_settings.yaml
-Format migrieren.
Über workflow_settings.yaml
Die Datei workflow_settings.yaml
, die in Dataform Core 3.0 eingeführt wurde, speichert Dataform-Workflow-Einstellungen im YAML
-Format.
Das folgende Codebeispiel zeigt eine workflow_settings.yaml
-Beispieldatei:
defaultProject: my-gcp-project-id
defaultDataset: dataform
defaultLocation: australia-southeast2
defaultAssertionDataset: dataform_assertions
Im vorherigen Codebeispiel werden die Schlüssel/Wert-Paare so beschrieben:
defaultProject
: Die Google Cloud-Projekt-ID Ihres BigQuery-Projekts.defaultDataset
: Das BigQuery-Dataset, in dem Dataform Assets erstellt. Standardmäßig heißt esdataform
.defaultLocation
: Die Standardregion Ihres BigQuery-Datasets. Weitere Informationen zu BigQuery-Datensatzstandorten finden Sie unter Datensatzstandorte. An diesem Standort verarbeitet Dataform Ihren Code und speichert die ausgeführten Daten. Diese Verarbeitungsregion muss mit dem Speicherort Ihrer BigQuery-Datasets übereinstimmen, aber nicht mit der Region des Dataform-Repositories.defaultAssertionDataset
: Das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt. Standardmäßig heißt esdataform_assertions
.
Weitere Informationen zu workflow_settings.yaml
-Properties findest du in der Referenz für Konfigurationen für Workflow-Einstellungen auf GitHub.
Sie können im Dataform-Code auf die in workflow_settings.yaml
definierten Eigenschaften als Eigenschaften des Objekts dataform.projectConfig
zugreifen.
Die folgenden Zuordnungen von workflow_settings.yaml
-Optionen zu den im Code zugänglichen dataform.projectConfig
-Optionen gelten:
defaultProject
=>defaultDatabase
.defaultDataset
=>defaultSchema
.defaultAssertionDataset
=>assertionSchema
.projectSuffix
=>databaseSuffix
.datasetSuffix
=>schemaSuffix
.namePrefix
=>tablePrefix
.
Das folgende Codebeispiel zeigt das dataform.projectConfig
-Objekt, auf das in einer SELECT
-Anweisung in einer Ansicht verwiesen wird:
config { type: "view" }
SELECT ${when(
!dataform.projectConfig.tablePrefix,
"table prefix is set!",
"table prefix is not set!"
)}
Über dataform.json
In der Datei dataform.json
werden die Dataform-Workflow-Einstellungen im JSON
-Format gespeichert.
Das folgende Codebeispiel zeigt eine dataform.json
-Beispieldatei:
{
"warehouse": "bigquery",
"defaultDatabase": "my-gcp-project-id",
"defaultSchema": "dataform",
"defaultLocation": "australia-southeast2",
"assertionSchema": "dataform_assertions"
}
Im vorherigen Codebeispiel werden die Schlüssel/Wert-Paare so beschrieben:
warehouse
: Verweis auf BigQuery, in dem Dataform Assets erstellt.defaultDatabase
: Die Google Cloud-Projekt-ID Ihres BigQuery-Projekts.defaultSchema
: Das BigQuery-Dataset, in dem Dataform Assets erstellt.defaultLocation
: Die Standardregion Ihres BigQuery-Datasets. Weitere Informationen zu BigQuery-Datensatzstandorten finden Sie unter Dataset-Standorte. An diesem Speicherort verarbeitet Dataform Ihren Code und speichert die ausgeführten Daten. Diese Verarbeitungsregion muss mit dem Speicherort Ihrer BigQuery-Datasets übereinstimmen, aber nicht mit der Region des Dataform-Repositories.assertionSchema
: Das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt. Standardmäßig heißt esdataform_assertions
.
Sie können in Ihrem Projektcode auf die in dataform.json
definierten Eigenschaften als Eigenschaften des Objekts dataform.projectConfig
zugreifen.
Hinweis
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform Admin (roles/dataform.admin
) für Repositories zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie zum Konfigurieren von Dataform-Einstellungen 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.
Schemanamen konfigurieren
Wenn Sie Schemanamen konfigurieren möchten, müssen Sie die Eigenschaften defaultDataset
und defaultAssertionSchema
in der Datei workflow_settings.yaml
oder die Eigenschaften defaultSchema
und assertionSchema
in der Datei dataform.json
bearbeiten.
So konfigurieren Sie den Namen eines Schemas:
workflow_settings.yaml
Klicken Sie in Ihrem Entwicklungsbereich im Bereich Dateien auf die Datei
workflow_settings.yaml
.Bearbeiten Sie den Wert von
defaultDataset
,defaultAssertionSchema
oder beiden.
Das folgende Codebeispiel zeigt einen benutzerdefinierten defaultDataset
-Namen, der in der Datei workflow_settings.yaml
definiert ist:
...
defaultDataset: mytables
...
dataform.json
Klicken Sie in Ihrem Entwicklungsbereich im Bereich Dateien auf die Datei
dataform.json
.Bearbeiten Sie den Wert von
defaultSchema
,assertionSchema
oder beiden.
Das folgende Codebeispiel zeigt einen benutzerdefinierten defaultSchema
-Namen, der in der Datei dataform.json
definiert ist:
{
...
"defaultSchema": "mytables",
...
}
Benutzerdefinierte Kompilierungsvariablen erstellen
Kompilierungsvariablen enthalten Werte, die Sie mit Kompilierungsüberschreibungen in einer Release-Konfiguration oder in einer Dataform API-Anfrage ändern können.
Nachdem Sie eine Kompilierungsvariable in workflow_settings.yaml
definiert und ausgewählten Tabellen hinzugefügt haben, können Sie ihren Wert in einer Release-Konfiguration oder in Überschreibungen für die Dataform API-Kompilierung ändern, um Tabellen bedingt auszuführen.
Weitere Informationen zum bedingten Ausführen von Tabellen mithilfe von Kompilierungsvariablen finden Sie unter Einführung in den Codelebenszyklus in Dataform.
So erstellen Sie eine Kompilierungsvariable, die Sie für ein gesamtes Repository verwenden können:
workflow_settings.yaml
- Rufen Sie Ihren Dataform-Entwicklungsarbeitsbereich auf.
- Wählen Sie im Bereich Dateien die Datei
workflow_settings.yaml
aus. Geben Sie das folgende Code-Snippet ein:
"vars": { "YOUR_VARIABLE":"VALUE" }
Ersetzen Sie Folgendes:
- YOUR_VARIABLE durch einen Namen für die Variable.
- VALUE durch den Standardwert der Kompilierungsvariablen.
Im folgenden Codebeispiel ist die myVariableName
-Kompilierungsvariable in der Datei workflow_settings.yaml
auf myVariableValue
festgelegt:
...
vars:
myVariableName: myVariableValue
...
Das folgende Codebeispiel zeigt die workflow_settings.yaml
-Datei mit der executionSetting
-Kompilierungsvariablen, die auf dev
festgelegt ist:
defaultProject: default_bigquery_database
defaultLocation: us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev
dataform.json
- Rufen Sie Ihren Dataform-Entwicklungsarbeitsbereich auf.
- Wählen Sie im Bereich Dateien die Datei
dataform.json
aus. Geben Sie das folgende Code-Snippet ein:
"vars": { "YOUR_VARIABLE":"VALUE" }
Ersetzen Sie Folgendes:
- YOUR_VARIABLE durch einen Namen für die Variable.
- VALUE durch den Standardwert der Kompilierungsvariablen.
Im folgenden Codebeispiel ist die myVariableName
-Kompilierungsvariable in der Datei dataform.json
auf myVariableValue
festgelegt:
{
...
"vars": {
"myVariableName": "myVariableValue"
},
...
}
Das folgende Codebeispiel zeigt die dataform.json
-Datei mit der executionSetting
-Kompilierungsvariablen, die auf dev
festgelegt ist:
{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
"executionSetting":"dev"
}
}
Tabelle eine Kompilierungsvariable hinzufügen
So fügen Sie einer SQLX-Tabellendefinition eine Kompilierungsvariable hinzu:
- Rufen Sie Ihren Dataform-Entwicklungsarbeitsbereich auf.
- Wählen Sie im Bereich Dateien eine SQLX-Tabellendefinitiondatei aus.
Geben Sie in der Datei eine
when
-Klausel im folgenden Format ein:${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
Ersetzen Sie Folgendes:
- YOUR_VARIABLE durch den Namen Ihrer Variablen, z. B.
executionSetting
. - SET_VALUE durch einen Wert für die Variable, z. B.
staging
. - CONDITION mit einer Bedingung für die Ausführung der Tabelle.
- YOUR_VARIABLE durch den Namen Ihrer Variablen, z. B.
Im folgenden Codebeispiel wird eine SQLX-Datei mit einer when
-Klausel und der Variablen executionSetting
gezeigt, mit der 10% der Daten in der Einstellung für die Stagingausführung ausgeführt werden:
select
*
from ${ref("data")}
${when(
dataform.projectConfig.vars.executionSetting === "staging",
"where mod(farm_fingerprint(id) / 10) = 0",
)}
Das folgende Codebeispiel zeigt eine SQLX-Datei mit einer when
-Klausel und der Variablen myVariableName
:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Workfloweinstellungen zu workflow_settings.yaml
migrieren
Damit Ihre Workflow-Einstellungen mit zukünftigen Versionen des Dataform Core-Frameworks kompatibel sind, sollten Sie Ihre Workflow-Einstellungen aus der Datei dataform.json
in die Datei workflow_settings.yaml
migrieren.
Die Datei workflow_settings.yaml
ersetzt die Datei dataform.json
.
Wenn Dataform Core das einzige Abhängigkeitspaket in Ihrem Repository ist, ersetzt die Datei workflow_settings.yaml
auch die Datei package.json
.
Weitere Informationen zum Ersetzen von package.json
durch workflow_settings.yaml
finden Sie unter Dataform-Kernpaket verwalten.
In der folgenden Tabelle ist die Zuordnung der Eigenschaften der Workfloweinstellungen von dataform.json
zu workflow_settings.yaml
zu sehen:
Unterkunft in dataform.json |
Unterkunft in workflow_settings.yaml |
Beschreibung |
---|---|---|
assertionSchema |
defaultAssertionDataset |
Erforderlich. Der Standarddatensatz für Behauptungen. |
defaultDatabase |
defaultProject |
Erforderlich. Der Standardprojektname Google Cloud . |
defaultLocation |
defaultLocation |
Erforderlich. Der Standardspeicherort in BigQuery, an dem Dataform Tabellen erstellt. Weitere Informationen zu BigQuery-Standorten finden Sie unter Dataset-Standorte. |
defaultSchema |
defaultDataset |
Erforderlich. Der Standard-Dataset. |
databaseSuffix |
projectSuffix |
Optional. Das Suffix, das an alle Google Cloud -Projektverweise angehängt werden soll. |
schemaSuffix |
datasetSuffix |
Optional. Das Suffix, das an alle Aktionsdatensätze angehängt werden soll. |
tablePrefix |
namePrefix |
Optional. Das Präfix, das allen Aktionsnamen vorangestellt werden soll. |
vars |
vars |
Optional. Benutzerdefinierte Variablen, die dem Projektcode während der Kompilierung zur Verfügung gestellt werden. Ein Objekt, das eine Liste von key: value -Paaren enthält. |
warehouse |
- | Erforderlich in dataform.json . Dieses Feld muss auf bigquery festgelegt sein. In workflow_settings.yaml nicht verfügbar. |
- | dataformCoreVersion |
In dataform.json nicht verfügbar. Wird standardmäßig in workflow_settings.yaml für neue Repositories installiert. Weitere Informationen finden Sie unter Dataform-Kernpaket verwalten. |
So migrieren Sie Workflow-Einstellungen zu workflow_settings.yaml
:
Öffnen Sie in der Google Cloud Console die Seite Dataform.
Wählen Sie ein Repository und dann einen Arbeitsbereich aus.
Klicken Sie im Bereich Dateien auf HinzufügenHinzufügen und dann auf Datei erstellen.
Geben Sie im Feld Dateipfad hinzufügen
workflow_settings.yaml
ein.Klicken Sie auf Datei erstellen.
Fügen Sie in der
workflow_settings.yaml
-Datei die Einstellungen aus derdataform.json
-Datei hinzu, die dem YAML-Format zugeordnet sind.Klicken Sie im Bereich Dateien neben
dataform.json
auf das Dreipunkt-Menü Mehr und dann auf Löschen.Klicken Sie auf Löschen, um das Löschen von
dataform.json
zu bestätigen.
Das folgende Codebeispiel zeigt Workfloweinstellungen, die in einer dataform.json
-Datei definiert sind:
{
"warehouse": "bigquery",
"defaultDatabase": "dataform-demos",
"defaultLocation": "US",
"defaultSchema": "dataform",
"assertionSchema": "dataform_assertions"
"vars": {
"environmentName": "development"
}
}
Das folgende Codebeispiel zeigt die vorherige dataform.json
-Datei, die in workflow_settings.yaml
konvertiert wurde:
defaultProject: dataform-demos
defaultLocation: US
defaultDataset: dataform
defaultAssertionDataset: dataform_assertions
vars:
environmentName: "development"
Nächste Schritte
Informationen zum Migrieren des Dataform-Kernpakets zu
workflow_settings.yaml
finden Sie unter Dataform-Kernpaket verwalten.Weitere Informationen zu den Dataform-Projekteinstellungen finden Sie in der
IProjectConfig
-Referenz.