0

Je tente de créer une plate-forme de reporting pour notre CRM. La conception du système a un DB distinct (avec la même structure) pour chaque client. Je réplique (transactionnel) ces 50 bases de données sur le serveur de rapports, mais je veux maintenant regrouper toutes les données dans une base de données 'reporting'. Chaque table aura une nouvelle colonne d'identification de client qui maintiendra les enregistrements uniques et reliera à une nouvelle table de client. Je souhaite que les données soient aussi proches de la vie que possible (donc transactionnelles). J'ai pensé à utiliser une grande vue de base de données croisée, mais quelque chose me dit que ce n'est pas la meilleure façon de le faire.SQL Server Cross Database View

Je suppose que je pourrais avoir des déclencheurs sur chaque DB client qui a mis à jour la base de données de reporting chaque fois qu'il y a une mise à jour, une suppression ou une insertion. Je ne sais pas si SSIS pourrait être utilisé pour cela. Je l'ai seulement utilisé pour ETL dans le passé. Je voudrais donc savoir quelle serait la meilleure pratique pour rassembler plusieurs bases de données et garder les données en phase avec l'environnement de production.

+0

Je vais utiliser une instruction de fusion planifiée SSIS pour chaque table que je veux synchroniser –

Répondre

1

Je ne ferais certainement pas de vue. Les jointures seront insensées et ne seront pas redimensionnées lorsque vous ajouterez de nouveaux clients. Je ne suis pas sûr d'utiliser les déclencheurs non plus. Cela pourrait fonctionner, mais ne dupliquez-vous pas simplement la réplication à ce moment-là?

J'utiliserais la réplication et je répliquerais simplement ces tables sur le serveur de rapports. Ensuite, vous pouvez modéliser les tables répliquées pour qu'elles soient ce que vous voulez qu'elles soient. La réplication peut être un peu difficile à faire fonctionner correctement, mais quand ça marche, c'est vraiment incroyable.

Questions connexes