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

SSIS Discussion :

[SSIS] [2K5] Alimentation par delta table de référence


Sujet :

SSIS

  1. #1
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Points : 44
    Points
    44
    Par défaut [SSIS] [2K5] Alimentation par delta table de référence
    Bonjour à tous,

    Je débute sous SSIS et je rencontre un petit soucis:

    Je souhaite alimenter une table de référence par delta (en différentiel).
    Les tables sources dans mon système de production n'ont pas de date, c'est donc mon problème majeur...

    J'ai réalisé la 1ère alimentation en bloc avec le flux qui est joint au message.

    J'aimerai maintenant faire du delta mais je ne trouve pas de composant sous SSIS permettant de faire l'équivalent d'un EXCEPT ou IF EXISTS en SQL (ou équivalent)

    Voici donc mon flux :
    http://i42.tinypic.com/w70f1u.gif

    Merci d'avance de m'éclairer.

  2. #2
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Points : 44
    Points
    44
    Par défaut
    un petit up

    Je cherche un tuto sur les tables à variation lente.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Points : 44
    Points
    44
    Par défaut
    Personne pour m'aider?

  4. #4
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Points
    884
    Par défaut
    Bonjour

    As tu regardé du côté du composant Slowly Changing Dimension?
    Quelle est ta version de SQL server? 2005 ou 2008? Si c'est la 2008, il y a une nouvelle fonctionnalité (le Change Data Capture, je suis en train de me former dessus) que tu pourrais peut être exploiter..

  5. #5
    Membre du Club
    Inscrit en
    Mars 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 87
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par patriceharel Voir le message
    Bonjour
    As tu regardé du côté du composant Slowly Changing Dimension?
    Oui, c'est pourquoi je cherche un tuto sur les tables à variation lente (post précédent )

    SSIS 2005 mais tout va migrer en 2008.

    Cette fonctionnalité SSIS semble convenir à mon besoin.

    L'alimentation se fait bien par delta.

    Cependant, si je supprime une ligne dans la production, la suppression n'est pas répercuté dans ma table de référence.
    J'ai essayé de remplacer les UPDATE par des DELETE des Commande OLE DB de sorties du composants Dimension à variation lente mais ça ne fonctionne pas...T'as une idée ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    J'aimerai maintenant faire du delta mais je ne trouve pas de composant sous SSIS permettant de faire l'équivalent d'un EXCEPT ou IF EXISTS en SQL (ou équivalent)

    Le look up (recherche) permet d'avoir l'equivalent de IF EXISTS en SQL.
    Lorsque tu fais ton mapping, la sortie verte correspond à EXIST et la sortie d'erreur ( la rouge) correspond à NOT EXISTS.

  7. #7
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Quelle est ta version de SQL server? 2005 ou 2008?
    Au vu du sujet c'est la 2005 donc à priori on peut oublier le CDC ce qui est dommage Donc pour faire du chargement "différentiel" dans ce cas tu as plusieurs solutions en SSIS, dont une principale.

    Effectivement le Lookup te permet de récupérer dans chacune de tes trois tables les valeurs correspondantes à ta clé composite (RefProduit,Marque). Après cela il te suffit d'insérer les lignes de l'Error Output dans ton OLE DB Destination pour ajouter à ta table RefProduit les produits qui n'existaient pas au dernier chargement. Pour gérer des UPDATES tu peux utiliser le flux Match (par défaut) et faire une OLE DB COmmand d'UPDATE sur ta table pour garder les informations à jour.

    Il y a bien sur d'autres stratégies, dépendant de la volumétrie des tables mises en jeu (utilisation du MERGE JOIN plutôt que du Lookup, paradigme DELETE/INSERT sur les tuples à mettre à jour plutôt que UPDATE...)


    François JEHL
    Consultant / Formateur
    MCITP/MCT Database & BI Development
    http://fjehl.blogspot.com
    François JEHL
    BI Engineer | MVP SQL Server
    http://fjehl.wordpress.com
    Pour me contacter, par MP ou ici, mais pas pour des questions techniques.

    /*
    Avant de poster cherchez dans la FAQ et utilisez la fonction "Rechercher" du forum.
    Au moment de poster, posez votre question dans le bon sous-forum (Débuter, SSAS, SSRS, SSIS), en utilisant les TAGs prédéfinis ([2K], [2K5], [2K8], [2K8R2]).
    */

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/07/2009, 10h00
  2. Réponses: 3
    Dernier message: 18/02/2009, 10h06
  3. Listes SELECT en cascade, alimentées par des tables mysql
    Par Lamanne dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 07/02/2009, 22h24
  4. [MySQL] Listes SELECT en cascade, alimentées par des tables sql
    Par Lamanne dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/02/2009, 13h03
  5. trier un stringgrid alimenter par une table MySql
    Par boopix dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/03/2007, 14h28

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