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] Remplir la table de fait


Sujet :

SSIS

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 37
    Points
    37
    Par défaut [SSIS] [2K5] Remplir la table de fait
    Salut tout le monde,
    Je possède comme fichier source un Fichier Excel et j'ai pu remplir mes tables de Dimensions selon mes besoins et je ne sais pas comment faire pour remplir ma table de fait avec SSIS. Selon mon modèle en étoile j'ai 3 Dimensions et une table de fait et chaque Dimension possède son ID, comment je fais avec SSIS pour rassembler les différents IDs dans ma table de fait ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ID = 1 (DIM 1) | ID = 1 (DIM 2) | ID = 3 (DIM 3)
    Table de fait ID = 1 correspond à ma ligne des 3 dimensions avec en + la mesure
    Comment remplir ma table de fait avec SSIS

  2. #2
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut
    Si j'ai bien compris, Tu as :

    Trois dimensions
    DIM1 (ID_DIM1, LIBELLE_DIM1),
    DIM2 (ID_DIM2, LIBELLE_DIM2),
    DIM3 (ID_DIM3, LIBELLE_DIM3)

    Une table de faits
    FACT1 (ID_DIM1, ID_DIM2, ID_DIM3, MESURE)

    Tu ne sais pas comment remplir ta table de faits avec SSIS ou est-ce un problème de modélisation ? par ce que techniquement, tu remplies la table de fait de la même façon que tu remplies les dimensions.

    peux-tu préciser le version de SSIS, la base de données cible et la structure du fichier Excel source que tu utilises si c'est une solution technique que tu cherches

    +

  3. #3
    Membre du Club

    Inscrit en
    Mars 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 21
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    généralement le problème qui se pose quand on travail avec les Datawarehouse, c'est l'utilisation des surrogate key
    si tu a utiliser des surrogate key dans tes dimensions, alors il te faut les récupérer lors du chargement de ta tables de fait. pour cela tu peut utiliser le composant Lookup (Recherche).
    si ton problème ne concerne pas les surrogate Key, alors plus de précisions seront les biens venues.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Merci pour vos réponses,

    Si j'ai bien compris,

    Pour remplir ma Table de Fait, j'utilise le Lookup en mettant en premier lieu un OLE DB de ma table Source (La table qui contient les données que je reçois chaque fin du mois) que j'envoie sur un composant Lookup qui cherche dans une table de Dimension l'ID ensuite je relie en sortie avec un autre composant Lookup qui cherche dans une autre table de Dimension un autre ID jusqu'à la 3ème Dimension et là, je relie la Sortie du Lookup avec un OLE DB de ma table de Fait.
    Donc, j'aurai un OLE DB en Source et 3 Lookup et un OLE DB en Destination (Table de Fait).

    Je suis sur la Bonne voie ? Ou dois-je utiliser un composant "Union ALL" pour récupérer tout les autres champs qui vont avec l'ID.

    Merci d'avance

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 81
    Points : 102
    Points
    102
    Par défaut
    tu es sur la bonne voie. Tu utilises autant de lookup que ID de dimensions à trouver.
    T'as pas besoin d'utiliser un "union all".
    tu peux également faire ça avec des jointures internes "merge join". à gauche par exemple tu rattaches ton entrée source avec les données de faits (mesures) et les code de dimensions, et à droite du composant jointure tu rattaches une sortie d'une connection OLDB à une dimension (tu rapatries les ID des dimensions et leurs codes) pour faire le mappage.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Merci pour votre réponse sefaxe82,

    Mais j'ai trouvé un Problème avec le "Merge Join", il faut d'abord mettre un composant "Sort" pour trier les données puis faire le Merge Join. Et cela me cause un Problème avec l'ordre d'accomplissement des actions. (par exemple : je possède en source les codes des clients dans l'ordre de leurs arrivé, si je fais un Sort je perd cet ordre).

  7. #7
    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

    Quand tu dis "récupérer tous les autres champs qui vont avec l'ID", ces champs sont bien présents dans la dimension?
    Pourquoi as tu besoin de récupérer ces champs?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Merci pour vos réponses,

    Quand je dis "récupérer tous les autres champs qui vont avec l'ID" je veut dire au niveau du Lookup, lors du paramétrage du Lookup je fais la liaison entre les 2 tables en reliant la flèche avec la correspondance (ID dans ce cas) de l'autre table et Je coche aussi les autre champs (Libellé).

    Pour le Merge Join, il me cause problème parce que je dois trier avant de faire la Jointure en utilisant le composant Sort et sa, sa ne m'arrange pas

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    par quoi je doit remplir ma table de dimension (temps) dans le datawarhouse ?!

  10. #10
    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
    Merci d'ouvrir un nouveau sujet.

Discussions similaires

  1. [SSIS] [2K5] Vider la table des faits
    Par aqavach dans le forum SSIS
    Réponses: 3
    Dernier message: 06/08/2009, 14h32
  2. Réponses: 10
    Dernier message: 09/07/2009, 09h58
  3. Réponses: 8
    Dernier message: 07/07/2009, 10h00
  4. [SSIS][2K5]fichiers plats+tables temporaires
    Par jawadi95 dans le forum SSIS
    Réponses: 1
    Dernier message: 28/04/2008, 22h37
  5. [SSIS][2K5] Preciser la table d'insertion
    Par tchraad dans le forum SSIS
    Réponses: 1
    Dernier message: 01/04/2008, 10h36

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