In diesem Dokument wird erläutert, wie sich die Repository-Größe auf die SQL-Workflow-Entwicklung und die Nutzung von Dataform-Kompilierungsressourcen auswirkt. Außerdem wird erläutert, wie Sie die Nutzung der Kompilierungsressourcen Ihres Repositorys schätzen.
Repository-Größe in Dataform
Die Größe eines Repositorys wirkt sich auf die folgenden Aspekte der Entwicklung in Dataform aus:
- Zusammenarbeit
- Wenn mehrere Mitbearbeiter an einem großen Repository arbeiten, kann dies zu einer übermäßigen Anzahl von Pull-Anfragen führen, wodurch sich das Risiko von Zusammenführungskonflikten erhöht.
- Lesbarkeit der Codebasis
- Eine größere Anzahl von Dateien, aus denen ein SQL-Workflow in einem einzelnen Repository besteht, kann die Navigation im Repository erschweren.
- Entwicklungsprozesse
- Einige Bereiche eines großen SQL-Workflows in einem einzelnen Repository erfordern möglicherweise benutzerdefinierte Berechtigungen oder Prozesse wie Planung, die sich von den Berechtigungen und Prozessen unterscheiden, die auf den Rest des SQL-Workflows angewendet werden. Große Repositories erschweren es, Entwicklungsprozesse an bestimmte Bereiche des SQL-Workflows anzupassen.
- Workflowkompilierung
- Dataform erzwingt Nutzungslimits für Kompilierungsressourcen. Eine große Repository-Größe kann zum Überschreiten dieser Limits führen, wodurch die Kompilierung fehlschlägt.
- Workflowausführung
- Während der Ausführung führt Dataform den gesamten Repository-Code in Ihrem Arbeitsbereich aus und stellt Assets in BigQuery bereit. Je größer das Repository, desto mehr Zeit für die Ausführung durch Dataform.
Wenn sich die Größe Ihres Repositorys negativ auf die Entwicklung in Dataform auswirkt, können Sie das Repository in mehrere kleinere Repositories aufteilen.
Limits für Repository-Kompilierungsressourcen
Während der Entwicklung kompiliert Dataform den gesamten Repository-Code in Ihrem Arbeitsbereich, um eine Darstellung des SQL-Workflows in Ihrem Repository zu generieren. Diese Darstellung wird als Kompilierungsergebnis bezeichnet. Dataform erzwingt Nutzungslimits für Kompilierungsressourcen.
Ihr Repository kann die Nutzungslimits aus folgenden Gründen überschreiten:
- Ein Endlosschleifen-Programmfehler im Repository-Code.
- Ein Speicherleck im Repository-Code.
- Große Repository-Größe, etwa mehr als 1.000 SQL-Workflow-Knoten.
Weitere Informationen zu Nutzungslimits für Kompilierungsressourcen finden Sie unter Limits für Dataform-Kompilierungsressourcen.
Nutzung Ihres Repositorys durch Kompilierungsressourcen schätzen
Sie können die Nutzung der folgenden Kompilierungsressourcen für Ihr Repository schätzen:
- CPU-Zeitnutzung
- Maximale Gesamtgröße der serialisierten Daten der generierten Grafik mit Aktionen, die in Ihrem Repository definiert sind
Um eine ungefähre Schätzung der aktuellen CPU-Auslastung bei Kompilierung für die Kompilierung Ihres Repositorys zu erhalten, können Sie die Kompilierung Ihres Dataform-SQL-Workflows auf einem lokalen Linux- oder macOS-Computer planen.
- Führen Sie in Ihrem Repository den
dataform compile
-Befehl der Dataform-Befehlszeile im folgenden Format aus, um die Kompilierung Ihres SQL-Workflows zu bestimmen:
time dataform compile
Das folgende Codebeispiel zeigt ein Ergebnis der Ausführung des Befehls time dataform compile
:
real 0m3.480s
user 0m1.828s
sys 0m0.260s
Sie können das real
-Ergebnis als groben Indikator für die CPU-Zeitnutzung für die Kompilierung Ihres Repositorys betrachten.
Wenn Sie eine ungefähre Schätzung der Gesamtgröße des generierten Diagramms mit Aktionen in Ihrem Repository erhalten möchten, können Sie die Ausgabe des Diagramms in eine JSON-Datei schreiben. Sie können die Größe der unkomprimierten JSON-Datei als groben Indikator für die Gesamtgröße der Grafik ansehen.
- Führen Sie den folgenden Dataform-Befehl aus, um die Ausgabe der kompilierten Grafik Ihres SQL-Workflows in eine JSON-Datei in Ihrem Repository zu schreiben:
dataform compile --json > graph.json
Nächste Schritte
- Weitere Informationen zu Ressourcenlimits für Dataform-Kompilierungsressourcen finden Sie unter Ressourcenlimits für Dataform-Kompilierungsressourcen.
- Weitere Informationen zum Aufteilen eines Repositorys in Dataform finden Sie unter Repositories aufteilen.