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 :

Problème de doublons sur une dimension et une hiérarchie [2008]


Sujet :

SSAS

  1. #1
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Points
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Par défaut Problème de doublons sur une dimension et une hiérarchie
    Bonjour à tous,

    Je rencontre le problème suivant :

    J'ai une table client contenant 3 colonnes structurée de la maniere suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Code_client  Branche  Société
    C1..............B1..........S1
    C2..............B2..........S1
    C3..............B1..........S2
    C4..............B3..........S2
    ...
    Les clients appartiennent à des branches et à des sociétés.
    La clé unique de ma table est le code client

    Je crée ma dimension client avec mes 3 attributs Code_client, branche et société.

    Je passe à mes hiérarchies :
    Si je crée une hiérarchie simple Société - client, ça marche
    Si je crée Branche - Client ça marche aussi
    mais dés que je veux faire Société - branche - client je me heurte sans cesse au problème de doublon sur des clés d'attribut.
    Je précise que j'ai créé mes relation d'attribut de la façon suivante : client -> branche -> région.

    J'ai lu qu'il fallait modifier le keycolumns de mes attributs pour le rendre unique en mettant des clés composites. J'ai essayé 36 combinaisons mais rien ne fonctionne : help ! comment faut il faire ?

    je m'arrache les cheveux depuis ce matin sur ce problème !

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Points
    2 883
    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
    Par défaut
    C'est un petit peu le même problème que ce sujet là: http://www.developpez.net/forums/d92...es-dattributs/

    A savoir simplement que SSAS procède de cette manière avec les AttributeRelationships: il part du niveau le plus fin et cherche le membre parent en suivant les chemins d'aggrégations que tu as défini.

    Dans ton cas il part du client, C1 par exemple, et cherche son "parent", le niveau supérieur, à savoir Branche. Il regarde la KeyColumn, il n'y a qu'un client C1, le parent est donc B1.
    Il continue, il prend tous les membres de "Branche" qui s'appellent B1 (i.e. KeyColumn=B1) et cherche le parent... et là patatras: B1 a deux parents possibles, S1 et S2 et ça c'est interdit.

    J'ai lu qu'il fallait modifier le keycolumns de mes attributs pour le rendre unique
    Bien vu, pour que chaque membre de chaque niveau dans le design d'aggrégation n'ai qu'un seul parent pour une KeyColumn donnée. Cela signifie que le niveau branche n'a pas pour clé uniquement la colonne Branche (tu as deux branches de même clé qui sont en réalité différentes, car de sociétés différentes). Tu dois prendre les colonnes Branche et Société, et là tu as bien B1S1 et B1S2 qui sont deux branches différentes, disposant chacune d'une société mère unique pour leur KeyColumn.

  3. #3
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Points
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Par défaut
    Ok, je comprends bien le mécanisme pour une hiérarchie et je vais essayer de le mettre en œuvre.

    Par contre, j'ai la même erreur sur une dimension qui ne contient pas de hiérarchie. Et effectivement, en regardant le message déjà posté dont tu fournis le lien
    http://www.developpez.net/forums/d92...es-dattributs/

    certains attributs peuvent se retrouver plusieurs fois de manière identique dans des enregistrements différents. par exemple j'ai un statut = 0 actif et = 1 inactif. Si je met une clé unique au niveau du Keycolum, je ne vais plus avoir d'erreur mais lorsque l'utilisateur voudra filtrer sur ce statut, il verra n fois actif et n fois inactif dans la liste déroulante, non ?

  4. #4
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Points
    2 883
    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
    Par défaut
    En relisant le thread que tu as reposté j'ai été un peu rapide en besogne. Dit rapidement il y a deux raisons pour se prendre le doublon de clés d'attributs:
    - Un problème d'AttributeRelationships (cf plus haut, souvent dans le cas où on a mis en place des hiérarchies U mais l'un est l'autres peuvent exister séparément)
    - Un problème de NameColumn: quand à une valeur de KeyColumn peuvent correspondre plusieurs valeurs de NameColumn: comment choisir lequel afficher. Cas typique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Annee;Mois;Label
    2001;01;Janvier 2001
    ...
    2002;01;Janvier 2002
    Si je ne prends que Mois comme KeyColumn et Label comme NameColumn SSAS crashe en m'expliquant que pour le membre de clé 01 il existe plus d'un label possible.

  5. #5
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Points
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Par défaut
    oui, je comprends bien tes explications mais :

    1/ cela ne répond pas à la problématique posé : si j'ai une colonne avec un statut = 0 actif et = 1 inactif, en mettant une clé unique ça résout l'erreur mais lorsque l'on navigue sur cet élément de la hiérarchie, on voit des dizaines de fois la même valeur s'afficher (dans mon exemple des dizaines de 0 et des dizaines de 1) alors qu'il n' y a en fait que 2 statut distinct...

    2/ c'est à ni rien comprendre ! : dans ma dimension j'ai d'autres colonnes dans le même cas (avec des doublons à la pèle) et cela passe comme dans du beurre lors du traitement de la dimension ! et dans ce cas le résultat attendu dans la navigation est celui que j'escompte : il fait un distinct sur la liste et les éléments n'apparaissent bien qu'une fois. Comment expliquer ces différences ?

  6. #6
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Points
    2 883
    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
    Par défaut
    Je te confirme tu as parfaitement le droit d'avoir un membre qui n'est pas unique dans une hiérarchie... Et heureusement! Ton attribut Statut n'a bien une attribute relationship qu'avec l'attribut clé? Dans ce cas KeyColumn sur statut et ca devrait passer... Tu as quoi comme erreur exactement sur statut? Son libellé c'est quoi?

  7. #7
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Points
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Par défaut
    La, c'est tout simple, je ne suis même pas sur une hiérarchie. J'ai ma dimension AFFAIRE qui contient un attribut AVANCEMENT (= 0 pour actif , = 1 pour inactif). Pour le moment il n'y a pas de libellé.
    Ma keyColumns est AVANCEMENT. Mon NameColumn est <aucun>.

    le message d'erreur est :
    Un doublon de clé d'attribut a été trouvé lors du traitement de*: Table*: 'dbo_DIM_AFFAIRE', Colonne*: 'AVANCEMENT', Valeur*: '0'. L'attribut est 'AVANCEMENT'.

    dans ma relation d'attribut j'ai : CODE AFFAIRE -> AVANCEMENT

    en pièce jointe les 2 copy d'écran correspondantes :
    Images attachées Images attachées   

  8. #8
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Points
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Par défaut
    Je crois avoir trouvé ! il y avait des valeurs null dans mon attribut AVANCEMENT. En remplaçant dans ma table les valeurs null par 0 je n'ai plus l'erreur. Ce qui explique que je n'avais pas le problème sur d'autres attributs qui eux étaient tous renseignés.

    Crois tu que cela puisse venir de la ?

  9. #9
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Points
    2 883
    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
    Par défaut
    Je te confirme AS pète aussi cette erreur quand tu as des NULL en KeyColumn je n'y pensais plus!

  10. #10
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Points
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Par défaut
    Un grand merci pour ton aide. Je vais avancer sur mon cube.

    Bonne journée.

  11. #11
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Points
    2 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Par défaut
    On se fait souvent avoir par cette gestion des NULL.
    Cela oblige à remplir la colonne avec une autre valeur qui n'est pas utile alors que cela prendra beaucoup plus de place que du NULL.

  12. #12
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Points
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Par défaut
    Oui, tout à fait. C'est curieux que SSAS microsoft n'ai rien prévu pour gérer ce cas. Il aurait pu prévoir un UnknownMember un peu comme dans la définition d'une relation entre table de fait et dimension.

    Et c'est d'autant plus étrange que sur certains autres attributs, j'ai des null et ça passe très bien au traitement (allez savoir pourquoi !).

  13. #13
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Points
    2 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Par défaut
    Ça va dépendre des relations que tu as.
    Si un NULL dans un champs implique systématiquement les mêmes valeurs dans les autres champs, c'est ok.

  14. #14
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    217
    Points
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 217
    Points : 103
    Par défaut
    C'est à dire ?

    j'ai une dimension simple, sans hiérarchie. elle possède un quinzaine d'attributs, tous de type regular et wchar. Aucun de ces attributs ne pointe ou n'est en relation avec autre chose que ma clé de dimension. dans ma table, j'ai des valeurs NULL + des valeurs renseignées pratiquement sur chacun de ces attributs. Certains ne passent pas (j'ai du forcer des valeurs par défaut lors de l'alimentation de ma base décisionnelle) d'autres oui ...

    que veut dire :
    Si un NULL dans un champs implique systématiquement les mêmes valeurs dans les autres champs,

  15. #15
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Points
    884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Par défaut
    Bonjour,

    Cela dépend pour beaucoup du type de la colonne SQL source. C'est souvent parce que c'est une colonne de type bit (boolean) que les null ne peuvent être processés par AS.
    Généralement ce que je fais, c'est une colonne dérivée avec des string 'yes'/'no'.

  16. #16
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Points
    2 883
    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
    Par défaut
    Bah de toute manière le principal problème vient du NullProcessing de ton attribut: basiquement avec un NullProcessing en Automatic (le défaut), cela fonctionne en mode ZeroOrBlank pour les attributs: les chaînes NULL sont converties en '' (chaîne vide), et les types numériques en 0.
    Or si tu as déjà une "vraie" valeur de KeyColumn qui vaut 0 ou '' ça pète car comme cette conversion a lieu après la requête SELECT DISTINCT du processing sur la colonne source tu te retrouves avec deux valeurs identiques. Idem avec une vraie valeur à chaîne vide.
    C'est souvent pour ça que les gens se mangent l'erreur: une valeur à NULL et une à 0 coexistant qui sont reconverties en 0 toutes les deux. D'où l'idée d'éviter des NULL dans ce qu'on envoie à AS.

  17. #17
    Membre éclairé
    Avatar de patriceharel
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    466
    Points
    884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 466
    Points : 884
    Par défaut
    Nickel, c'est l'info que je cherchais :

    cette conversion a lieu après la requête SELECT DISTINCT du processing
    Je ne comprenais pas pourquoi mes attributs booléens posaient problème. Maintenant c'est bon.

    Merci François

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

Discussions similaires

  1. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 18h01
  2. Réponses: 4
    Dernier message: 15/10/2009, 14h33
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 14h35
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48
  5. Réponses: 2
    Dernier message: 17/04/2007, 18h14

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