Auf dieser Seite erfahren Sie, wie Sie die Einstellungen für die Dataform SQL-Workflowverarbeitung für ein bestimmtes Repository bearbeiten.
Sie können die Einstellungsdatei bearbeiten, um die Schemas umzubenennen, oder Ihrem Repository benutzerdefinierte Kompilierungsvariablen hinzufügen.
Informationen zu Repository-Einstellungen
Jedes Dataform-Repository enthält eine eindeutige Datei mit den Workfloweinstellungen. 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, indem Sie die Einstellungsdatei bearbeiten.
Ab Dataform Core 3.0 werden Workfloweinstellungen standardmäßig in der Datei workflow_settings.yaml
gespeichert. In früheren Versionen von Dataform Core werden Workfloweinstellungen in der Datei dataform.json
gespeichert.
Die workflow_settings.yaml
-Datei von Dataform Core 3.0 ist abwärtskompatibel mit dataform.json
. Sie können dataform.json
weiterhin zum Konfigurieren von Dataform-Einstellungen verwenden.
Informationen zu workflow_settings.yaml
In der mit Dataform Core 3.0 eingeführten Datei workflow_settings.yaml
werden Dataform-Workfloweinstellungen im Format YAML
gespeichert.
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 wie folgt beschrieben:
defaultProject
: Ihre Google Cloud-Projekt-ID für BigQuery.defaultDataset
: Das BigQuery-Dataset, in dem Dataform Assets erstellt. Dieses Dataset wird standardmäßig alsdataform
bezeichnet.defaultLocation
: Ihre Standardregion des BigQuery-Datasets. Weitere Informationen zu BigQuery-Dataset-Standorten finden Sie unter Dataset-Standorte. An diesem Speicherort verarbeitet Dataform Ihren Code und speichert ausgeführte Daten. Diese Verarbeitungsregion muss mit dem Speicherort Ihrer BigQuery-Datasets übereinstimmen, jedoch nicht mit der Dataform-Repository-Region.defaultAssertionDataset
: Das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt und standardmäßigdataform_assertions
genannt wird.
Weitere Informationen zu workflow_settings.yaml
-Attributen finden Sie in der Konfigurationsreferenz für Workfloweinstellungen in GitHub.
Sie können auf die in workflow_settings.yaml
definierten Attribute in Ihrem Dataform-Code als Attribute des Objekts dataform.projectConfig
zugreifen.
Die folgenden Zuordnungen von workflow_settings.yaml
-Optionen zu den für 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, das in einer SELECT
-Anweisung in einer Ansicht aufgerufen wird:
config { type: "view" }
SELECT ${when(
!dataform.projectConfig.tablePrefix,
"table prefix is set!",
"table prefix is not set!"
)}
Informationen zu dataform.json
In der Datei dataform.json
werden Einstellungen für Dataform-Workflows im Format JSON
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 wie folgt beschrieben:
warehouse
: Zeiger auf BigQuery, wo Dataform Assets erstellt.defaultDatabase
: Ihre Google Cloud-Projekt-ID für BigQuery.defaultSchema
: Das BigQuery-Dataset, in dem Dataform Assets erstellt. Dieses Dataset wird standardmäßig alsdataform
bezeichnet.defaultLocation
: Ihre Standardregion des BigQuery-Datasets. Weitere Informationen zu BigQuery-Dataset-Standorten finden Sie unter Dataset-Standorte. An diesem Speicherort verarbeitet Dataform Ihren Code und speichert ausgeführte Daten. Diese Verarbeitungsregion muss mit dem Speicherort Ihrer BigQuery-Datasets übereinstimmen, jedoch nicht mit der Dataform-Repository-Region.assertionSchema
: Das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt und standardmäßigdataform_assertions
genannt wird.
Sie können auf die in dataform.json
definierten Attribute in Ihrem Projektcode als Attribute des Objekts dataform.projectConfig
zugreifen.
Hinweise
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform Admin (roles/dataform.admin
) für Repositories zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren von Dataform-Einstellungen 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.
Schemanamen konfigurieren
Zum Konfigurieren von Schemanamen müssen Sie die Attribute defaultDataset
und defaultAssertionSchema
in der Datei workflow_settings.yaml
oder die Attribute defaultSchema
und assertionSchema
in der Datei dataform.json
bearbeiten.
So konfigurieren Sie den Namen eines Schemas:
workflow_settings.yaml
Klicken Sie im Entwicklungsarbeitsbereich im Bereich Dateien auf die Datei
workflow_settings.yaml
.Bearbeiten Sie den Wert von
defaultDataset
,defaultAssertionSchema
oder beidem.
Das folgende Codebeispiel zeigt einen benutzerdefinierten defaultDataset
-Namen, der in der Datei workflow_settings.yaml
definiert ist:
...
defaultDataset: mytables
...
dataform.json
Klicken Sie im Entwicklungsarbeitsbereich im Bereich Dateien auf die Datei
dataform.json
.Bearbeiten Sie den Wert von
defaultSchema
,assertionSchema
oder beidem.
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 Releasekonfiguration 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 deren Wert in einer Releasekonfiguration oder Dataform API-Kompilierungsüberschreibungen verwenden, 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 in einem Repository verwenden können:
workflow_settings.yaml
- Rufen Sie den 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 Kompilierungsvariable.
Das folgende Codebeispiel zeigt, wie die Kompilierungsvariable myVariableName
in der Datei workflow_settings.yaml
auf myVariableValue
gesetzt ist:
...
vars:
myVariableName: myVariableValue
...
Das folgende Codebeispiel zeigt die Datei workflow_settings.yaml
, in der die Kompilierungsvariable executionSetting
auf dev
festgelegt ist:
defaultProject: default_bigquery_database
defaultLocation: us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev
dataform.json
- Rufen Sie den 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 Kompilierungsvariable.
Das folgende Codebeispiel zeigt, wie die Kompilierungsvariable myVariableName
in der Datei dataform.json
auf myVariableValue
gesetzt ist:
{
...
"vars": {
"myVariableName": "myVariableValue"
},
...
}
Das folgende Codebeispiel zeigt die Datei dataform.json
, in der die Kompilierungsvariable executionSetting
auf dev
festgelegt ist:
{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
"executionSetting":"dev"
}
}
Kompilierungsvariable in eine Tabelle einfügen
So fügen Sie einer SQLX-Tabellendefinitionsdatei eine Kompilierungsvariable hinzu:
- Rufen Sie den Dataform-Entwicklungsarbeitsbereich auf.
- Wählen Sie im Bereich Dateien eine SQLX-Tabellendefinitionsdatei 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 durch eine Bedingung zur Ausführung der Tabelle.
- YOUR_VARIABLE durch den Namen Ihrer Variablen, z. B.
Das folgende Codebeispiel zeigt eine Tabellendefinitions-SQLX-Datei mit einer when
-Klausel und der Variablen executionSetting
, die 10% der Daten in der Staging-Ausführungseinstellung ausführt:
select
*
from ${ref("data")}
${when(
dataform.projectConfig.vars.executionSetting === "staging",
"where mod(farm_fingerprint(id) / 10) = 0",
)}
Das folgende Codebeispiel zeigt eine SQLX-Ansichtsdefinitionsdatei 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!"
)}
Nächste Schritte
Weitere Informationen zu Dataform-Projekteinstellungen finden Sie in der Referenz zu
IProjectConfig
.Informationen zum Versionsverwaltungscode in Dataform finden Sie unter Versionsverwaltung für Code.
Informationen zum Definieren einer Tabelle finden Sie unter Tabelle erstellen.