Versionnage par branche
Au lancement, ArcGIS Pipeline Referencing (APR) reposait sur le modèle transactionnel de géodatabase à versionnage traditionnel. Cependant, en tant que l'une des applications ArcGIS de nouvelle génération, APR a ajouté la compatibilité avec le versionnage par branche dans ArcGIS Enterprise 10.6.1 avec ArcGIS Pro 2.2. Lors des versions suivantes, de nouvelles fonctionnalités comme l'édition basée sur les services, l'intégration du Utility Network et la prévention des conflits nécessitent le versionnage par branche. APR avec versionnage par branche est le modèle d'implémentation recommandé et privilégié pour les organisations de pipelines.
- Le versionnage par branche suit une architecture basée sur les services pour la visualisation et l'édition des données. Il facilite les transactions longues en base de données via les feature services, tirant parti du service de gestion des versions d'ArcGIS Server.
- L'accès direct SQL à la base de données relationnelle n'est pas supporté ni recommandé avec ce modèle transactionnel de géodatabase.
- Les vues de base de données sont plus adaptées au versionnage traditionnel et aux jointures ou intégrations au niveau des données. En l'absence de vues multi-versionnées, les mises à jour/insertion/suppressions via SQL ne doivent pas être appliquées sur des classes d'entités versionnées par branche. Cela peut entraîner une corruption des données et d'autres comportements inattendus dans les applications ArcGIS.
- L'outil de géotraitement Créer une vue de base de données accepte une GDB versionnée par branche comme espace de travail en entrée. Cependant, cet outil n'est pas conscient du versionnage par branche.
Considérations de conception
Les utilisateurs perçoivent des opportunités dans ce paysage basé sur les services qui offrent de nombreux avantages. Mais des tâches fondamentales comme la génération de rapports et les interfaces d'intégration de bases de données sont essentielles pour gérer les processus métier. Les architectes solutions et responsables SIG ont soigneusement réévalué les besoins métier et ont progressé en utilisant un mélange des nouveaux modèles de conception. Consultez Utility Network Journey : Versionnage par branche et SQL par @RobertKrisher pour plus d'informations.
- REST API : La méthode prise en charge pour interroger les données versionnées par branche est via le REST API, par exemple Query (Feature Service/Layer), lorsque cela est approprié et répond au besoin. Des méthodes spécifiques ont été développées dans REST et les clients ArcGIS pour garantir l'intégrité des données lors de l'accès aux données versionnées par branche.
- Scripting Python : L'API ArcGIS pour Python est consciente du versionnage par branche et des scripts peuvent être utilisés pour générer des rapports à partir d'une géodatabase versionnée par branche. Ces scripts peuvent être exécutés en tâches planifiées, souvent hors heures ouvrables, pour compiler des rapports de données.
- Géodatabase de publication non versionnée : Les jeux de données requis peuvent être répliqués vers une géodatabase de publication non versionnée utilisée pour les rapports, vues SQL, intégration, etc. Notez qu'il y a un coût supplémentaire lié au processus de réplication et à la maintenance d'une copie secondaire de la géodatabase. Une conception soignée est donc recommandée en fonction des exigences des couches, fréquence de réplication, changements delta et analyse globale coûts-avantages.
- Vues SQL : Une logique SQL supplémentaire peut être utilisée pour définir des vues (en lecture seule) sur les données versionnées par branche. Le document Branch Version SQL Views présente plusieurs exemples :
- Créer des vues matérialisées et actualiser les vues
- Créer une table de rapport et actualiser les tables
Notez que l'option Vues SQL est considérée comme secondaire pour les opérations héritées au niveau base de données, et que les fonctionnalités INSERT, UPDATE et DELETE ne sont pas disponibles. La requête via REST API est la meilleure pratique recommandée à l'avenir pour une architecture basée sur les services.
Dernières réflexions (merci xkcd)
