Repository verwalten

In diesem Dokument wird beschrieben, wie Sie in Dataform Folgendes tun können:

Hinweis

  1. Wählen Sie ein Repository aus oder erstellen Sie eines.

  2. Optional: Repository mit einem Git-Repository eines Drittanbieters verbinden

  3. Entwicklungsarbeitsbereich in Ihrem Repository erstellen und initialisieren

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Aufgaben in diesem Dokument benötigen:

  • Dataform-Einstellungen konfigurieren und den Speicherort des Dataform-Kernpakets verwalten: Dataform Admin (roles/dataform.admin) für Repositories.
  • Dataform Core-Paket aktualisieren und Versionsverwaltung in Dataform verwenden: Dataform-Bearbeiter (roles/dataform.editor) für Arbeitsbereiche.

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.

Dataform-Workfloweinstellungen konfigurieren

In diesem Abschnitt erfahren Sie, wie Sie die Verarbeitungseinstellungen für den Dataform-Workflow für ein bestimmtes Repository bearbeiten.

Möglicherweise möchten Sie die Einstellungsdatei bearbeiten, um die Schemas umzubenennen oder benutzerdefinierte Kompilierungsvariablen in Ihr Repository aufzunehmen.

Repository-Einstellungen

Für alle Repositories ist ein benutzerdefiniertes Dienstkonto für die Workflowausführung erforderlich und der strikte „act-as“-Modus wird erzwungen. Sie können den Dataform-Standarddienst-Agent nicht verwenden, um Workflows auszuführen.

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 durch Bearbeiten der Einstellungsdatei überschreiben können, um sie optimal an Ihre Anforderungen anzupassen.

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. Beide Konfigurationsdateien müssen sich im Stammverzeichnis Ihres Repositorys befinden. Die Dataform Core 3.0-Datei workflow_settings.yaml ist abwärtskompatibel mit der Datei dataform.json. Sie können die Datei dataform.json weiterhin zum Speichern von Workflow-Einstellungen verwenden. Als Best Practice sollten Sie die Workflow-Einstellungen Ihres Repositorys zur zukünftigen Kompatibilität in das workflow_settings.yaml-Format migrieren.

Über workflow_settings.yaml

In der Datei workflow_settings.yaml, die in Dataform Core 3.0 eingeführt wurde, werden Dataform-Workflow-Einstellungen im YAML-Format 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 so beschrieben:

  • defaultProject: Ihre BigQuery Google Cloud -Projekt-ID.
  • defaultDataset: Das BigQuery-Dataset, in dem Dataform Assets erstellt. Der Standardname ist dataform.
  • defaultLocation (optional): Standardspeicherort des BigQuery-Datasets. Dataform verwendet diesen Speicherort, um Ihren Code zu verarbeiten und die Ergebnisse zu speichern. Dieser Verarbeitungsstandort muss mit dem Standort Ihrer BigQuery-Datasets übereinstimmen. Sie muss jedoch nicht mit dem Speicherort des Dataform-Repositorys übereinstimmen.

    Wenn Sie den Parameter defaultLocation nicht festlegen, bestimmt Dataform den Speicherort anhand der Datasets, auf die in der SQL-Abfrage verwiesen wird. Das funktioniert so:

    • Wenn in Ihrer Abfrage auf Datasets am selben Standort verwiesen wird, verwendet Dataform diesen Standort.
    • Wenn Ihre Abfrage auf Datasets aus zwei oder mehr verschiedenen Standorten verweist, tritt ein Fehler auf. Weitere Informationen zu dieser Einschränkung finden Sie unter Regionenübergreifende Dataset-Replikation.
    • Wenn in Ihrer Abfrage nicht auf Datasets verwiesen wird, ist der standardmäßige Standort für Dataform die US Multi-Region. Wenn Sie einen anderen Standort auswählen möchten, legen Sie den standardmäßigen Standort fest. Alternativ können Sie die Systemvariable @@location in Ihrer Abfrage verwenden. Weitere Informationen finden Sie unter Standorte angeben.
  • defaultAssertionDataset: Das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt. Standardmäßig heißt es dataform_assertions.

Weitere Informationen zu workflow_settings.yaml-Eigenschaften finden Sie unter WorkflowSettings auf GitHub.

Sie können in Ihrem Dataform-Code als Attribute des dataform.projectConfig-Objekts auf die in workflow_settings.yaml definierten Attribute zugreifen.

