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] Alimenter la table de fait : full ou incrémental


Sujet :

SSIS

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 97
    Points : 62
    Points
    62
    Par défaut [SSIS] [2K5] Alimenter la table de fait : full ou incrémental
    Bonjour à tous,

    dans une alimentation periodique de la table des faits d'un datawarehouse j'aimerais savoir si il faut d'abord la vider avant de lancer le package ssis d'alimentation, comme ça on re-enregistre les ancienne valeurs de la table des faits plus de nouvelles ( les plus recentes) de la base de production (ces données n'étaient pas dans la table lors du précédent chargement).

    Ou bien est-ce qu'il existe une technique qui permet lors de l'alimentation d'une table de fait, de ne charger que les nouvelles données de la base de production (les anciennes étant déja chargées)!

    J'espere que c'est clair pour vous, et vous remercie d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 82
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Alors comme possibilité, tu as :

    1) UPSERT (Update + Insert),

    2) SCD (Slowly Changing Dimension),

    3) Récupérer les lignes qui ont été insérées dans la base de production après la dernière exécution de ton lot SSIS (il faudrait te baser sur un champ de type date si il existe au niveau de la base de production).

    Mais rien qu'avec la première, tu atteindras sans problème ton objectif.

    Bon courage

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    merci Sam3oul,

    je pensais que SCD (Slowly Changing Dimension), ne concerne que les tables de dimensions. mais dans mon casil y a aussi la table des faits!!, tu pense que c'est la meme chose pour les deux ??

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 82
    Points : 80
    Points
    80
    Par défaut
    Effectivement, le SCD s'adresse en premier lieu aux dimensions. Et même si je suis assez déçu des performances de ce composant, il permet quand même de belles choses notamment pour la gestion des "versions" des lignes.

    Toutefois, si je t'ai parlé de cette option c'est parce que tout simplement au niveau datawarehouse, on ne parle pas de dimensions ou de tables de faits mais de "entités". Donc, pour moi, la distinction ne se fait pas à ce niveau.

    Après, il vaudrait mieux opter pour l'UPSERT (tu trouveras des posts sur ce forum à ce sujet) si tu veux optimiser le temps d'exécution de ton package.

    Voilà si quelqu'un a un autre avis sur le sujet, le débat est ouvert

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Points : 41
    Points
    41
    Par défaut
    Sam3oul, si tu es déçu par le composant SCD fourni par défaut avec SSIS, je te conseille le composant Kimball SCD qui est un composant additionnel bien plus performant et plus complet:
    http://aurelien-koppel-pps.blogspot....nsion-scd.html

    aqavach, tu peux en effet très bien utiliser une méthode SCD, comme son nom ne l'indique pas, sur une table de fait.
    Dans l'hypothèse où tu choisis une historisation (type 2) sur cette table de fait, tu devras faire attention à ne prendre en compte dans le cube que les versions actives de tes faits.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    Merci pour vos repense, permettez moi d'ajouter une pecesion (question): je n'essaye pas de gérer les attributs à dimension lentes et donc je ne suis pas dans la problimatique e choisir le type 1 ou 2 ....

    Je vous donne un exemple tres simple :
    'jai une table de fait vente, et supposant qu'elle contient 2 faits v1 et v2.

    aujourd'hui il y a eu une nouvelle vente "v3", elle est enregistrée dans la base de production (mais pas encore dans la datwarehous).

    maintenant, si je lence le package de charegement de la table des faits, le package cherchera dans la base de production et trouvera v1, v2 et v3.
    la question est: comment faire pour que le package ne cherge que v3 (le nouvel fait). v1 et v2 etant déja dans la table .

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Points : 41
    Points
    41
    Par défaut
    Compte tenu de l'exemple que tu donnes, tu n'as en effet pas besoin de composant SCD. Une simple opération de "recherche" (lookup) te permettra de vérifier si ta ligne de fait est déjà présente ou non dans ton DWH. Si elle est présente (sortie avec correspondance), tu ne fais rien, si elle ne l'est pas (Sortie sans correspondance) tu l'inséres.

    Tu aurais pu utiliser le composant Kimball SCD si tu avais souhaité répercuter les changement pouvant s'opérer sur les lignes déjà chargées (ex: v1 ou V2 qui sont modifiées depuis le dernier chargement)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 107
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    Pour moi, il faut que tu trouves un critère pour gérer un chargement incrémentiel ....
    Les rechargements complets ou différentiels pour les faits peuvent devenir très long, très rapidement... Après, si tu sais dans quelle mesure tes volumes de faits vont évoluer dans les prochaines années et que tu peux faire des tests pourquoi pas ... mais ca me semble être la solution à envisager lorsque tu n'as pas d'autre choix ...
    Mais si tu peux utiliser un N° de sequence, une date de création,...ca reste, me semble le plus efficace.
    Tu stockes ce critère dans le DW, tu réutilises en début de traitement pour savoir ou tu t'étais arrêté au dernier traitement et le met a jour en fin de traitement ....

  9. #9
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 97
    Points : 62
    Points
    62
    Par défaut
    Je vous remerci pour toutes vos remarques !

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

Discussions similaires

  1. Urgent:alimentation de table de fait en SSIS
    Par awatif157 dans le forum SSIS
    Réponses: 0
    Dernier message: 06/05/2012, 16h35
  2. [SSIS] [2K5] Remplir la table de fait
    Par kellerman_com dans le forum SSIS
    Réponses: 9
    Dernier message: 16/02/2011, 09h50
  3. [SSIS] [2K5] Vider la table des faits
    Par aqavach dans le forum SSIS
    Réponses: 3
    Dernier message: 06/08/2009, 14h32
  4. Réponses: 6
    Dernier message: 06/08/2009, 11h02
  5. Alimenter la table de fait en mode incrémental
    Par challenger84 dans le forum Alimentation
    Réponses: 8
    Dernier message: 12/08/2008, 09h18

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