Best Practices für den Workflow-Lebenszyklus

In diesem Dokument werden Best Practices für die Verwaltung des Workflow-Lebenszyklus in Dataform beschrieben: Entwicklungs-, Staging- und Produktionsumgebungen erstellen und Kompilierungs- und Ausführungseinstellungen für jede Umgebung konfigurieren.

Um einen standardisierten Lebenszyklus von Dataform-Workflows zu erstellen, der die Datenbereinigung aufrechterhält und Entwicklungsprozesse optimiert, empfehlen wir Folgendes:

  • Erstellen Sie Ausführungsumgebungen, um Tabellen, die während der Entwicklung erstellt wurden, von Tabellen zu isolieren, die Endnutzern zur Verfügung stehen.

  • Release- und Workflowkonfigurationen konfigurieren, um Workflows in einer Produktionsumgebung und optional in einer Stagingumgebung auszuführen

In diesem Dokument werden Lösungen zum Isolieren von Entwicklungstabellen mit Überschreibungen von Arbeitsbereichskompilierungen und zum Konfigurieren von Staging- und Produktionsumgebungen mit Releasekonfigurationen und Workflowkonfigurationen beschrieben.

Mit diesen Lösungen können Sie Ausführungsumgebungen in einem einzelnen Dataform-Repository und Google Cloud -Projekt erstellen. Sie können mehrere Kopien eines Dataform-Repositorys in verschiedenenGoogle Cloud -Projekten haben. Jedes Projekt entspricht einer Phase des Code-Lebenszyklus, z. B. Entwicklung, Staging und Produktion. Mit diesem Ansatz können Sie IAM-Berechtigungen (Identity and Access Management) in jeder Phase des Codelebenszyklus anpassen.

Best Practices für isolierte Ausführungsumgebungen

Wir empfehlen, Tabellen, die während der Ausführung des Entwicklungs-Workflows erstellt werden, von Produktionstabellen in BigQuery zu isolieren. So können Endnutzer zu Produktionstabellen navigieren und das Risiko, dass sie versehentlich auf falsche Daten zugreifen, wird ausgeschlossen.

Sie können isolierte Ausführungsumgebungen auf folgende Arten erstellen:

Entwicklungs- und Produktionstabellen nach Schema aufteilen
Empfohlen für kleine Teams. In Dataform werden Entwicklungs- und Produktionstabellen in verschiedenen Schemas in BigQuery erstellt. Dataform führt alle Entwicklungstabellen in Schemas mit demselben Suffix aus, das angibt, dass sie während der Entwicklung erstellt wurden. Entwickler können die Entwicklungstabellen anderer Entwickler überschreiben.
Entwicklungs- und Produktionstabellen nach Schema und Google Cloud -Projekt aufteilen
Empfohlen für mittelgroße Teams. In Dataform werden Entwicklungs- und Produktionstabellen in verschiedenen Schemas und Projekten in BigQuery erstellt. Dataform hat alle Entwicklungstabellen in einem dedizierten Google Cloud -Entwicklungsprojekt veröffentlicht. Jeder Dataform-Entwickler hat ein eigenes Schema für Entwicklungstabellen. Diese Lösung eliminiert das Risiko, dass Entwickler versehentlich die Entwicklungstabellen anderer Entwickler überschreiben. Der Nachteil dieses Ansatzes ist, dass das Löschen von Entwicklungstabellen und ‑schemas und das Neuerstellen aller Tabellen in jeder Umgebung mehr Zeit in Anspruch nehmen kann.
Entwicklungs-, Staging- und Produktionstabellen nach Google Cloud Projekt aufteilen
Empfohlen für große Teams oder Teams, die eine Staging-Umgebung benötigen. Dataform führt Tabellen aus jeder Umgebung in einem dediziertenGoogle Cloud -Projekt in BigQuery aus. Diese Lösung bietet Ihnen die größte Kontrolle über den Code-Lebenszyklus.

Für alle Lösungen ist ein einzelnes Dataform-Repository erforderlich, das mit einem einzelnen Remote-Repository eines Drittanbieters verbunden ist.

In allen Lösungen lösen Entwickler Ausführungen von Entwicklungstabellen in ihren Dataform-Arbeitsbereichen manuell aus. Dataform kompiliert Produktions- und Stagingtabellen in einer Releasekonfiguration automatisch und führt sie mit der Häufigkeit aus, die in einer Workflowkonfiguration festgelegt ist.

Entwicklung und Produktion nach Schema aufteilen

Mit dieser Lösung werden zwei Ausführungsumgebungen erstellt, in denen Dataform Ihre Workflows ausführt: Entwicklung und Produktion. Wenn Sie Entwicklungs- und Produktionstabellen nach Schema aufteilen möchten, müssen Sie Workfloweinstellungen, Überschreibungen von Arbeitsbereichskompilierungen und eine Releasekonfiguration konfigurieren. Wenn Sie Produktionsläufe planen möchten, müssen Sie eine Workflowkonfiguration erstellen.

Dataform führt alle Entwicklungstabellen in den Schemas mit demselben Suffix aus, das angibt, dass sie während der Entwicklung erstellt wurden. Dataform führt alle Produktionstabellen in den Schemas ohne Suffix aus.

In der folgenden Tabelle sehen Sie eine Konfiguration, bei der Entwicklungs- und Produktionstabellen nach Schema aufgeteilt werden, mit einem Entwicklungsschema:

Einstellung Entwicklung Produktion
Google Cloud -Projekt enterprise-analytics enterprise-analytics
Git-Zweig Name des Arbeitsbereichs main
Überschreibungen von Arbeitsbereichskompilierungen Schemasuffix: dev -
Releasekonfiguration - production
Workflowkonfiguration - production

In dieser Lösung werden Entwicklungs- und Produktionstabellen in einem einzigenGoogle Cloud -Projekt gespeichert.

Entwickler lösen die Ausführung manuell in ihren Dataform-Arbeitsbereichen aus. Bei allen manuell ausgelösten Ausführungen werden Tabellen in Schemas mit demselben Suffix ausgeführt, das angibt, dass sie während der Entwicklung erstellt wurden. Entwickler müssen sich darüber im Klaren sein, dass sie die Tabellen der anderen überschreiben können.

In Dataform führen Entwickler Commits durch und übertragen ihre Änderungen per Push an ihre benutzerdefinierten Zweige des Remote-Repositorys. Anschließend senden sie auf der Git-Hostingplattform des Drittanbieters Pull-Anfragen. Durch die Genehmigung einer Pull-Anfrage werden Änderungen mit dem main-Zweig des Remote-Repository zusammengeführt.

Dataform kompiliert automatisch Produktionstabellen aus dem main-Zweig des Remote-Repositorys in ein Kompilierungsergebnis gemäß den Einstellungen der production-Releasekonfiguration.

Dataform führt das production-Kompilierungsergebnis automatisch gemäß dem in der production-Workflowkonfiguration festgelegten Zeitplan aus.

So implementieren Sie diese Lösung:

Workfloweinstellungen

Je nach Ihrer Version von Dataform Core werden die Workfloweinstellungen in workflow_settings.yaml oder dataform.json gespeichert. Weitere Informationen finden Sie unter Dataform-Workflow-Einstellungen konfigurieren.

Konfigurieren Sie in workflow_settings.yaml die folgenden Einstellungen:

defaultProject: enterprise-analytics
defaultDataset: analytics

Konfigurieren Sie in dataform.json die folgenden Einstellungen:

{