IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Transfert de données avec SSIS


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut Transfert de données avec SSIS
    Bonjour à tous,

    Débutant sur SQL server 2008, j'aurais souhaité avoir votre avis sur une petite question. J'utilise l'outil SSIS pour effectuer des transferts entre une base de données sous Oracle vers une BDD sous sql server 2008. Le transfert se passe bien mais le "problème" c'est que pour parvenir à ce transfert, la tâche vide complètement ma table pour y remettre les données d'oracle. Je trouve donc ce travail mal optimisé.

    Ma question est de savoir s'il est possible de préciser à SSIS de n'importer dans ma base SQL server que les nouvelles données et les dernières modifications et comment réaliser cette opération (si cela est possible avec l'interface graphique).

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Par défaut
    Il est bien évidemment possible de conserver ses données ! D'ailleurs SSIS dispose de la tâche "Dimension à variable lente" qui permet de faire ce genre de chose.

    Ceci dit, je te conseille plutot de décomposer ton processus en 3 étapes :

    1. rechercher les nouvelles lignes via une tâche Lookup
    2. insertion (via tâche Destination OLEDB) pour toutes les nouvelles données (dans Oracle mais pas dans MSSS)
    3. update (via tâche commande OLE DB) pour les données présentes dans tes deux BDD

    A toi de voir ensuite comment tu souhaite gérer la situation où des lignes ont été supprimées dans ta BDD oracle (veux tu qu'elles soient supprimées également sous MSSS ou souhaites tu les conserver).

    Il y a un article, ici, très bien fait sur ce sujet.

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Par défaut
    Tout d'abord, merci pour ta réponse rapide. Pour la dernière question, je souhaite mettre en place des transferts de données tous les soirs afin d'avoir exactement les même données sur Oracle et sur Server 2008 sans avoir à faire des delete dans toutes mes tables

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Par défaut
    Et bien si les schémas de tes tables sont identiques dans tes deux BDD (c'est à dire si tu n'a pas d'attributs propres dans ta BDD SQL Server), dans ta situation, je viderais complément mes tables (TRUNCATE à priori) avant de les alimenter via SSIS avec les lignes provenant des tables d'Oracle.

    En fonction de ta volumétrie, je pense qu'il y a de grandes chances pour que ce soit plus performant que des instructions DELETE sélectives, puis des INSERT puis des UPDATE...

    Pour plus d'information sur la façon de faire celà sous SSIS, je t'invite à poser la question dans le forum dédié, ici.

  5. #5
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Vous pouvez utiliser le composant "lookup" qui permet de faire exactement ce que vous voulez. Ce composant permet de rechercher tout les enregistrements présents dans une table en fonction d'une DATASOURCE.

    Il ne vous reste plus qu'à exploiter la sortie en erreur qui vous donne les nouveaux enregistrements (donc ceux qui ne sont déjà pas présent dans vos tables).

    ++

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/12/2010, 10h10
  2. [Toutes versions] Pb de transfert de données avec un tableau croisé dynamique
    Par astridlet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/12/2010, 16h39
  3. [XL-2003] transfert de données avec positionnement et recherche valeur
    Par domcoool dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/04/2010, 10h04
  4. Transfert de données avec collage spéciale
    Par Fredh61 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/06/2009, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo