2010-05-14 3 views
0

Un petit arrière-plan:Quel est le meilleur moyen d'importer des données autonomes dans une base de données?

J'ai une base de données SQL Server autonome et distante qui est tronquée à la fin de chaque week-end. Les données sont à peine relationnelles, pas normalisées du tout, et plutôt ennuyeuses à travailler. En plus de cela, le schéma de cette base de données ne peut pas être modifié du tout, car il est recréé par une application tierce. Avant que la base de données ne soit détruite chaque semaine, une sauvegarde des données de cette semaine est créée. En moyenne, chaque base de données aura entre 500 000 et 2 000 000 d'enregistrements.

Ma tâche consiste à créer une version historique de cette base de données qui est un surensemble de toutes ces sauvegardes de base de données. Il devrait être lié à nos autres bases de données qui contiennent des ensembles d'informations connexes. J'ai déjà commencé une application pour effectuer cette tâche, et je suis arrivé au point où je suis capable de faire correspondre les données avec nos autres bases de données, mais je me demande s'il existe une meilleure pratique pour gérer ce genre d'importation.

Comment puis-je m'assurer que j'ai des ID uniques dans ma version historique de cette base de données? Existe-t-il des fonctionnalités dans SQL Server qui peuvent faire une partie de la lourde charge de travail pour moi?

Merci d'avance pour votre commentaire.

Répondre

1

Il existe certainement une fonctionnalité dans SQL Server qui peut vous aider et cette fonctionnalité est appelée SSIS (SQL Server Integration Services). L'un des principaux usages de SSIS est l'ETL (Extract, Transform, Load), qui consiste à extraire des données de plusieurs sources différentes, en les transformant en tout ce dont vous avez besoin pour entrer dans votre base de données de destination (par exemple les données vont également se passer ici), et enfin le charger dans votre DB de destination.

Je pense que la meilleure façon de commencer, si c'est ce que vous voulez bien sûr, est de prendre un bon livre sur SSIS et de le parcourir. Pendant la lecture, n'oubliez pas de jouer avec le BIDS (Business Intelligence Development Studio - l'un des outils SQL Server) pour créer des paquets de test. En outre, sur Internet, vous trouverez de nombreux articles de "mise en route".

Pour votre cas en particulier ce que je ferais est:

  • créer un package générique qui peut importer les données à partir d'une source DB (un de vos hebdomadaire BDs) et l'insérer dans la destination DB - ce package peut être paramétré à l'aide de la configuration du package parent.
  • créer un package principal qui boucle toutes les sauvegardes dans un dossier donné, les restaure un par un et appelle le package d'importation générique pour chaque restauration. Après chaque importation réussie, le flux de contrôle supprime le DB précédemment restauré.

Je pense que je vous ai donné assez de matériel pour enquêter maintenant :-)

Bonne chance, Valentino.

+0

Et pour ajouter à ce que Valentino a dit, oui créez votre propre id et mettez en scène les tables, ainsi vous pouvez mettre à jour toutes les tables enfant une fois que vous avez le nouvel identifiant pour chaque enregistrement parent. – HLGEM

Questions connexes