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

SSAS Discussion :

Questions sur une dimension temps


Sujet :

SSAS

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant BI
    Inscrit en
    Mai 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant BI
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut Questions sur une dimension temps
    Bonjour à tous,

    Je découvre cet outil petit à petit et je bloque depuis plusieurs jours sur le même problème.

    J'ai créé une dimension temps avec pour attributs :
    - Date (qui est la clé de la dimension)
    - Annee (pour avoir le numéro de l'année)
    - Mois (pour avoir le numéro du mois dans l'année)
    - Jour (pour avoir le numéro du jour dans le mois)
    - AnneeLibelle (pour avoir le libellé associé à l'année)
    - MoisLibelle (pour avoir le libellé associé au mois)
    - JourLibelle (pour avoir le libellé associé au jour)
    - MoisOrdre (pour afficher les mois par ordre chronologique et non par ordre alphabétique. J'ai mis 1 pour janvier, 2 pour février, etc ...)
    - JourOrdre (pour afficher les jours par ordre chronologique et non par ordre alphabétique. J'ai mis 1 pour lundi, 2 pour mardi, etc ...)

    J'aimerais pouvoir, au final, afficher les données des mois par rapport aux années (afin de comparer les mois de février entre les années 2009, 2010 et 2011 par exemple) ou les jours par rapport aux mois (mais je pense que le problème est le même).

    Je pensais utiliser l'attribut MoisOrdre et lui mettre en NameColumn "MoisLibelle". Les mois seraient ainsi classés et affichés selon leur libellé. Le problème est que, si je fais ça, j'ai une erreur de doublon (je suppose que c'est du au mois de janvier qui apparaît une fois par année, donc plusieurs fois, tout comme février, mars, etc ...).

    J'ai alors tenté de créer une collection sur KeyColumns de MoisOrdre, en y mettant la combinaison Anne - Mois. Là, plus d'erreur de doublons mais je me retrouve alors avec plusieurs mois de janvier affichés, plusieurs février, etc ... Ce qui me semble logique vu que la clé est alors unique.

    Mais du coup, je ne vois plus trop comment faire !

    Avez vous déjà été confronté à ce problème et si oui, comment l'avez vous résolu / contourné ?

    Merci d'avance,
    Lobay

  2. #2
    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
    Garde ta KeyColumn sur l'ordre (1..12 j'imagine). L'erreur de doublon provient du fait que tu fournis plusieurs libellés possibles par clé. (Par exemple 01 pouvant correspondre à Janvier 2009, 2010, 2011.)
    Donc il te faut un libellé de mois seul (sans l'année). Si tes libellés sont bien de la forme "Mois YYYY" une solution crado rapide, crée une colonne calculée dans ta DSV valant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LEFT(MoisLibelle ,CHARINDEX(' ',MoisLibelle )-1)
    (Prendre tout jusqu'à l'espace en fait).

    Avez vous déjà été confronté à ce problème et si oui, comment l'avez vous résolu / contourné ?
    D'habitude je fais l'inverse: je crée le libellé par mois en concaténant le nom du mois et l'année.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant BI
    Inscrit en
    Mai 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant BI
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Merci de ta réponse ... même si je ne suis pas sûr de tout comprendre !

    Pour l'erreur de doublon :
    Je ne pense pas avoir plusieurs libellé par clé car il m'affiche l'erreur avant que je fasse une collection pour la KeyColumn. La clé d'un "MoisOrdre" correspond juste à 01, 02, 03, ... et a pour libellé "Janvier", "Février", etc ...

    Il n'y a pas d'année dans le libellé (pas de "Janvier 2009", "Janvier 2010" donc).

    Mais je sais qu'il faut que je fasse attention à ne pas mettre plusieurs libellé pour une même clé à l'avenir, merci (tout est bon à prendre quand on débute )

    En fait je me suis peut-être mal exprimé, je ne souhaite pas filtré les mois selon les années avec "Janvier 2009, Janvier 2010, Février 2009, ..." dans les libellés mais plutôt réaliser un tableau de la sorte (en faisant glisser au niveau de la navigation dans un cube les années en ordonnées et les mois en abscisses) :

    .............2009.........2010
    Janvier......A.............B
    Février......C.............D
    Mars.........E.............F

    Avec A, B, C, D, E, F les valeurs correspondants respectivement à Janvier 2009, Janvier 2010, Février 2009, etc ...

    C'est pour cette raison que je voudrais :
    - Afficher les mois par ordre chronologique (et non alphabétique)
    - Regrouper les mêmes mois (pour des années différentes) sous le même libellé

  4. #4
    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
    Donc tu veux un attribut Mois de l'année (MonthOfYear dans SSAS, détaillé comme les autres attributs temps dans ce doc).
    L'idée c'est donc d'avoir pour cet attribut [Mois de l'année] une KeyColumn qui prend ses valeurs dans [1..12] (MoisOrdre dans ton exemple) et comme NameColumn le libellé du mois [Janvier..Décembre] (MoisLibelle dans ton exemple, dont j'ai cru à tort qu'il comprenait aussi l'année, mes excuses ).

    Si tu fais ça normalement je serais tenté de penser que tu n'as pas d'erreur, mais...

    Je pensais utiliser l'attribut MoisOrdre et lui mettre en NameColumn "MoisLibelle". Les mois seraient ainsi classés et affichés selon leur libellé. Le problème est que, si je fais ça, j'ai une erreur de doublon
    Alors d'où peut venir cette erreur de doublon?

    (je suppose que c'est du au mois de janvier qui apparaît une fois par année, donc plusieurs fois, tout comme février, mars, etc ...)
    Heureusement pour les analystes tu as le droit d'avoir des attributs redondants, sinon adieu les niveaux de granularité (heureusement les catégories de produits doublonnent au niveau produit et SSAS support ça )

    Non la plus évidente c'est que pour une valeur de KeyColumn tu as plusieurs valeurs correspondantes de NameColumn (Ex: MoisOrdre=1 et MoisLibelle=Janvier 2009, Janvier 2010...).
    Mais tu dis que ce n'est pas le cas.
    On passe à la deuxième raison d'avoir un doublon: as-tu des relations entre tes attributs (onglet AttributeRelationships), par hasard est ce que cet attribut [Mois de l'Année] serait en relation avec l'attribut [Année]?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant BI
    Inscrit en
    Mai 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant BI
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Merci pour le document, je vais regarder ça dès que je peux.

    Je ne connais pas vraiment le nom des différents types de relations donc je remets le schéma que j'avais fait.

    Pour les relations d'attributs, au tout départ j'avais mis :
    Date -> JourLibelle (avec JourOrdre et Jour) -> MoisLibelle (avec MoisOrdre et Mois) -> Annee (avec AnneeLibelle)

    Ce qui me permettait dans les propriétés de faire un "OrderBy : AttibutKey" et de lui mettre "MoisOrdre" ou "JourOrdre".

    Comme ça ne marchait pas, j'ai supprimé toutes les relations et j'ai tout "mis" dans "Date".

    Après, cela peut venir de la table utilisée par la dimension (j'ai récupéré le projet en cours, je dois utiliser la table précédemment créée). Elle comporte en effet plusieurs lignes avec seulement les champs associés à l'Année renseignés (les mois et les jours sont alors à -1) et d'autres avec seulement les champs associés au Mois et l'Année renseignés (cette fois ci, seuls les jours sont à -1). En supprimant ces lignes (jour et mois à -1) pour tester, la dimension peut être traitée sans erreur de doublon mais c'est le cube qui ne peut plus l'être (je ne saurais pas trop expliquer pourquoi par contre, je manque un peu de connaissance à ce sujet). Je ne peux par contre pas modifier le cube.

    Je ne sais pas si ça aide à expliquer mes propos ? En tout cas merci !

  6. #6
    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
    Date -> JourLibelle (avec JourOrdre et Jour) -> MoisLibelle (avec MoisOrdre et Mois) -> Annee (avec AnneeLibelle)
    Ne cherche pas plus loin ton erreur est là.
    Lorsque tu définis la relation MoisLibelle (avec MoisOrdre et Mois) -> Annee (avec AnneeLibelle) tu dis à SSAS chaque Annee est une aggrégation des MoisLibelle, ce qui signifie aussi que chaque MoisLibelle a un unique parent au niveau Annee, que chaque valeur de MoisOrdre correspond à une valeur unique de Annee. Ce qui est faux dans ton cas, d'où l'erreur.

    j'ai supprimé toutes les relations et j'ai tout "mis" dans "Date".
    Dans ton cas précis avec les périodes "relatives" c'est ce qu'il fallait faire. Dans le cas d'un vrai calendrier (avec des mois type "Janvier 2011") les relations seraient justes.

    Elle comporte en effet plusieurs lignes avec seulement les champs associés à l'Année renseignés (les mois et les jours sont alors à -1)
    Très bizarre cette dimension... On dirait une espèce de ParentChild mise à plat étrange...

    En supprimant ces lignes (jour et mois à -1) pour tester, la dimension peut être traitée sans erreur de doublon mais c'est le cube qui ne peut plus l'être
    Si ces lignes de dimension correspondaient à des faits dans le cube c'est normal qu'il ne soit pas content si tu les supprimes .

  7. #7
    Membre à l'essai
    Homme Profil pro
    Consultant BI
    Inscrit en
    Mai 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant BI
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Ne cherche pas plus loin ton erreur est là.
    Justement non (ou pas que), j'ai des doublons avec ces relations ET j'ai les doublons après avoir tout mis dans "Date".

    Ce qui me parait trèèès étrange étant donné qu'il n'y a plus de relations d'attributs.

    C'est pour ça que j'ai parlé de la structure de la table, qui me parait très étrange aussi.

    Pour donner un exemple (c'est toujours plus précis) :

    Date............Annee.....Mois.....Jour.....AnneeLibelle...MoisLibelle....JourLibelle....MoisOrdre.....JourOrdre
    2009..............2009.....-1........-1...........2009.........Inconnu......Inconnu............0..............0
    2008..............2008.....-1........-1...........2008.........Inconnu......Inconnu............0..............0
    04/2009.........2009......4.........-1...........2009...........Avril.........Inconnu...........04.............0
    03/2009.........2009......3.........-1...........2009...........Mars.........Inconnu...........03.............0
    10/03/2009.....2009.....31........10...........2009...........Mars..........Mardi.............03.............0

    Et je me demande si finalement c'est pas cette structure qui pourrait poser problème ?

  8. #8
    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
    Et je me demande si finalement c'est pas cette structure qui pourrait poser problème ?
    Effectivement on dirait une ParentChild qui se serait accouplée à une hiérarchie en rateau. L'enfant est assez laid .
    Après les duplicate encore une fois c'est pour trois raisons
    1) KeyColumn à NULL
    2) KeyColumn avec plusieurs NameColumn différentes
    3) AttributeRelationship fausse (i.e. dans une relation a -> b une même valeur de l'attribut a correspond à plusieurs valeurs de l'attribut b).

    Quel est le message qui pète au process exactement quand tu enlèves les AttributeRelationships et que tout est lié à la clé de dim?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Consultant BI
    Inscrit en
    Mai 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant BI
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Pour la structure de la table je suis assez d'accord avec toi ! Mais l'avis du nouveau stagiaire n'est pas toujours écouté ...

    Alors alors ... J'ai un peu bidouillé suite à ce que tu m'as expliqué et je n'arrive plus à obtenir l'erreur de doublon (bon ou mauvais signe, je sais pas encore) mais une nouvelle erreur est survenue (espérons que soit signe de progrès ). Je ne pourrais donc pas te coller le message d'erreur mais en gros c'était le message d'erreur de doublon classique ("Erreur de doublons blablabla qui vient de la colonne machin"). Par contre, le fait de retirer les AttributeRelationships ne me faisait pas sauter cette erreur.

    Donc, la nouvelle erreur est : Erreurs dans le module d'accès à la base de données principale. La taille spécifiée pour une liaison étant trop petite, une ou plusieurs colonnes ont été tronquées.

    Je n'ai jamais eu ça avant (vu que j'arrivais à traiter ma dimension). En cherchant un peu, j'ai vu qu'il s'agissait d'un problème de "Clé d'attribut trop petite" ... mais si je modifie cette clé (avec des clés combinées) je retombe sur le premier problème : ne plus avoir les "Janvier" groupés ...
    Et comme je ne peux pas modifier les données de la table ...

    Ah, pas facile les débuts en BI ! Merci du temps passé à me répondre en tout cas

  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
    Si tu regardes tes attributs KeyColumn et NameColumn sont typés dans la dimension (datatype, longueur...). Tout cela est initialisé à la longueur du champ que tu as utilisé à l'origine. Si tu changes de KeyColumn/NameColumn tu te retrouves avec des différences entre la dimension et la DSV et il faut resynchro, soit à la main soit avec des petits outils sympa.

    Installe BIDS Helper (dans tous les cas c'est nécessaire ) un excellent addin, que dis-je un must have. Dans les features dudit addin il y a celle ci qui permet de voir les différences et de synchroniser les tailles des bindings des KeyColumn et NameColumn avec les tailles dans la DSV, ce qui t'enlève l'erreur en question (tailles de liaison, binding size en VO).

  11. #11
    Membre à l'essai
    Homme Profil pro
    Consultant BI
    Inscrit en
    Mai 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant BI
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 29
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour toutes tes réponses ! Même si le problème n'est pas totalement résolu, j'ai compris pas mal de choses sur SSAS.

    Pas encore eu l'occasion de tester BIDS Helper mais je sens que ça va être très utile. Je vais essayer de faire avec ça.

    Merci encore !

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

Discussions similaires

  1. Question sur une dimension temps bien spéciale
    Par chagala dans le forum Conception/Modélisation
    Réponses: 3
    Dernier message: 13/03/2011, 18h30
  2. Réponses: 4
    Dernier message: 06/04/2010, 11h41
  3. [9.2i] Créer une dimension temps pour un DWH
    Par alpachico dans le forum Oracle
    Réponses: 5
    Dernier message: 28/10/2005, 15h00
  4. [Newbies] Question sur une technologie XML a utiliser
    Par superraider dans le forum Windows
    Réponses: 3
    Dernier message: 21/10/2005, 10h01
  5. [jdbc] question sur une connection
    Par berg dans le forum JDBC
    Réponses: 2
    Dernier message: 10/09/2005, 08h29

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