La meilleure technologie pour synchroniser les données entre les différents schémas de base de données?
J'ai déjà une base de données SQL Server 2005 qui dirige notre comptabilité et d'inventaire. Nous sommes à la recherche à l'aide d'une nouvelle ligne de commande - cadre qui a sa propre base de données.
Si nous utilisons ce nouveau cadre, nous avons besoin pour le transfert de la ligne de commande de données (gestion des stocks, prix, commandes, clients) - presque en temps réel et à partir de notre base de données d'inventaire. Le transfert de données ne doit pas être en temps réel, mais il doit être rapide. Deux bases de données seront dans SQL Server.
Donc ma question est... qu'est-ce que la meilleure façon de transférer les données entre deux bases de données, avec des schémas différents?
La réplication? SSIS? Que suggéreriez-vous, et pourquoi?
Toute aide serait appréciée!
source d'informationauteur Clinemi
Vous devez vous connecter pour publier un commentaire.
Personnellement, je voudrais fuir loin de ce cauchemar aussi vite que je le pouvais. Puisque vous n'avez pas encore acheté cette commande en ligne, je voudrais suggérer que la conservation des données en synchronisation avec l'application existante est une raison valable pour ne pas faire une telle chose. Si vous achetez ce que vous sera éternellement regretter cachées de vos données et comment beaucoup de temps et d'argent que vous dépensez en essayant d'obtenir les choses correctement. C'est un désastre. Vous"ll finissent par avoir des personnes de l'ordre des éléments soi-disant dans la iventory quand il n'en existe pas dans l'entrepôt. Ne pas le faire. C'est une garantie de clients furieux et en colère gestionnaires. Loin, loin, moins cher, plus de temps pour embaucher des développeurs pour mettre en place vos propres commandes en ligne qui accède à votre base de données. Si ils aller de l'avant sur vos objections, je mettrais à jour mon cv.
Les Règles Métier sont la Partie la plus Difficile
Un moyen de synchronisation? Synchronisation bidirectionnelle? Push en temps réel? Tous les soirs les mises à jour? Sauvegarder et recharger? Comparer et mettre à jour? La résolution des conflits? De quel côté est le vainqueur? Pousser en lecture seule info d'une manière, et l'ordre d'infos dans l'autre sens? Ce sujet de modifications/annulations/etc? N'statuts de commande repousser?
Vous pouvez voir où je vais ici. La technologie est une question secondaire.
En raison de l'entreprise sur la question des règles, et parce que les deux systèmes ont des schémas différents (et à des fins différentes), ce n'est pas un standard de données à déplacer, et la plupart de la "norme" des réponses (réplication, l'envoi de journaux, etc) sont sur la table.
Il y a des cadres y conçu pour aider à cela, comme Microsoft BizTalk ou Scribe Insight. Ce sont lourds et coûteux, cependant.
Il n'est pas trop difficile de créer une attente personnalisée-ing système soit basé sur des déclencheurs SQL, ou planifiées pousse (selon vos besoins) en C# ou votre langue préférée. C'est probablement la voie que j'irais. Il faudrait probablement un troisième "transfert" de la base de données pour contenir la file d'attente de modifications faites par un côté, et un module d'appliquer les règles de gestion et de pousser les données à l'autre.
Par expérience personnelle, je tiens seulement à l'utilisation de la réplication si il n'y avait pas d'autres choix. Vous avez la démolir pour tout changement de schéma et il a tendance à tout faire exploser.
Pour cela, je serais probablement utiliser SSIS. Il est assez facile de construire un module de transformation et assez simple à entretenir.
La réplication fonctionne bien, et si c'est les deux sens, il pourrait être votre seule option viable, car la résolution des conflits est construit en.
Si vous allez à une voie, SSIS ou de déclencheurs sur les tables fine, et envoient les données en temps réel (pour les déclencheurs) ou selon un intervalle que vous souhaitez (SSIS). L'avantage, SSIS serait que c'est un processus d'arrière-plan, tandis que les déclencheurs pourraient potentiellement être une opération sur le côté de l'offre, alors qu'ils envoient les données.
Si vous êtes à la recherche pour déplacer d'énormes quantités de données, il existe d'autres produits là-bas qui peut le faire pour vous, mais si ce n'est pas trop de données, une solution à l'aide de Serveurs SQL outils doivent faire tout ce dont vous avez besoin.