Übersicht über Best Practices in Dataform

Dieses Dokument enthält eine Übersicht der Best Practices für die Verwaltung der Repository-Größe, der Repository-Struktur und des Codelebenszyklus in Dataform.

Best Practices für die Repository-Größe

Die Repository-Größe beeinflusst mehrere Aspekte der Entwicklung in Dataform, darunter:

  • Zusammenarbeit
  • Lesbarkeit der Codebasis
  • Entwicklungsprozesse
  • Kompilierung des Workflows
  • Workflow-Ausführung

Dataform erzwingt API-Kontingente und -Limits für Kompilierungsressourcen. Eine große Repository-Größe kann dazu führen, dass Ihr Repository diese Kontingente und Limits überschreitet. Dies kann dazu führen, dass der SQL-Workflow nicht kompiliert und ausgeführt werden kann.

Um dieses Risiko zu minimieren, empfehlen wir, große Repositories aufzuteilen. Beim Aufteilen eines großen Repositorys teilen Sie einen großen SQL-Workflow in eine Anzahl kleinerer SQL-Workflows auf, die sich in verschiedenen Repositories befinden und durch Cross-Repository-Abhängigkeiten verbunden sind.

Mit diesem Ansatz können Sie Dataform-Kontingente und -Limits einhalten, detaillierte Prozesse und Berechtigungen detailliert festlegen und die Lesbarkeit und Zusammenarbeit der Codebasis verbessern. Die Verwaltung von geteilten Repositories kann jedoch schwieriger sein als die Verwaltung eines einzelnen Repositorys.

Weitere Informationen zu den Auswirkungen der Repository-Größe in Dataform und zu Best Practices für das Aufteilen von Repositories finden Sie unter Repositories aufteilen.

Best Practices für die Repository-Struktur

Wir empfehlen, Dateien im Verzeichnis definitions zu strukturieren, um die Phasen Ihres Workflows widerzuspiegeln. Sie können aber auch eine benutzerdefinierte Struktur verwenden, die Ihren Anforderungen am besten entspricht.

Die folgende empfohlene Struktur von definitions-Unterverzeichnissen gibt die wichtigsten Phasen der meisten SQL-Workflows wieder:

  • sources, Erklärungen zu Datenquellen speichern
  • intermediate, Datentransformationslogik speichern
  • output, Definitionen von Ausgabetabellen speichern
  • Optional: extras, mit zusätzlichen Dateien

Die Namen aller Dateien in Dataform müssen den BigQuery-Tabellenrichtlinien entsprechen. Wir empfehlen, dass die Namen der Dateien im Verzeichnis definitions in einem Dataform-Repository die Struktur des Unterverzeichnisses widerspiegeln.

Weitere Informationen zu Best Practices für die Strukturierung und Benennung von Dateien in einem Repository finden Sie unter Code in einem Repository strukturieren.

Best Practices für den Codelebenszyklus

Der Standardcodelebenszyklus in Dataform besteht aus den folgenden Phasen:

  • SQL-Workflowcode in Dataform-Arbeitsbereichen entwickeln

    Die Entwicklung kann mit Dataform Core oder exklusiv mit JavaScript erfolgen.

  • Die Zusammenstellung des Codes zu einem Compilationsergebnis mit den Einstellungen von dataform.json.

    Sie können benutzerdefinierte Kompilierungsergebnisse mit Release-Konfigurationen und Überschreibungen für Arbeitsbereichskompilierungen konfigurieren.

    Mit Release-Konfigurationen können Sie benutzerdefinierte Kompilierungsergebnisse für Ihr gesamtes Repository konfigurieren. Sie können die Ausführung später in Workflowkonfigurationen planen.

    Mit Überschreibungen für Arbeitsbereiche können Sie diese für alle Arbeitsbereiche in Ihrem Repository konfigurieren und damit individuelle Kompilierungsergebnisse für jeden Arbeitsbereich erstellen.

  • Ausführung des Kompilierungsergebnisses in BigQuery

    Sie können Ausführungen oder Repository-Kompilierungsergebnisse mit Workflowkonfigurationen planen.

Zum Verwalten des Codelebenszyklus in Dataform können Sie Ausführungsumgebungen erstellen, z. B. Entwicklung, Staging und Produktion.

Weitere Informationen zum Codelebenszyklus in Dataform finden Sie unter Einführung in den Codelebenszyklus in Dataform.

Sie können die Ausführungsumgebungen in einem einzelnen Repository oder in mehreren Repositories aufbewahren.

Ausführungsumgebungen in einem einzelnen Repository

Sie können isolierte Ausführungsumgebungen wie Entwicklung, Staging und Produktion in einem einzigen Dataform-Repository mit Arbeitsbereichen zur Kompilierung von Arbeitsbereichen und Release-Konfigurationen erstellen.

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

  • Entwicklungs- und Produktionstabellen nach Schema aufteilen
  • Entwicklungs- und Produktionstabellen nach Schema und Google Cloud-Projekt aufteilen
  • Entwicklungs-, Staging- und Produktionstabellen pro Google Cloud-Projekt aufteilen

Anschließend können Sie Ausführungen in Staging- und Produktionsumgebungen mit Workflowkonfigurationen planen. Wir empfehlen, Ausführungen manuell in der Entwicklungsumgebung auszulösen.

Weitere Informationen zu Best Practices für die Verwaltung des Codelebenszyklus in Dataform finden Sie unter Codelebenszyklus verwalten.

Codelebenszyklus in mehreren Repositories

Wenn Sie Berechtigungen zur Identitäts- und Zugriffsverwaltung an jede Phase des Codelebenszyklus anpassen möchten, können Sie mehrere Kopien eines Repositorys erstellen und in verschiedenen Google Cloud-Projekten speichern.

Jedes Google Cloud-Projekt dient als Ausführungsumgebung, die einer Phase Ihres Codelebenszyklus entspricht, z. B. Entwicklung und Produktion.

Bei diesem Ansatz empfehlen wir, die Codebasis des Repositorys in allen Google Cloud-Projekten gleich zu halten. Verwenden Sie Kompilierung von Arbeitsbereichen, Release-Konfigurationen und Workflowkonfigurationen, um die Kompilierung und Ausführung in jeder Kopie des Repositorys anzupassen.

Nächste Schritte