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 :

Récuperer la valeur d'un auto-incrément lors d'un Extract & Transform ?


Sujet :

SSIS

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Points : 88
    Points
    88
    Par défaut Récuperer la valeur d'un auto-incrément lors d'un Extract & Transform ?
    Bonjour,

    Je suis actuellement en train de découvrir SSIS et j'ai quelques difficultés pour faire ce que je veux, alors je vais essayer de vous donner les informations dont je dispose pour que vous puissiez me dire comment réaliser ma solution proprement !

    J'aimerai faire des tableaux de bords qui permettent de faire du suivi de projet.
    Pour chaque projet, on entre les données dans un fichier Excel contenant plusieurs feuilles avec différentes informations:
    Feuille 1: Informations générales du projet
    Feuille 2: Suivi des étapes du projet
    Feuille 3: Actions effectuées en cas de problème sur le projet
    Feuille 4: Personnes travaillant sur le projet et charges

    J'ai créé un DWH (constellation) qui permet de répondre à ma problématique, ainsi que mon fichier Excel générique (1 par projet).
    Dans mon DWH, j'ai mis les clés primaires (ID) en auto-incrément.

    Sur SSIS, j'ai donc créé une tâche de flux de données dans laquelle j'effectue les actions suivantes:
    - Source Excel --> Je récupère les données de toutes les feuilles en ayant sélectionné le "Mode d'accès aux données: Commande SQL". Cependant, je n'ai rien qui me permette de lier mes feuilles entre elles, mais certaines données qui appartiennent à une dimension, sont parfois sur des feuilles séparées, ce qui m'oblige à tout sélectionner.
    - Conversion de données --> Transformation pour que les "types" de mes variables en entrée soient compatibles avec les attributs que j'ai spécifié dans mon DWH (exemple: quand j'ai un pourcentage dans mon fichier Excel, je spécifie que c'est un Flottant dans la conversion des données).
    - Multi-diffusion -> afin de pouvoir entrer les données que j'ai récupéré dans mes différentes dimensions, je dois faire de la multi-diffusion, sinon je ne peux les rentrer que dans une seule table..
    -Destination pour SQL Server: Pour chaque dimension je récupère les données, cependant, c'est ici qu'est mon problème: comme j'ai un modèle en constellation, j'aurai aimé pouvoir rentrer les données dans plusieurs tables à la fois afin que les liaisons entre les tables soient conservées. Or, ce n'est pas le cas, et je ne trouve pas comment récupérer les clés primaires de certaines tables, pour les faire apparaitre dans d'autres tables..

    Deux exemple plus concrets:
    - en admettant que j'ai réussi à rentrer toutes mes données dans les dimensions concernées, comment est ce que je peux récupérer leurs clés primaires pour remplir ma table de fait en même temps ?
    - j'ai une dimension X qui est reliée à la fois à ma table de faits, et à une autre table Y et qui à l'ID de X en clé étrangère: comment spécifier l'ID de X dans Y au moment ou je rentre les données ?

    Et au final, je ne sais pas vraiment comment se fait le remplissage de la table de faits, si quelqu'un pouvait m'éclairer sur ce point...

    J'espère avoir été clair et remercie par avance toute personne pouvant m'aider à trouver un élément de réponse

  2. #2
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Une des méthode est de remplir votre destination en faisant appel plusieurs fois à votre (vos) source(s) en commençant par les tables les plus extérieure de votre schéma de DWH.

    Lors de la première interogation de la source vous remplissez les tables de dimensions liées à aucune autre table de dimension.
    Puis 2° passage de la source pour alimenter les tables de dimensions liées à d'autres table de dimensions ; A ce moment vous faites des lookups entre votre flux venant de la source et les tables que vous avez déjà alimentées pour en récupérer les clefs primaires.
    Etc. jusqu'au table de faits ou vous effectuez le même genre de traitement pour remplir votre flux avec les données de faits + les données permettant de retrouver l'unicité dans vos tables de dimensions. Vous faites alors les lookups avec vos tables de DIM et vous récupérez les PK de ces tables que vous pouvez alors insérer dans vos tables de faits.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 115
    Points : 88
    Points
    88
    Par défaut
    Merci, c'est ce que j'étais en train d'essayer de faire
    Mais je suis tout de même étonné que la table de faits ne soit pas "pré-remplie" de manière automatique.. On à toutes les données en entrée, il y a juste à mapper certains champs..

    Je mettrai le tag résolu quand j'aurai fini de tout essayer !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récuperer la valeur de l'auto-incrément d'une table
    Par dyron dans le forum Doctrine2
    Réponses: 4
    Dernier message: 07/12/2012, 13h58
  2. Réponses: 2
    Dernier message: 11/02/2008, 21h47
  3. [MySQL] Obtenir la valeur de l'auto-increment lors d'une insertion
    Par yazerty dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/01/2006, 15h18
  4. Récuperer l'identifiant d'un auto-incrémente
    Par MANU_2 dans le forum Bases de données
    Réponses: 5
    Dernier message: 19/10/2005, 01h18
  5. Récupération de la valeur d'une auto-incrémentation
    Par maldufleur dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/07/2005, 16h50

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