<\/HEAD>
En tant qu'analyste support, nous recevons une gamme de problèmes intéressants à examiner. Ces problèmes peuvent être spécifiques à l'environnement de l'utilisateur, aux données, au flux de travail, etc. Parfois, nous pouvons remarquer un afflux d'appels concernant un seul flux de travail. Lorsque cela se produit, nous revoyons les ressources dont disposent nos utilisateurs et nous assurons que la documentation décrit clairement comment exécuter les flux de travail.<\/P>
L'un de ces problèmes de flux de travail que nous avons récemment observés dans le centre d'appels concerne la gestion des modifications de schéma dans les replicas. Par exemple, après avoir créé un replica, vous réalisez que vous devez ajouter un champ à une certaine classe d'entités, ou supprimer un domaine qui n'est plus nécessaire. Ce blog espère rendre ce flux de travail plus intuitif avec quelques astuces qui aideront les experts en replica à gérer efficacement les modifications de schéma.<\/P>
Passons en revue : lorsqu'un replica est créé, les données et le schéma des objets répliqués sont enregistrés dans la géodatabase parente et la géodatabase enfant. Les données sont définies comme les lignes dans la table et utilisent les valeurs GlobalId comme lien entre parent et enfant, tandis que le schéma comprend les champs, domaines, sous-types et autres propriétés qui décrivent les données répliquées. Rappelez-vous, si vous utilisez la barre d'outils Distributed Geodatabase dans ArcMap pour créer le replica, et utilisez l'option « Enregistrer uniquement les données existantes », alors le replica pourrait avoir des schémas différents lors de sa création. Cela est autorisé car certaines organisations ont besoin de ce diagramme, donc il revient au créateur du replica de s'assurer que les données sont préparées selon leurs propres besoins avant de créer le replica.
Idéalement, les schémas sont identiques sur les deux replicas lors de la création du replica, mais avec le temps, des modifications peuvent être appliquées à chaque schéma de replica. Par exemple, un replica peut nécessiter des champs supplémentaires pour compléter un projet, tandis que le replica relatif peut devoir appliquer un nouveau domaine à un champ existant. Lorsque cela se produit, les schémas des replicas ne sont plus identiques. Encore une fois, il n'est pas obligatoire d'avoir des schémas identiques dans les géodatabases parente et enfant ; cependant, si les différences ne sont pas intentionnelles, vous pouvez observer certains comportements inattendus.
Que peut-il se passer s'il y a des différences de schéma dans les données répliquées ?
- Modifications qui ne se synchronisent pas<\/STRONG> - La synchronisation des données importe uniquement les changements pour les tables et champs communs aux deux replicas.Note : Si les schémas ne correspondent pas lors de la synchronisation des données, celles-ci sont marquées comme ayant été envoyées à leur replica relatif. Rappelez-vous que les replicas ne nécessitent pas que les schémas correspondent, mais toutes les modifications seront marquées comme synchronisées lors de la synchronisation, qu'il y ait ou non un schéma correspondant (par exemple un champ) dans le replica relatif pour recevoir ces modifications.<\/EM><\/EM><\/LI><\/UL><\/LI>Valeurs invalides<\/STRONG> - Les modifications qui violent les domaines, sous-types, règles de connectivité et règles relationnelles sont appliquées lors de la synchronisation des changements. Les <\/STRONG>outils de validation<\/A><\/STRONG> sur l'éditeur peuvent être utilisés pour vérifier les valeurs nouvellement importées.<\/LI>Erreurs de synchronisation des données - <\/STRONG>Cela peut arriver lorsque vous effectuez manuellement une modification du schéma sur les deux replicas. Par exemple, vous pouvez vouloir ajouter un champ à une table. Si vous faites cela, assurez-vous d'effectuer exactement la même modification du schéma dans tous les cas. S'il y a une différence (par exemple un champ est une chaîne sur un replica mais un entier sur l'autre), une erreur de synchronisation des données se produira.
<\/A> Erreur de synchronisation due à des types de champs incompatibles entre replicas.<\/P><\/DIV><\/LI><\/UL>
- Modifications non prises en charge - <\/STRONG>Certaines modifications du schéma peuvent provoquer l'échec de la synchronisation sans avertissement lors du changement. Ces modifications ne sont pas détectables par le système de réplication géodatabase. Elles incluent des opérations au niveau base de données comme changer les permissions sur des tables dans la base. Si les permissions sont modifiées en lecture seule pour les données répliquées, une erreur se produira lors de l'importation des changements depuis le replica relatif.<\/LI><\/UL>Application des modifications du schéma entre replicas - <\/STRONG>Modifier le schéma d'un replica pour correspondre au schéma d'un replica relatif est un processus complètement distinct de la synchronisation des données. Si vous pensez rencontrer certains comportements inattendus décrits ci-dessus, vous pouvez utiliser les outils suivants.
Trois outils sont fournis pour mettre à jour les schémas des replicas :
Exporter le Schéma du Replica<\/A> <\/STRONG>- Utilisé pour exporter le schéma depuis la géodatabase qui possède le schéma que vous souhaitez appliquer au replica relatif. Typiquement utilisé uniquement pour des environnements déconnectés ou du scripting.<\/LI>Comparer le Schéma du Replica<\/A><\/STRONG> - Utilisé pour trouver les différences entre les deux géodatabases dans le replica. Cela se fait toujours depuis la géodatabase à laquelle vous souhaitez appliquer les changements. C'est la première étape si vous travaillez dans un environnement connecté.<\/LI>Importer le Schéma du Replica<\/A> <\/STRONG>- Utilisé pour importer les différences trouvées lors de la comparaison du replica dans la géodatabase où vous souhaitez appliquer ces changements.<\/LI><\/OL>
Les outils sont disponibles dans le menu contextuel clic droit Distributed Geodatabase dans l'arborescence Catalog, la barre d'outils Distributed Geodatabase dans ArcMap et en tant qu'outils de géotraitement.
<\/A> Menu contextuel clic droit Distributed Geodatabase dans ArcCatalog<\/P><\/DIV>
Barre d'outils Distributed Geodatabase dans ArcMap<\P>
Outils Géotraitement Gestion des Données<\P>
Il est important de noter qu'il existe de très légères différences entre ces trois méthodes. Par exemple, l'assistant Importer le Schéma du Replica dans le menu contextuel clic droit Distributed Geodatabase depuis ArcCatalog et la barre d'outils Distributed Geodatabase dans ArcMap listent les changements que l'utilisateur peut choisir d'appliquer ou non, tandis que les outils géotraitement (plus souvent utilisés en environnements déconnectés ou processus automatiques scriptés) ne le font pas.
Enfin, sachez que les outils géotraitement sont généralement utilisés lors d'un processus en trois étapes (Exporter, Comparer et Importer) et sont principalement employés lorsque ce processus fait partie d'une tâche planifiée. La barre d'outils Distributed Geodatabase dans ArcMap et le menu contextuel clic droit Distributed Geodatabase peuvent être utilisés en environnement connecté avec seulement deux étapes (Comparer et Importer).
Bien qu'éliminer l'étape Exporter le Schéma du Replica puisse vous faire gagner du temps, s'il y a un doute sur quelle géodatabase doit être utilisée comme entrée pour ces outils ou sur quels changements sont propagés, je trouve que la méthode en trois étapes avec Outils Géotraitement peut être beaucoup plus intuitive. Le premier outil sera toujours l'outil géotraitement Export Schema Changes. Cet outil n'a qu'une seule entrée géodatabase (la géodatabase qui possède le schéma que vous souhaitez propager au replica relatif), et crée un seul fichier XML en sortie.
Maintenant, nous exécutons l'outil géotraitement Compare Replica Schemas où notre entrée est la géodatabase relative et le fichier XML que nous venons de créer. La sortie de l'outil de géotraitement Compare Replica Schema est un seul fichier XML. Enfin, notre troisième étape est d'exécuter l'Import Replica Schema. Notre entrée sera une géodatabase - relative à l'entrée que nous saisissons dans l'outil Export Replica Schema, et le compare.XML que nous venons de créer. Bien que les outils de géotraitement n'aient pas l'interface utilisateur organisée qui liste les différences de schéma reconnues, cette méthode peut clarifier toute confusion sur l'origine des modifications et leur destination.Voir les documents Ressources :<\/STRONG>Travailler avec les modifications de schéma<\/A><\/STRONG><\/STRONG><\/LI>Modifications de schéma<\/A><\/STRONG><\/STRONG><\/LI><\/UL>Tina M. - Analyste support Geodata<\/EM>
<\/BODY><\/HTML>