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

Conception/Modélisation Discussion :

comment gérer Slowly Changing Dimension pour les champs non traqués?


Sujet :

Conception/Modélisation

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 51
    Points : 38
    Points
    38
    Par défaut comment gérer Slowly Changing Dimension pour les champs non traqués?
    Dans la dimension produits je dois traquer le champ état.. On le traque en utilisant le current_flag ='Y' ou 'N' et une date de fermeture de record que je ne vais pas utiliser dans l'illustration. L'exemple suivant illustre le cas. Le problème se pose pour les champs qui ne sont pas traqués comme la description:

    Dat1 CodProd1 KeyProd1 état1 description1 current_lag=’Y’

    Dat2 CodProd1 KeyProd2 état2 description1 current_flag=’Y’ avec le record d'avant Dat1 qui aura Current_flag ='N'
    Dat1 CodProd1 KeyProd1 état1 description1 current_lag=’N

    Dat3 CodProd1 KeyProd2 état2 description2 current_flag=’Y’ en fait ce record va écraser le précédent. On n’aura pas de dat2 mais seulement dat3

    Ce qu’on veut : quand on interroge les faits par exemple les ventes entre dat1 & dat2 on ne veut pas avoir la description1 et la description2 mais seuelement la description2 pour toutes les dates donc pour tous les records y compris les records non courants.

    La question : a-t-on le droit d'écraser les anciennes valeurs de la description pour tous les records qui ne sont pas courants? Ou y a-t-il une autre solution?

    Merci

  2. #2
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    J'ai pas tout compris l'histoire de ce flag, mais je vais essayer de répondre

    Citation Envoyé par Louisa2005 Voir le message
    La question : a-t-on le droit d'écraser les anciennes valeurs de la description pour tous les records qui ne sont pas courants? Ou y a-t-il une autre solution?
    Normalement non, mais après rien ne vous en empêche ...

    Sinon une solution courante est d'avoir 2 tables, une courante et une historique. Après dans l'outil de reporting on mixe les 2. Là par exemple on prendrait la description de la table courante, et les états dans la table historique.

  3. #3
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Citation Envoyé par Louisa2005 Voir le message

    La question : a-t-on le droit d'écraser les anciennes valeurs de la description pour tous les records qui ne sont pas courants? Ou y a-t-il une autre solution?

    Merci
    Pas tout compris non plus, mais pour moi il s'agit de la définition du SCD Type 1 : http://en.wikipedia.org/wiki/Slowly_...mension#Type_1

    Donc ça ne me choque pas, certains etl gère un scd type 1 (bis) où seule la ligne active est mise à jour.

  4. #4
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Dans le SCD type 1 tu n'as pas d'historique du tout !!!
    Or là on historise l'état ( enfin à ce que j'ai compris )

    Mais ce lien est une bonne référence ... pour ce que louisa veut faire ...

  5. #5
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Citation Envoyé par doc malkovich Voir le message
    Dans le SCD type 1 tu n'as pas d'historique du tout !!!
    Or là on historise l'état ( enfin à ce que j'ai compris )

    Mais ce lien est une bonne référence ... pour ce que louisa veut faire ...
    Ce qu’on veut : quand on interroge les faits par exemple les ventes entre dat1 & dat2 on ne veut pas avoir la description1 et la description2 mais seuelement la description2 pour toutes les dates donc pour tous les records y compris les records non courants.
    Pour moi dans la demande de Louisa2005 il n'y a pas d'historisation à faire.

  6. #6
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Louisa2005 Voir le message
    Dans la dimension produits je dois traquer le champ état..

    Dat1 CodProd1 KeyProd1 état1 description1 current_lag=’Y’
    Dat2 CodProd1 KeyProd2 état2 description1 current_flag=’Y’ avec le record d'avant Dat1 qui aura Current_flag ='N'
    A ce que j'ai compris on historise l'état ... En gros on a plusieurs lignes pour codprod1, les différents états ...

    Enfin à ce que j'ai compris

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 51
    Points : 38
    Points
    38
    Par défaut
    OUI on histoirse l'État mais pas la description. on voudrait avoir une seule et unique valeur de la description quelque soit la date. mais à cause de l'historisation (le traquage) du champ état on risque d'avoir 2 descriptions. la question est comment n'avoir qu'une seule et même valeur de la description dans la même table de dimension où on traque le champ état?

  8. #8
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Louisa2005 Voir le message
    la question est comment n'avoir qu'une seule et même valeur de la description dans la même table de dimension où on traque le champ état?
    Comme tu l'as dit si tu n'as qu'une seule table tu dois mettre à jour la description sur tout l'historique ...
    Mais ce n'est pas propre, tu mélanges des données historisées et des données volatiles - les utilisateurs et tes successeurs risquent de s'y perdre
    Le mieux ( pour moi ) est de séparer les données dans 2 tables séparées.

  9. #9
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Une dimension avec une colonne en scd type 1 et une autre en scd type 2. Il faut que ce soit bien précisé dans les specs et que les utilisateurs de la table soient sensibilisés à ce type de fonctionnement. A part ça, ça ne me choque pas . Certains etl comme talend le gèrent très facilement.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 51
    Points : 38
    Points
    38
    Par défaut
    sais-tu comment c'est géré dans Talend? avec 2 tables séparées ou dans une seule et même table?

  11. #11
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Dans Talend c'est géré dans la même table par un composant dédié :tYourSGBDSCD.
    Ci-joint un screenshot de l'inteface du composant SCD pour SQLServer.
    Toutes les colonnes en entrée apparaissent au début dans la partie "inutilisée" et après il faut répartir ces colonnes dans les différents types du scd.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 51
    Points : 38
    Points
    38
    Par défaut
    merci pour les réponses

Discussions similaires

  1. [WD-2003] Affichage de crochets pour les champs non rempli lors de l'impression
    Par formabox dans le forum VBA Word
    Réponses: 1
    Dernier message: 24/04/2009, 09h57
  2. [Tout langages] Comment Générer un ID alphanumérique pour les champs
    Par digital prophecy dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 04/12/2006, 18h47
  3. Mysql : choix des types pour les champs entre :
    Par Thierry8 dans le forum Administration
    Réponses: 3
    Dernier message: 14/06/2006, 08h22
  4. Comment entrer des formules chimiques dans les champs access
    Par Monbasinstinct dans le forum Access
    Réponses: 18
    Dernier message: 06/04/2006, 17h39
  5. [MySQL] Associer lien pour les champs de ma liste
    Par nouna dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/10/2005, 18h59

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