Ce document vous aide à comprendre comment la taille du dépôt affecte le développement de workflow SQL et l'utilisation des ressources de compilation Dataform, et comment estimer l'utilisation des ressources de compilation de votre dépôt.
À propos de la taille des dépôts dans Dataform
La taille d'un dépôt a un impact sur les aspects de développement suivants dans Dataform:
- Collaboration
- Plusieurs collaborateurs travaillant sur un grand dépôt peuvent créer un nombre excessif de requêtes pull, ce qui augmente le risque de conflits de fusion.
- Lisibilité du codebase
- Un nombre plus élevé de fichiers constituant un workflow SQL dans un même dépôt peut rendre la navigation dans le dépôt difficile.
- Processus de développement
- Certaines zones d'un grand workflow SQL dans un même dépôt peuvent nécessiter des autorisations ou des processus personnalisés, tels que la planification, différents des autorisations et des processus appliqués au reste du workflow SQL. La grande taille du dépôt rend difficile l'adaptation des processus de développement à des zones spécifiques du workflow SQL.
- Compilation de workflows
- Dataform applique des limites d'utilisation aux ressources de compilation. Une grande taille de dépôt peut entraîner le dépassement de ces limites, ce qui entraîne l'échec de la compilation.
- Exécution du workflow
- Lors de l'exécution, Dataform exécute le code du dépôt dans votre espace de travail et déploie les composants dans BigQuery. Plus le dépôt est volumineux, plus Dataform met de temps à l'exécuter.
Si la taille importante de votre dépôt a un impact négatif sur votre développement dans Dataform, vous pouvez le diviser en plusieurs dépôts plus petits.
À propos des limites des ressources de compilation de dépôt
Lors du développement, Dataform compile tout le code du dépôt dans votre espace de travail pour générer une représentation du workflow SQL dans votre dépôt, appelée résultat de compilation. Dataform applique des limites d'utilisation aux ressources de compilation.
Votre dépôt peut dépasser les limites d'utilisation pour les raisons suivantes:
- Bug de boucle infinie dans le code du dépôt.
- Bug de fuite de mémoire dans le code du dépôt.
- Grande taille du dépôt, avec environ plus de 1 000 actions de workflow SQL.
Pour en savoir plus sur les limites d'utilisation des ressources de compilation, consultez la section Limites des ressources de compilation Dataform.
Estimer l'utilisation des ressources de compilation de votre dépôt
Vous pouvez estimer l'utilisation des ressources de compilation suivantes pour votre dépôt:
- Utilisation du temps CPU
- Taille maximale totale des données sérialisées du graphique généré des actions définies dans votre dépôt
Pour obtenir une approximation approximative de l'utilisation actuelle du temps de processeur de compilation pour la compilation de votre dépôt, vous pouvez chronométrer la compilation de votre workflow Dataflow SQL sur une machine Linux ou macOS locale.
- Pour chronométrer la compilation de votre workflow SQL, dans votre dépôt, exécutez la commande
dataform compile
de la CLI Dataform au format suivant:
time dataform compile
L'exemple de code suivant montre le résultat de l'exécution de la commande time dataform compile
:
real 0m3.480s
user 0m1.828s
sys 0m0.260s
Vous pouvez considérer le résultat real
comme un indicateur approximatif de l'utilisation du temps de processeur pour la compilation de votre dépôt.
Pour obtenir une approximation approximative de la taille totale du graphique des actions généré dans votre dépôt, vous pouvez écrire la sortie du graphique dans un fichier JSON. Vous pouvez considérer la taille du fichier JSON non compressé comme un indicateur approximatif de la taille totale du graphique.
- Pour écrire la sortie du graphique compilé de votre workflow SQL dans un fichier JSON, dans votre dépôt, exécutez la commande de la CLI Dataform suivante:
dataform compile --json > graph.json
Étape suivante
- Pour en savoir plus sur les limites des ressources de compilation Dataform, consultez la section Limites des ressources de compilation Dataform.
- Pour en savoir plus sur le fractionnement d'un dépôt dans Dataform, consultez la section Diviser des dépôts.