Dataform-Einstellungen konfigurieren

Auf dieser Seite wird beschrieben, wie Sie die Dataform-Verarbeitungseinstellungen für ein bestimmtes Repository bearbeiten.

Sie können die Datei mit den Einstellungen bearbeiten, um die Schemas umzubenennen oder Ihrem Repository benutzerdefinierte Kompilierungsvariablen hinzuzufügen.

Repository-Einstellungen

Jedes Dataform-Repository enthält eine eindeutige dataform.json-Einstellungsdatei. 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 durch Bearbeiten der Datei dataform.json nach Bedarf überschreiben können.

Das folgende Codebeispiel zeigt eine dataform.json-Beispieldatei:

  {
    "warehouse": "bigquery",
    "defaultDatabase": "my-gcp-project-id",
    "defaultSchema": "dataform",
    "defaultLocation": "australia-southeast2",
    "assertionSchema": "dataform_assertions"
  }

Im Beispielcode werden die Schlüssel/Wert-Paare so beschrieben:

  • warehouse: Verweist auf BigQuery, wo Dataform Assets erstellt.
  • defaultDatabase: Ihre Google Cloud-Projekt-ID für BigQuery.
  • defaultSchema: Das BigQuery-Dataset, in dem Dataform standardmäßig Assets mit dem Namen dataform erstellt.
  • defaultLocation: Die Standardregion des BigQuery-Datasets. Weitere Informationen zu Speicherorten von BigQuery-Datasets finden Sie unter Dataset-Standorte. An diesem Speicherort verarbeitet Dataform Ihren Code und speichert ausgeführte Daten. Diese Verarbeitungsregion muss mit dem Standort Ihrer BigQuery-Datasets übereinstimmen, jedoch nicht mit der Dataform-Repository-Region.
  • assertionSchema: Das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt, die standardmäßig dataform_assertions genannt werden.

Sie können in Ihrem Projektcode auf die in dataform.json definierten Attribute als Attribute des Objekts dataform.projectConfig zugreifen. Weitere Informationen zum Objekt dataform.projectConfigfinden Sie in der IProjectConfigReferenz des Dataform-Kerns.

Im folgenden Codebeispiel sehen Sie das dataform.projectConfig-Objekt, das in einer Ansicht in einer SELECT-Anweisung aufgerufen wird:

  config { type: "view" }
  SELECT ${when(
    dataform.projectConfig.warehouse === "bigquery",
    "warehouse is set to BigQuery!",
    "warehouse is not set to BigQuery!"
  )}

Hinweis

  1. Erstellen Sie ein Repository.

  2. Entwicklungsarbeitsbereich in Ihrem Repository erstellen und initialisieren.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform-Administrator (roles/dataform.admin) für Repositories zuzuweisen, 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.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Schemanamen konfigurieren

In dieser Aufgabe wird gezeigt, wie die Attribute defaultSchema und assertionSchema in der Datei dataform.json konfiguriert werden.

So ändern Sie den Namen eines Schemas:

  1. Klicken Sie im Entwicklungsarbeitsbereich im Bereich Dateien auf die Datei dataform.json.

  2. Bearbeiten Sie den Wert von defaultSchema, assertionSchema oder beidem.

Im folgenden Codebeispiel wird in der Datei dataform.json ein benutzerdefinierter defaultSchema-Name angezeigt:

  {
    ...
    "defaultSchema": "mytables",
    ...
  }

Benutzerdefinierte Variablen für die Zusammenstellung erstellen

Kompilierungsvariablen enthalten Werte, die Sie durch Kompilierungsüberschreibungen in einer Dataform API-Anfrage ändern können.

Nachdem Sie eine Kompilierungsvariable in dataform.json definiert und den ausgewählten Tabellen hinzugefügt haben, können Sie ihren Wert in Compilation-Überschreibungen der Dataform API ändern, um Tabellen bedingt auszuführen.

So erstellen Sie eine Compilation-Variable, die in einem Repository verwendet werden kann:

  1. Rufen Sie den Dataform-Arbeitsbereich für die Entwicklung auf.
  2. Wählen Sie im Bereich Dateien die Datei dataform.json aus.
  3. Geben Sie das folgende Code-Snippet ein:

    "vars": {
     "YOUR_VARIABLE":"VALUE"
    }
    

    Dabei gilt:

    • YOUR_VARIABLE durch einen Namen für die Variable
    • VALUE durch den Standardwert der Kompilierungsvariablen.

Im folgenden Codebeispiel sehen Sie die Kompilierungsvariable myVariableName, die in der Datei dataform.json auf myVariableValue gesetzt ist:

  {
    ...
    "vars": {
      "myVariableName": "myVariableValue"
    },
    ...
  }

Das folgende Codebeispiel zeigt die Datei dataform.json, wobei die Kompilierungsvariable executionSetting auf dev festgelegt ist:

{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database".
"defaultLocation":"us-west-1",
"vars": {
  "executionSetting":"dev"
}
}

Kompilierungsvariable zu einer Tabelle hinzufügen

Gehen Sie so vor, um einer SQLX-Tabellendefinitionsdatei eine Kompilierungsvariable hinzuzufügen:

  1. Rufen Sie den Dataform-Arbeitsbereich für die Entwicklung auf.
  2. Wählen Sie im Bereich Dateien eine SQLX-Tabellendefinitionsdatei aus.
  3. Geben Sie in der Datei eine when-Klausel im folgenden Format ein:

    ${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
    

    Dabei gilt:

    • 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.

Das folgende Codebeispiel zeigt eine SQLX-Datei mit Tabellendefinition, 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-Datei mit Ansichtsdefinitionen, die eine when-Klausel und die Variable myVariableName enthält:

  config { type: "view" }
  SELECT ${when(
    dataform.projectConfig.vars.myVariableName === "myVariableValue",
    "myVariableName is set to myVariableValue!",
    "myVariableName is not set to myVariableValue!"
  )}

Nächste Schritte