Auf dieser Seite erfahren Sie, wie Sie die SQL-Workflowverarbeitung in Dataform bearbeiten für ein bestimmtes Repository.
Sie können die Einstellungsdatei bearbeiten, um die Schemas umzubenennen, oder benutzerdefinierte Kompilierungsvariablen in Ihr Repository.
Informationen zu Repository-Einstellungen
Jedes Dataform-Repository enthält einen eindeutigen Workflow Einstellungsdatei. Die Datei enthält die Google Cloud-Projekt-ID und das Schema in wie Dataform Assets in BigQuery veröffentlicht. Dataform verwendet Standardeinstellungen die Sie überschreiben können, indem Sie die Einstellungsdatei bearbeiten.
Seit Dataform Core 3.0
werden die Workflow-Einstellungen
in der Datei workflow_settings.yaml
. In früheren Versionen von Dataform Core
Workflow-Einstellungen werden 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 weiterhin
dataform.json
zum Konfigurieren der Dataform-Einstellungen.
Über workflow_settings.yaml
Die Datei workflow_settings.yaml
, die im
Dataform Core 3.0
speichert Dataform-Workflow-Einstellungen im Format YAML
.
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 erstellt Assets, die standardmäßig alsdataform
bezeichnet werden.defaultLocation
: Ihre Standardregion des BigQuery-Datasets. Weitere Informationen zu BigQuery-Dataset-Standorten Siehe Dataset-Standorte Dort verarbeitet Dataform Ihren Code und speichert ausgeführte Daten. Diese Verarbeitungsregion muss mit dem Standort übereinstimmen Ihrer BigQuery-Datasets, muss aber nicht Dataform-Repository-Region.defaultAssertionDataset
: Das BigQuery-Dataset, in dem Dataform erstellt Ansichten mit Assertion-Ergebnissen, Standardmäßigdataform_assertions
.
Weitere Informationen zu workflow_settings.yaml
-Attributen findest du unter
Konfigurationsreferenz für Workfloweinstellungen
in GitHub.
Sie können auf die in workflow_settings.yaml
definierten Properties zugreifen in Ihrem
Dataform-Code als Attribute der
dataform.projectConfig
-Objekt enthält.
Die folgenden Zuordnungen von workflow_settings.yaml
-Optionen zum zugänglichen Code
Es gelten dataform.projectConfig
Optionen:
defaultProject
=>defaultDatabase
.defaultDataset
=>defaultSchema
.defaultAssertionDataset
=>assertionSchema
.projectSuffix
=>databaseSuffix
.datasetSuffix
=>schemaSuffix
.namePrefix
=>tablePrefix
.
Das folgende Codebeispiel zeigt das dataform.projectConfig
-Objekt, das in einem
SELECT
-Anweisung in einer Ansicht:
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 Einstellungen für Dataform-Workflows gespeichert
im Format JSON
.
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, wobei Dataform erstellt Assets.defaultDatabase
: Ihre Google Cloud-Projekt-ID für BigQuery.defaultSchema
: Das BigQuery-Dataset, in dem Dataform erstellt Assets, die standardmäßig alsdataform
bezeichnet werden.defaultLocation
: Ihre Standardregion des BigQuery-Datasets. Weitere Informationen zu BigQuery-Dataset-Standorten Siehe Dataset-Standorte Dort verarbeitet Dataform Ihren Code und speichert ausgeführte Daten. Diese Verarbeitungsregion muss mit dem Standort übereinstimmen Ihrer BigQuery-Datasets, muss aber nicht Dataform-Repository-Region.assertionSchema
: Das BigQuery-Dataset, in dem Dataform erstellt Ansichten mit Assertion-Ergebnissen, Standardmäßigdataform_assertions
.
Sie können folgendermaßen auf die in dataform.json
definierten Attribute in Ihrem Projektcode zugreifen:
Eigenschaften von dataform.projectConfig
-Objekt enthält.
Hinweise
Erforderliche Rollen
Um die Berechtigungen zu erhalten, die Sie zum Konfigurieren der Dataform-Einstellungen benötigen,
bitten Sie Ihren Administrator, Ihnen
IAM-Rolle Dataform Admin (roles/dataform.admin
) für Repositories.
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.
Schemanamen konfigurieren
Zum Konfigurieren von Schemanamen müssen Sie die defaultDataset
und
defaultAssertionSchema
Unterkünfte in
die Datei workflow_settings.yaml
oder den defaultSchema
und assertionSchema
in der Datei dataform.json
.
So konfigurieren Sie den Namen eines Schemas:
workflow_settings.yaml
Klicken Sie im Entwicklungsarbeitsbereich im Bereich Dateien auf
workflow_settings.yaml
-Datei.Bearbeiten Sie den Wert von
defaultDataset
,defaultAssertionSchema
oder beidem.
Das folgende Codebeispiel zeigt einen benutzerdefinierten defaultDataset
-Namen, der in
die Datei workflow_settings.yaml
:
...
defaultDataset: mytables
...
dataform.json
Klicken Sie im Entwicklungsarbeitsbereich im Bereich Dateien auf
dataform.json
-Datei.Bearbeiten Sie den Wert von
defaultSchema
,assertionSchema
oder beidem.
Das folgende Codebeispiel zeigt einen benutzerdefinierten defaultSchema
-Namen, der im
dataform.json
-Datei:
{
...
"defaultSchema": "mytables",
...
}
Benutzerdefinierte Kompilierungsvariablen erstellen
Kompilierungsvariablen enthalten Werte, die Sie durch die Kompilierung ändern können Überschreibungen in einer Releasekonfiguration oder in einer Dataform API-Anfrage.
Nachdem Sie in workflow_settings.yaml
eine Kompilierungsvariable definiert und zum
ausgewählten Tabellen ausgewählt haben, können Sie deren Wert in einer Releasekonfiguration ändern oder
Dataform API-Kompilierungsüberschreibungen
Tabellen bedingt ausführen.
Weitere Informationen zum bedingten Ausführen von Tabellen mithilfe der Kompilierungsvariablen, siehe Einführung in den Codelebenszyklus in Dataform
Um eine Kompilierungsvariable zu erstellen, die Sie in einem Repository verwenden können, führen Sie folgende Schritte aus:
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 den Kompilierungsvariablensatz myVariableName
zu myVariableValue
in der Datei workflow_settings.yaml
:
...
vars:
myVariableName: myVariableValue
...
Das folgende Codebeispiel zeigt die Datei workflow_settings.yaml
mit dem
Die Kompilierungsvariable executionSetting
wurde auf dev
festgelegt:
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 den Kompilierungsvariablensatz myVariableName
zu myVariableValue
in der Datei dataform.json
:
{
...
"vars": {
"myVariableName": "myVariableValue"
},
...
}
Das folgende Codebeispiel zeigt die Datei dataform.json
mit dem
Die Kompilierungsvariable executionSetting
wurde auf dev
festgelegt:
{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
"executionSetting":"dev"
}
}
Kompilierungsvariable in eine Tabelle einfügen
Um einer SQLX-Tabellendefinitionsdatei eine Kompilierungsvariable hinzuzufügen, führen Sie folgende Schritte aus:
- 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,
Beispiel:
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,
Beispiel:
Das folgende Codebeispiel zeigt eine Tabellendefinitions-SQLX-Datei mit einem when
und die Variable executionSetting
, die 10% der Daten in der
Einstellung für die Staging-Ausführung:
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 Ansichtsdefinition mit einem when
.
und die Variable 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 unter 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