Nous avons actuellement une base de données OLTP SQL Server 2005 pour notre projet. Nous prévoyons de créer une base de données de rapports distincte (dénormalisée) afin que nous puissions enlever la charge de notre base de données OLTP. Je ne sais pas quelle est la meilleure approche pour synchroniser ces bases de données. Cependant, nous ne recherchons pas un système en temps réel. SSIS est-il une bonne option? Je suis complètement nouveau à SSIS, donc pas sûr de la faisabilité. Veuillez fournir vos entrées.Actualisation d'une base de données de rapports
Répondre
Tout le monde a sa propre opinion de SSIS. Mais je l'ai utilisé pendant des années pour les datamarts et mon environnement actuel qui est une installation BI complète. Personnellement, j'aime ses capacités à déplacer des données et il détient toujours le record du monde pour le déplacement de 1,13 téraoctets en moins de 30 minutes. En ce qui concerne la configuration, nous utilisons l'envoi de journaux à partir de notre base de données transactionnelle pour remplir une deuxième boîte. Utilisez ensuite SSIS pour dé-normaliser et stocker les données. La communauté pour SSIS est également très grande et il y a des tonnes de formation gratuite et des ressources utiles en ligne.
Nous construisons notre entrepôt de données à l'aide de SSIS à partir duquel nous exécutons des rapports. C'est une grande courbe d'apprentissage et les erreurs qu'elle génère ne sont pas particulièrement utiles, et ça aide d'être bon en SQL, plutôt que de le traiter comme un 'transfert ligne par ligne' - ce que je veux dire c'est que vous devriez créer des requêtes tâches de commande sql plutôt que d'utiliser beaucoup de tâches de composants et de flux de données SSIS. Comprenez que chaque entrepôt est une différence et vous devez décider comment le faire le mieux possible. This link peut vous donner quelques bonnes idées.
Comment nous mettons en œuvre la nôtre (nous avons un back-end postgres et l'utilisation fournisseur de PIBT, et en utilisant des serveurs liés pourrait rendre votre vie plus facile):
d'abord, vous devez avoir une colonne horodatage dans chaque tableau de sorte que vous pouvez quand il a été changé pour la dernière fois.
Ensuite, écrivez une requête qui sélectionne les données qui ont changé depuis la dernière exécution du paquet (en utilisant une table d'audit, cela vous aidera) et récupérez ces données dans une table de transfert. Nous l'exécutons comme une tâche de flux de données car (en utilisant postgres) nous n'avons pas d'autre choix, bien que vous puissiez utiliser une référence normale à une autre base de données (nom de fichier .schemaname.tablename ou quelque chose comme ça) ou utiliser un requête serveur liée. De toute façon, l'idée est la même. Vous vous retrouvez avec des données qui ont changé depuis votre requête.
Ensuite, nous mettons à jour (sur la base de id) les données qui existent déjà, puis insérons les nouvelles données (à gauche joindre la table pour trouver ce qui n'existe pas déjà dans l'entrepôt actuel).
Maintenant, nous avons une table dénormalisée qui montre dans ce cas des tâches par jour. À partir de là, nous calculons d'autres tables en fonction des valeurs agrégées de celle-ci.
L'espoir qui aide, voici quelques bons liens que je utiles:
- 1. Actualisation d'un DataGridView lié à une base de données d'accès
- 2. Actualisation d'une connexion à une base de données SQL
- 3. Base de données de connexion lorsque cliqué sur sous-rapports
- 4. CQRS, DDD synchronisation base de données de rapports
- 5. Actualisation des données
- 6. Base de données Oracle avec les rapports SSRS
- 7. Suivi des rapports imprimés dans la base de données SQL
- 8. Actualisation de la page ICEFaces
- 9. Remise à zéro ou actualisation d'une connexion de base de données
- 10. Ajax simple/actualisation de page
- 11. UITableView rechargement de données/actualisation (problème de duplication possible)
- 12. Modélisation de la base de données d'une liste de courriels et des types de rapports
- 13. Génération de rapports Excel à partir de la base de données Access
- 14. Génération de rapports excel Silverlight côté serveur basé sur la requête de la base de données
- 15. Reporting Services "impossible de se connecter à la base de données du serveur de rapports"
- 16. Stockage des assemblys de génération de rapports (.net) dans une base de données
- 17. Problème de réinitialisation/actualisation NSManagedObjectContext et NSArrayController
- 18. Remplacer une connexion de base de données pour les sous-rapports avec JRC
- 19. Publication des rapports de base de données Access sur le Web
- 20. comment ajouter la base de données ASPNETDB.mdf pour générer des rapports de cristal
- 21. Paramètres de transmission de rapports Crystal dans des sous-rapports à l'aide du jeu de données
- 22. Génération de rapports
- 23. Création de rapports avec Java
- 24. Actualisation de NSTableView dans NSWindow inactif
- 25. Mise à jour de l'URL sans actualisation
- 26. Base de données premiers projets de base de données
- 27. Quel est le meilleur moyen d'avoir des rapports quotidiens sur mon site Web/base de données
- 28. Vous voulez utiliser Dynamic Jasper pour créer des rapports avec ma base de données MySQL
- 29. de base de données
- 30. base de données pour web analytics
Outre un "Oui" pour SSIS en général, quelque chose de plus spécifique, vous devrez être plus précis quant à vos exigences/contraintes, etc. – InSane
Merci pour votre commentaire. Comme je l'ai mentionné, je cherchais des pointeurs pour la meilleure approche pour actualiser la base de données de rapports. Je suis à la recherche d'une charge delta (changements depuis le dernier chargement) pour synchroniser les bases de données. Je n'ai pas encore commencé à l'implémenter, donc je n'ai pas de questions spécifiques au SSIS pour le moment. – Fka