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 speichernintermediate
, Datentransformationslogik speichernoutput
, 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
- Weitere Informationen zur Repository-Größe in Dataform finden Sie unter Übersicht über Repository-Größe.
- Weitere Informationen zu Best Practices für das Aufteilen von Repositories finden Sie unter Repositories aufteilen.
- Weitere Informationen zu Best Practices für die Repository-Struktur finden Sie unter Code in einem Repository strukturieren.
- Weitere Informationen zum Codelebenszyklus in Dataform und verschiedenen Konfigurationsmöglichkeiten finden Sie unter Einführung in den Codelebenszyklus in Dataform.
- Weitere Informationen zu Best Practices für den Codelebenszyklus finden Sie unter Codelebenszyklus verwalten.