Die folgenden Zuordnungen der workflow_settings.yaml-Optionen zu den über 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 Dataform-Workflow-Einstellungen 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 so beschrieben:

  • warehouse: Ein Zeiger auf BigQuery, wo Dataform Assets erstellt.
  • defaultDatabase: Ihre BigQuery Google Cloud -Projekt-ID.
  • defaultSchema: Das BigQuery-Dataset, in dem Dataform Assets erstellt.
  • defaultLocation (optional): Standardspeicherort des BigQuery-Datasets. Dataform verwendet diesen Speicherort, um Ihren Code zu verarbeiten und die Ergebnisse zu speichern. Dieser Verarbeitungsstandort muss mit dem Standort Ihrer BigQuery-Datasets übereinstimmen. Sie muss jedoch nicht mit dem Speicherort des Dataform-Repositorys übereinstimmen.

    Wenn Sie den Parameter defaultLocation nicht festlegen, bestimmt Dataform den Speicherort anhand der Datasets, auf die in der SQL-Abfrage verwiesen wird. Das funktioniert so:

    • Wenn in Ihrer Abfrage auf Datasets am selben Standort verwiesen wird, verwendet Dataform diesen Standort.
    • Wenn Ihre Abfrage auf Datasets aus zwei oder mehr verschiedenen Standorten verweist, tritt ein Fehler auf. Weitere Informationen zu dieser Einschränkung finden Sie unter Regionenübergreifende Dataset-Replikation.
    • Wenn in Ihrer Abfrage nicht auf Datasets verwiesen wird, ist der standardmäßige Standort für Dataform die US Multi-Region. Wenn Sie einen anderen Standort auswählen möchten, legen Sie den standardmäßigen Standort fest. Alternativ können Sie die Systemvariable @@location in Ihrer Abfrage verwenden. Weitere Informationen finden Sie unter Standorte angeben.
  • assertionSchema: Das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt. Standardmäßig heißt es dataform_assertions.

Sie können im Projektcode als Attribute des dataform.projectConfig-Objekts auf die in der Datei dataform.json definierten Attribute zugreifen.

Schemanamen konfigurieren

Wenn Sie Schemanamen konfigurieren möchten, 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

  1. Klicken Sie in Ihrem Entwicklungsarbeitsbereich im Bereich Dateien auf die Datei workflow_settings.yaml.

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

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

  2. 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 sie ausgewählten Tabellen hinzugefügt haben, können Sie ihren Wert in einer Release-Konfiguration oder Dataform API-Kompilierungsüberschreibungen ändern, um Tabellen bedingt auszuführen.

Weitere Informationen zum bedingten Ausführen von Tabellen mithilfe von Kompilierungsvariablen finden Sie unter Code-Lebenszyklus in Dataform.

So erstellen Sie eine Kompilierungsvariable, die Sie in einem Repository verwenden können:

workflow_settings.yaml

  1. Rufen Sie Ihren Dataform-Entwicklungsarbeitsbereich auf.
  2. Wählen Sie im Bereich Dateien die Datei workflow_settings.yaml aus.
  3. Geben Sie das folgende Code-Snippet ein:

    "vars": {
      "VARIABLE":"VALUE"
    }
    

    Ersetzen Sie Folgendes:

    • VARIABLE: ein Name für die Variable
    • VALUE: Der Standardwert der Kompilierungsvariable.

Im folgenden Codebeispiel wird die Kompilierungsvariable myVariableName in der Datei workflow_settings.yaml auf myVariableValue gesetzt:

...
vars:
  myVariableName: myVariableValue
...

Das folgende Codebeispiel zeigt die Datei workflow_settings.yaml mit der Kompilierungsvariable executionSetting, die auf dev festgelegt ist:

defaultProject: default_bigquery_database
defaultLocation: us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev

dataform.json

  1. Rufen Sie Ihren Dataform-Entwicklungsarbeitsbereich auf.
  2. Wählen Sie im Bereich Dateien die Datei dataform.json aus.
  3. Geben Sie das folgende Code-Snippet ein:

    "vars": {
      "VARIABLE":"VALUE"
    }
    

    Ersetzen Sie Folgendes:

    • VARIABLE: ein Name für die Variable
    • VALUE: Der Standardwert der Kompilierungsvariable.

Im folgenden Codebeispiel wird die Kompilierungsvariable myVariableName in der Datei dataform.json auf myVariableValue gesetzt:

{
  ...
  "vars": {
    "myVariableName": "myVariableValue"