In diesem Dokument wird beschrieben, wie Sie in Dataform Folgendes tun können:
- Dataform-Workflow-Einstellungen konfigurieren
- Dataform Core-Paket verwalten
- Versionsverwaltung für Code
Hinweis
Wählen Sie ein Repository aus oder erstellen Sie eines.
Optional: Repository mit einem Git-Repository eines Drittanbieters verbinden
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 Core-Pakets 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 Einstellungen für die Verarbeitung von Dataform-Workflows für ein bestimmtes Repository bearbeiten.
Sie können die Einstellungsdatei bearbeiten, um die Schemas umzubenennen oder Ihrem Repository benutzerdefinierte Kompilierungsvariablen hinzuzufügen.
Informationen zu 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 zum Ausführen von Workflows verwenden.
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 Ihre Repository-Workflow-Einstellungen in das workflow_settings.yaml-Format migrieren, um die zukünftige Kompatibilität zu gewährleisten.
Über workflow_settings.yaml
In der Datei workflow_settings.yaml, die in Dataform Core 3.0 eingeführt wurde, werden Dataform-Workflow-Einstellungen im Format YAML gespeichert.
Das folgende Codebeispiel zeigt eine Beispiel-workflow_settings.yaml-Datei:
defaultProject: my-gcp-project-id
defaultDataset: dataform
defaultLocation: australia-southeast2
defaultAssertionDataset: dataform_assertions
dataformCoreVersion: 3.0.62
preserveGovernanceControls: true
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, standardmäßigdataformgenannt.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. Er muss jedoch nicht mit dem Standort des Dataform-Repositorys übereinstimmen.Wenn Sie den Parameter
defaultLocationnicht festlegen, bestimmt Dataform den Standort anhand der Datasets, auf die Ihre SQL-Abfrage verweist. Das funktioniert so:- Wenn Ihre Abfrage auf Datasets am selben Standort verweist, verwendet Dataform diesen Standort.
- Wenn in Ihrer Abfrage auf Datasets aus zwei oder mehr verschiedenen Standorten verwiesen wird, tritt ein Fehler auf. Weitere Informationen zu dieser Einschränkung finden Sie unter Regionenübergreifende Dataset-Replikation.
- Wenn Ihre Abfrage nicht auf Datasets verweist, ist der Standardstandort für Dataform die Multiregion
US. Wenn Sie einen anderen Standort auswählen möchten, legen Sie den standardmäßigen Standort fest. Alternativ können Sie die Systemvariable@@locationin Ihrer Abfrage verwenden. Weitere Informationen finden Sie unter Standorte angeben.
defaultAssertionDataset: das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt, standardmäßigdataform_assertionsgenannt.dataformCoreVersion: die Version des Dataform Core-Pakets, das in Ihrem Repository installiert ist. Weitere Informationen finden Sie unter Dataform-Kernpaket verwalten.preserveGovernanceControls(optional): Ein boolescher Wert, der angibt, ob Dataform vorhandene BigQuery-Datenrichtlinien und Data-Governance-Tags (Vorabversion) automatisch beibehält, wenn Tabellen bei Workflow-Ausführungen neu erstellt werden. Weitere Informationen finden Sie unter Metadaten für die Zugriffssteuerung beibehalten.
Weitere Informationen zu workflow_settings.yaml-Attributen finden Sie unter WorkflowSettings auf GitHub.
Sie können auf die in workflow_settings.yaml definierten Eigenschaften in Ihrem Dataform-Code als Eigenschaften des dataform.projectConfig-Objekts zugreifen.
Es gelten die folgenden Zuordnungen von den workflow_settings.yaml-Optionen zu den über Code zugänglichen dataform.projectConfig-Optionen:
defaultProject=>defaultDatabasedefaultDataset=>defaultSchemadefaultAssertionDataset=>assertionSchemaprojectSuffix=>databaseSuffixdatasetSuffix=>schemaSuffixnamePrefix=>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 Beispiel-dataform.json-Datei:
{
"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): Ihr Standardspeicherort für BigQuery-Datasets. Dataform verwendet diesen Standort, 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
defaultLocationnicht festlegen, bestimmt Dataform den Standort anhand der Datasets, auf die Ihre SQL-Abfrage verweist. Das funktioniert so:- Wenn Ihre Abfrage auf Datasets am selben Standort verweist, verwendet Dataform diesen Standort.
- Wenn in Ihrer Abfrage auf Datasets aus zwei oder mehr verschiedenen Standorten verwiesen wird, tritt ein Fehler auf. Weitere Informationen zu dieser Einschränkung finden Sie unter Regionenübergreifende Dataset-Replikation.
- Wenn Ihre Abfrage nicht auf Datasets verweist, ist der Standardspeicherort für Dataform die Multi-Region
US. Wenn Sie einen anderen Standort auswählen möchten, legen Sie den standardmäßigen Standort fest. Alternativ können Sie die Systemvariable@@locationin Ihrer Abfrage verwenden. Weitere Informationen finden Sie unter Standorte angeben.
assertionSchema: das BigQuery-Dataset, in dem Dataform Ansichten mit Assertion-Ergebnissen erstellt, standardmäßigdataform_assertionsgenannt.
Sie können auf die in der Datei dataform.json definierten Attribute in Ihrem Projektcode als Attribute des Objekts dataform.projectConfig 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
Klicken Sie in Ihrem Entwicklungsarbeitsbereich im Bereich Dateien auf die Datei
workflow_settings.yaml.Bearbeiten Sie den Wert von
defaultDataset,defaultAssertionSchemaoder beidem.
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 Entwicklungsarbeitsbereich im Bereich Dateien auf die Datei
dataform.json.Bearbeiten Sie den Wert von
defaultSchema,assertionSchemaoder 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 Release-Konfiguration oder in einer Dataform API-Anfrage ändern können.
Nachdem Sie eine Kompilierungsvariable in workflow_settings.yaml definiert und zu ausgewählten Tabellen hinzugefügt haben, können Sie ihren Wert in einer Release-Konfiguration oder in Dataform API-Kompilierungsüberschreibungen ä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 in einem Repository verwenden können:
workflow_settings.yaml
- Rufen Sie Ihren Dataform-Entwicklungsarbeitsbereich auf.
- Wählen Sie im Bereich Dateien die Datei
workflow_settings.yamlaus. Geben Sie das folgende Code-Snippet ein:
"vars": { "VARIABLE":"VALUE" }Ersetzen Sie Folgendes:
VARIABLE: ein Name für die VariableVALUE: der Standardwert der Kompilierungsvariable
Das folgende Codebeispiel zeigt die Kompilierungsvariable myVariableName, die in der Datei workflow_settings.yaml auf myVariableValue gesetzt ist:
...
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
- Rufen Sie Ihren Dataform-Entwicklungsarbeitsbereich auf.
- Wählen Sie im Bereich Dateien die Datei
dataform.jsonaus. Geben Sie das folgende Code-Snippet ein:
"vars": { "VARIABLE":"VALUE" }Ersetzen Sie Folgendes:
VARIABLE: ein Name für die VariableVALUE: der Standardwert der Kompilierungsvariable
Das folgende Codebeispiel zeigt 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 gesetzt ist:
{
"warehouse": "bigquery",
"defaultSchema": "dataform_data",
"defaultDatabase": "default_bigquery_database",
"defaultLocation": "us-west-1",
"vars": {
"executionSetting":"dev"
}
}
Zusammenfassungsvariable einer Tabelle hinzufügen
So fügen Sie einer SQLX-Tabellendefinitionsdatei eine Kompilierungsvariable hinzu:
- Rufen Sie Ihren Dataform-Entwicklungsarbeitsbereich auf.
- Wählen Sie im Bereich Dateien eine SQLX-Datei mit der Tabellendefinition aus.
Geben Sie in der Datei eine
when-Klausel im folgenden Format ein:${when(dataform.projectConfig.vars.VARIABLE === "SET_VALUE", "CONDITION")}Ersetzen Sie Folgendes:
VARIABLE: der Name Ihrer Variablen, z. B.executionSettingSET_VALUE: ein Wert für die Variable, z. B.stagingCONDITION: eine Bedingung für die Ausführung der Tabelle
Das folgende Codebeispiel zeigt eine SQLX-Datei mit einer Tabellendefinition mit einer when-Klausel und der Variable 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 einer Ansichtsdefinition mit einer when-Klausel und der Variable myVariableName:
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
Standardeinstellungen auf Workflowebene für Iceberg-Tabellen konfigurieren
Sie können Standardwerte auf Workflowebene für von Apache Iceberg verwaltete Tabellen in der Datei workflow_settings.yaml angeben. Sie können Standardwerte für den Bucket-Namen, den Stammordner der Tabelle und den Unterpfad des Tabellenordners festlegen.
Dataform verwendet diese Standardwerte, um den Speicher-URI für eine verwaltete Iceberg-Tabelle zu erstellen, wenn Sie diese Werte nicht im config-Block der Tabellendefinitionsdatei festlegen.
Wenn Sie Standardeinstellungen auf Workflow-Ebene für die Tabellen konfigurieren möchten, fügen Sie der Datei workflow_settings.yaml den Block defaultIcebergConfig mit den folgenden Feldern hinzu:
bucketName: Optional. Der Standardname für den Cloud Storage-Bucket.tableFolderRoot: Optional. Der Standardname für den Ordner der ersten Ebene im Cloud Storage-Bucket.tableFolderSubpath: Optional. Der Standardname für einen Unterordner intableFolderRoot.
Das folgende Codebeispiel zeigt eine workflow_settings.yaml-Datei mit Standardeinstellungen auf Workflowebene für verwaltete Iceberg-Tabellen:
defaultProject: "defaultProject"
defaultDataset: "defaultDataset"
defaultLocation: "us-central1"
defaultIcebergConfig:
bucketName: "wsDefaultBucketName"
tableFolderRoot: "wsDefaultTableFolderRoot"
tableFolderSubpath: "wsDefaultTableFolderSubpath"
Sie können in Ihrem Dataform-Code als Attribute des ProjectConfig-Objekts auf diese Felder zugreifen:
dataform.ProjectConfig.defaultIcebergConfig.bucketName
dataform.ProjectConfig.defaultIcebergConfig.tableFolderRoot
dataform.ProjectConfig.defaultIcebergConfig.tableFolderSubpath
Weitere Informationen finden Sie unter Verwaltete Apache Iceberg-Tabellen erstellen und iceberg-Blockeigenschaften.
Workflow-Einstellungen zu workflow_settings.yaml migrieren
Damit Ihre Datei mit den Workflow-Einstellungen mit zukünftigen Dataform Core-Framework-Versionen kompatibel ist, 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 der Datei package.json durch die Datei workflow_settings.yaml finden Sie unter Dataform Core-Paket verwalten.
In der folgenden Tabelle ist die Zuordnung der Attribute für Workfloweinstellungen aus der Datei dataform.json zur Datei workflow_settings.yaml aufgeführt:
Property in dataform.json |
Unterkunft in workflow_settings.yaml |
Beschreibung |
|---|---|---|
assertionSchema |
defaultAssertionDataset |
Erforderlich. Das Standard-Dataset für Assertions. |
defaultDatabase |
defaultProject |
Erforderlich. Der Standardname des Google Cloud -Projekts. |
defaultLocation |
defaultLocation |
Optional. Der Standard-BigQuery-Standort, an dem Dataform Tabellen erstellt. Wenn nicht festgelegt, bestimmt Dataform den Speicherort anhand der Datasets, auf die sich Ihre SQL-Abfrage bezieht. Weitere Informationen finden Sie unter Standorte angeben. |
defaultSchema |
defaultDataset |
Erforderlich. Das Standard-Dataset. |
databaseSuffix |
projectSuffix |
Optional. Das Suffix, das an alle Google Cloud -Projektreferenzen angehängt werden soll. |
schemaSuffix |
datasetSuffix |
Optional. Das Suffix, das an alle Aktions-Datasets 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. Nicht verfügbar in workflow_settings.yaml. |
| - | dataformCoreVersion |
Nicht verfügbar in dataform.json. 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:
Rufen Sie in der Google Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository und dann einen Arbeitsbereich aus.
Klicken Sie im Bereich Dateien auf addHinzufügen und dann auf Datei erstellen.
Geben Sie im Feld Dateipfad hinzufügen
workflow_settings.yamlein.Klicken Sie auf Datei erstellen.
Fügen Sie in der Datei
workflow_settings.yamldie Einstellungen aus der Dateidataform.jsonhinzu, die dem YAML-Format zugeordnet sind.Klicken Sie im Bereich Dateien neben
dataform.jsonauf das Menü Mehr und dann auf Löschen.Klicken Sie zum Bestätigen des Löschens von
dataform.jsonauf Löschen.
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 oben genannte dataform.json-Datei, die in workflow_settings.yaml konvertiert wurde:
defaultProject: dataform-demos
defaultLocation: US
defaultDataset: dataform
defaultAssertionDataset: dataform_assertions
vars:
environmentName: "development"
Dataform Core-Paket verwalten
In diesem Abschnitt erfahren Sie, wie Sie das Abhängigkeitspaket für das Dataform Core-Framework verwalten und auf die aktuelle Version aktualisieren.
Dataform-Core ist das Open-Source-Dataform-Framework für die Entwicklung von Workflows mit SQL, SQLX und JavaScript. Als Best Practice sollten Sie immer die aktuelle verfügbare Version des Dataform Core-Frameworks verwenden. Informationen zu Releases des Dataform-Kernframeworks finden Sie unter Dataform-Releases auf GitHub.
Speicherort des Dataform Core-Pakets verwalten
Wenn Sie den ersten Arbeitsbereich in einem Repository initialisieren, legt Dataform automatisch Dataform Core als Abhängigkeitspaket fest. Ab Dataform Core 3.0.0 wird das Dataform Core-Paket standardmäßig in der Datei workflow_settings.yaml installiert. In früheren Versionen von Dataform Core wurde Dataform Core in der Datei package.json festgelegt.
Wenn Dataform Core das einzige Paket in Ihrem Repository ist, sollten Sie es in Dataform Core 3.0.0 und höher in der Datei workflow_settings.yaml festlegen. Bei Repositories, die mit früheren Versionen von Dataform Core erstellt wurden, verschieben Sie das Dataform Core-Paket nach workflow_settings.yaml.
Die Datei package.json ist erforderlich, um zusätzliche Pakete in Dataform zu installieren. Wenn in Ihrem Repository zusätzliche Pakete verwendet werden, legen Sie das Dataform Core-Paket in package.json fest, damit alle Pakete an einem Ort festgelegt werden. Wenn Ihr Repository die Datei package.json nicht enthält, erstellen Sie die Datei package.json und verschieben Sie das Dataform-Kernpaket, um zusätzliche Pakete zu installieren. Die Datei package.json muss sich im Stammverzeichnis Ihres Repositorys befinden.
Dataform Core nach workflow_settings.yaml verschieben
Bei Repositorys, die mit Versionen von Dataform Core vor 3.0.0 erstellt wurden, sollten Sie das Dataform Core-Paket aus der Datei package.json in die Datei workflow_settings.yaml verschieben und die redundante Datei package.json löschen, wenn Sie keine anderen Abhängigkeitspakete als Dataform Core haben.
So migrieren Sie das Dataform-Kernpaket von der Datei package.json zur Datei workflow_settings.yaml:
Rufen Sie in der Google Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository und dann einen Arbeitsbereich aus.
Wählen Sie im Bereich Dateien die Datei
workflow_settings.yamlaus.Fügen Sie in der Datei
workflow_settings.yamldas Dataform Core-Paket im folgenden Format hinzu:dataformCoreVersion: "VERSION"Ersetzen Sie
VERSIONdurch die aktuelle Version von Dataform, z. B.3.0.0.Klicken Sie im Bereich Dateien neben der Datei
package.jsonauf das Menü Mehr und dann auf Löschen.Klicken Sie auf Löschen, um das Löschen der Datei
dataform.jsonzu bestätigen.Klicken Sie auf Pakete installieren.
Dataform Core nach package.json verschieben
Die Datei package.json ist erforderlich, um zusätzliche Pakete in einem Repository zu installieren. Wenn Ihr Repository zusätzliche Pakete verwendet, sollten Sie alle Pakete, einschließlich des Dataform Core-Pakets, in der Datei package.json speichern.
Wenn Ihr Repository die Datei package.json nicht enthält, weil das Dataform Core-Paket in der Datei workflow_settings.yaml festgelegt ist, müssen Sie die Datei package.json erstellen, um zusätzliche Pakete zu installieren. Verschieben Sie dann das Dataform Core-Paket aus der Datei workflow_settings.yaml in die neu erstellte Datei package.json.
So erstellen Sie die Datei package.json und verschieben das Dataform-Kernpaket:
Rufen Sie in der Google Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository und dann einen Arbeitsbereich aus.
Klicken Sie im Bereich Dateien auf addHinzufügen und dann auf Datei erstellen.
Geben Sie im Feld Dateipfad hinzufügen
package.jsonein.Klicken Sie auf Datei erstellen.
Fügen Sie in der Datei
package.jsondas Dataform Core-Paket im folgenden Format hinzu:{ "dependencies": { "@dataform/core": "VERSION" } }Ersetzen Sie
VERSIONdurch die aktuelle Version von Dataform, z. B.3.0.0.Klicken Sie auf Pakete installieren.
Wählen Sie im Bereich Dateien die Option
workflow_settings.yamlaus.Löschen Sie in der Datei
workflow_settings.yamldas AttributdataformCoreVersion.
Dataform Core aktualisieren
Testen Sie neue Paketversionen immer in einer Nicht-Produktionsumgebung, bevor Sie sie in Ihrer Produktionsumgebung bereitstellen.
So aktualisieren Sie das Dataform Core-Abhängigkeitspaket:
Die aktuelle Version von
@dataform/corefinden Sie auf der Seite mit den Dataform-Releases auf GitHub.Rufen Sie in der Google Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository und dann einen Arbeitsbereich aus.
Wählen Sie im Bereich Dateien die Datei
package.jsonoderworkflow_settings.yamlaus.Der Speicherort des Dataform Core-Abhängigkeitspakets hängt von Ihrer Dataform Core-Version und der Verwendung von Paketen ab. Weitere Informationen finden Sie unter Speicherort des Dataform Core-Pakets verwalten.
Aktualisieren Sie das Dataform Core-Abhängigkeitspaket auf die neueste Version:
package.json{ "dependencies": { "@dataform/core": "VERSION" } }Ersetzen Sie
VERSIONdurch die aktuelle Version von Dataform, z. B.3.0.0. Um Probleme bei der Paketinstallation zu vermeiden, geben Sie die Dataform Core-Paketversion explizit an. Verwenden Sie keine anderendependencies-Optionen derpackage.json-Datei, z. B.>version.workflow_settings.yamldataformCoreVersion: "VERSION"Ersetzen Sie
VERSIONdurch die aktuelle Version von Dataform, z. B.3.0.0.Klicken Sie auf Pakete installieren.
Im folgenden Codebeispiel wird die @dataform/core-Abhängigkeit in der Datei package.json auf die Version 3.0.0 aktualisiert:
{
"dependencies": {
"@dataform/core": "3.0.0"
}
}
Versionsverwaltung für Code
In diesem Abschnitt erfahren Sie, wie Sie mit der Versionsverwaltung in Dataform die Entwicklung verfolgen.
Dataform verwendet Git, um jede Änderung an den Dateien in einem Repository zu verfolgen.
In einem Dataform-Repository interagieren Sie direkt mit dem Git-Repository.
In einem verbundenen Repository interagieren Sie mit dem Tracking-Branch des Remote-Repositorys, das Sie beim Verbinden des Repositorys konfiguriert haben.
In Dataform werden Optionen für die Versionsverwaltung basierend auf dem Status der Änderungen in Ihrem Entwicklungsarbeitsbereich angezeigt. Dataform zeigt die Commit-Option beispielsweise nur an, wenn in Ihrem Arbeitsbereich nicht übernommene lokale Änderungen vorhanden sind. Wenn die Dateien in Ihrem Arbeitsbereich eine exakte Kopie Ihres Standard- oder Tracking-Zweigs sind, zeigt Dataform den Status Arbeitsbereich ist auf dem neuesten Stand an.
In Dataform werden die folgenden Optionen für die Versionsverwaltung angezeigt:
- Commit für X-Änderung(en) durchführen
- Übernehmen Sie die X Anzahl der lokalen Änderungen in Ihrem Arbeitsbereich oder in den ausgewählten geänderten Dateien. In Dataform werden die nicht per Commit übernommenen Änderungen angezeigt.
- An Standardzweig übertragen
- Übertragen Sie die per Commit übernommenen Änderungen per Push in Ihren Standardzweig. Diese Option ist in einem Dataform-Repository verfügbar, wenn Sie in Ihrem Arbeitsbereich keine Änderungen haben, die noch nicht committet wurden.
- Zu
your-branch-nameübertragen - Übertragen Sie die Änderungen per Push in
your-branch-name. Diese Option ist in einem Repository verfügbar, das mit einem Git-Repository eines Drittanbieters verbunden ist, wenn Sie keine nicht übergebenen Änderungen in Ihrem Arbeitsbereich haben. - Aus Standardzweig abrufen
- Aktualisieren Sie Ihre Arbeitsbereiche mit den letzten Änderungen aus Ihrem Standardzweig. Diese Option ist in einem Dataform-Repository verfügbar, wenn Sie in Ihrem Arbeitsbereich keine nicht übertragenen oder nicht gepushten Änderungen haben.
- Aus
your-branch-nameabrufen - Aktualisieren Sie Ihren Arbeitsbereich mit den letzten Änderungen aus
your-branch-name. Diese Option ist in einem Repository verfügbar, das mit einem Git-Repository eines Drittanbieters verbunden ist, wenn Sie keine nicht übergebenen oder nicht übertragenen Änderungen in Ihrem Arbeitsbereich haben. - Letzten Commit wiederherstellen
- Stellen Sie die Dateien in Ihrem Arbeitsbereich auf den Status Ihres letzten Commits zurück.
Änderungen abrufen
Wenn Ihr Entwicklungsarbeitsbereich nicht mit Ihrem Repository synchronisiert ist, zeigt Dataform die Option Pull an. So übertragen Sie Änderungen aus Ihrem Repository in Ihren Entwicklungsarbeitsbereich:
- Wählen Sie auf der Seite Dataform ein Repository aus.
- Wählen Sie auf dem Tab Entwicklungsarbeitsbereiche einen Entwicklungsarbeitsbereich aus.
- Führen Sie auf der Seite des Entwicklungsarbeitsbereichs die folgenden Schritte aus:
- Wenn Sie sich in einem Dataform-Repository befinden, klicken Sie auf Aus Standardzweig abrufen.
- Wenn Sie sich in einem Repository befinden, das mit einem Git-Repository eines Drittanbieters verbunden ist, klicken Sie auf Aus
your-branch-nameabrufen.
Commit für Änderungen durchführen
Nachdem Sie eine Änderung in einem Entwicklungsarbeitsbereich vorgenommen haben, wird in Dataform die Option Commit angezeigt. Sie können alle lokalen Änderungen oder ausgewählte Dateien committen.
Im Dialogfeld Neuer Commit werden in Dataform die nicht per Commit übernommenen Änderungen angezeigt.
So übernehmen Sie Änderungen aus Ihrem Entwicklungsarbeitsbereich in Ihr Repository:
- Wählen Sie auf der Seite Dataform ein Repository aus.
- Wählen Sie auf der Repository-Seite einen Entwicklungsarbeitsbereich aus.
- Klicken Sie auf der Seite des Entwicklungsarbeitsbereichs auf Commit.
Führen Sie im Bereich Neuer Commit die folgenden Schritte aus:
- Geben Sie im Feld Commit-Nachricht hinzufügen eine Beschreibung für Ihren Commit ein.
Wählen Sie die geänderten Dateien aus, für die ein Commit durchgeführt werden soll.
Wenn Sie keine Dateien auswählen, führt Dataform für alle lokalen Änderungen einen Commit durch. Sie können geänderte Dateien nach Dateistatus, Dateiname und Pfad filtern.
Klicken Sie auf Alle Änderungen übernehmen oder X Änderungen übernehmen.
Der Name der Schaltfläche hängt von der Auswahl der Dateien ab, die Sie übernehmen möchten.
Änderungen übertragen
In Dataform wird die Option Push angezeigt, nachdem Sie Änderungen per Commit übernommen haben. So übertragen Sie Änderungen aus Ihrem Entwicklerarbeitsbereich in Ihr Repository:
- Wählen Sie auf der Seite Dataform ein Repository aus.
- Wählen Sie auf der Repository-Seite einen Entwicklungsarbeitsbereich aus.
- Commit für Änderungen durchführen
- Führen Sie auf der Seite für den Entwicklungsarbeitsbereich die folgenden Schritte aus:
- Wenn Sie sich in einem Dataform-Repository befinden, klicken Sie auf An Standardzweig übertragen.
- Wenn Sie sich in einem Repository befinden, das mit einem Git-Repository eines Drittanbieters verbunden ist, klicken Sie auf In
your-branch-nameübertragen.
Änderungen ohne durchgeführten Commit zurücksetzen
So machen Sie Änderungen ohne Commit rückgängig:
- Wählen Sie auf der Seite Dataform ein Repository aus.
- Wählen Sie auf der Repository-Seite einen Entwicklungsarbeitsbereich aus.
- Klicken Sie über dem Bereich Dateien auf das Menü Mehr und wählen Sie dann Auf letzten Commit zurücksetzen aus.
Konflikte beim Zusammenführen beheben
Ein Zusammenführungskonflikt kann auftreten, wenn eine lokale Änderung in Ihrem Entwicklungsarbeitsbereich nicht mit einer Änderung kompatibel ist, die am Standard-Tracking-Zweig Ihres Repositorys vorgenommen wurde. Merge-Konflikte treten normalerweise auf, wenn mehrere Nutzer gleichzeitig dieselbe Datei bearbeiten.
Ein Merge-Konflikt tritt in der Regel auf, wenn Sie Änderungen aus einem Branch abrufen, nachdem ein anderer Nutzer einen Änderungskonflikt in denselben Branch übertragen hat. Sie müssen einen Zusammenführungskonflikt manuell beheben, indem Sie die betroffene Datei bearbeiten.
Das folgende Codebeispiel zeigt einen Zusammenführungskonflikt in einer SQLX-Datei:
<<<<<<< HEAD
SELECT 1 as CustomerOrders
=======
SELECT 1 as Orders
>>>>>>> refs/heads/main
So beheben Sie einen Zusammenführungskonflikt:
- Wählen Sie in Ihrem Entwicklungsarbeitsbereich im Bereich Dateien eine betroffene Datei aus.
- Bearbeiten Sie die Datei mit den gewünschten Änderungen.
- Commit für Änderungen durchführen
- Optional: Änderungen übertragen.
Repositories für BigQuery-Assets identifizieren
Dataform-Repositories, die automatisch von einem anderen BigQuery-Feature wie Notebooks oder gespeicherten Abfragen erstellt und verwaltet werden, werden in Dataform in der Google Cloud Console ausgeblendet, um die Übersichtlichkeit zu verbessern und versehentliche Änderungen an der Feature-spezifischen Logik zu verhindern. Diese Repositories werden möglicherweise in Cloud Asset Inventory-Suchvorgängen oder IAM-Berechtigungsprüfungen angezeigt, aber nicht in Dataform in der Google Cloud Console.
Sie können den Ursprung eines Dataform-Repositorys anhand seiner Ressourcenlabels ermitteln. In der folgenden Tabelle werden die Labels beschrieben, die von verschiedenen BigQuery-Funktionen verwendet werden:
| Funktion | Labelschlüssel | Labelwert |
|---|---|---|
| BigQuery-Repositories | origin |
bigquery-studio |
| BigQuery Studio-Git-Repositories | origin |
bigquery-studio-git-folder |
| Data Canvases | single-file-asset-type |
data_canvas |
| Datenvorbereitung | single-file-asset-type |
data_preparation oder data_preparation_sqlx |
| Notebooks | single-file-asset-type |
notebook |
| Pipelines | bigquery-workflow |
(Beliebiger Wert) |
| Gespeicherte Abfragen | single-file-asset-type |
sql |
Wählen Sie eine der folgenden Optionen aus, um die Labels aus einem Repository abzurufen, das nicht in Dataform angezeigt wird:
Console
Rufen Sie in der Google Cloud Console die Seite Asset Inventory auf.
Klicken Sie auf den Tab Ressource.
Klicken Sie im Bereich Ergebnisse filtern neben Ressourcentyp auf Mehr ansehen und geben Sie
dataform.googleapis.com/Repositoryein.Wählen Sie
dataform.Repositoryaus und klicken Sie dann auf Anwenden.Suchen Sie in der Ergebnistabelle nach Ihrem Repository und sehen Sie sich die Spalte Labels an. Vergleichen Sie die gefundenen Labels mit der Tabelle, in der die von verschiedenen BigQuery-Funktionen verwendeten Labels zur Identifizierung der Quellfunktion beschrieben werden.
API
Verwenden Sie die Methode projects.locations.repositories.get, um Labels abzurufen.
Führen Sie die API-Anfrage mit den folgenden Informationen aus:
- Endpunkt:
GET https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID
Alternativ können Sie im Terminal den folgenden curl-Befehl ausführen:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://dataform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID"
Ersetzen Sie Folgendes:
PROJECT_ID: Projekt-ID in Google Cloud .LOCATION: die Region, in der sich die Dataform-Ressourcen befinden.REPOSITORY_ID: Die eindeutige Kennung für das Dataform-Repository, das Sie abfragen.
Die in der Antwort zurückgegebene projects.locations.repositories-Ressource enthält eine Labelzuordnung mit den Metadaten, die zur Identifizierung des ursprünglichen Features verwendet werden.
gcloud
Führen Sie den folgenden Befehl in der Google Cloud CLI aus, um die Labels für ein bestimmtes Repository abzurufen:
gcloud asset search-all-resources \
--asset-types=dataform.googleapis.com/Repository \
--query="name:projects/PROJECT_ID/locations/LOCATION/repositories/REPOSITORY_ID" \
--format="yaml(labels)"
Ersetzen Sie Folgendes:
PROJECT_ID: die eindeutige Kennung IhresGoogle Cloud -Projekts.LOCATION: die Google Cloud Region, in der sich Ihr Repository befindet.REPOSITORY_ID: die eindeutige Kennung für Ihr neues Dataform-Repository.
Um die Ressource zu finden, die dem Ausgabelabel entspricht, rufen Sie die entsprechende Featureseite in der Google Cloud Console auf, z. B. die Ordner Notebooks oder Daten-Canvas auf dem Tab Explorer im linken Bereich von BigQuery Studio.
Nächste Schritte
- Weitere Informationen zu den Projekteinstellungen für Dataform finden Sie in der Referenz zu
IProjectConfig. - Informationen zum Installieren zusätzlicher Pakete finden Sie unter Paket in Dataform installieren.
- Informationen zum Erstellen einer Tabelle finden Sie unter Tabelle erstellen.