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 :

[2K8] Fonctions d'agrégations et additivité


Sujet :

SSAS

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [2K8] Fonctions d'agrégations et additivité
    Salut

    Je bloc ces jours ci sur un aspect d'analysis services qui est le concept d'additivité associé aux fonctions d'agrégations de genre Sum est additive, Min semi-additive et DistinctCount Non Additive

    Ce que je veux comprendre c'est d'abord si les valeurs d'additivité définissent des niveaux genre: additive => Semi Additive => Non Additive(ou le contraire)

    Et quel est son impacte, car personnellement avec les testes que j'ai fait je ne trouve aucune différence dans le comportement d'agrégation, et ceux que j'utilise un SUM, un MIN ou un DistinctCount. La seule chose que j'ai constaté, c'est que lors ce que je choisi None aucune valeur ne s'affiche quelque soit les dimensions que j'inclu, ce qui ressemble plus à un bug qu'autre chose de significatif

    Merci d'avance

  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
    Tu as effectivement
    - None qui n'aggrège pas
    - Count et DistinctCount qui comptent
    - Sum qui est additive
    - les fonctions semi additives, qui sont additives sur toutes les dimensions sauf le temps.

    Prends le temps de lire ces deux petits articles, ça devrait clarifier.

    http://msdn.microsoft.com/en-us/library/ms365396.aspx
    http://msdn.microsoft.com/en-us/library/ms175356.aspx

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    je vous remerci pour votre réponse

    enfaite, ce n'est pas les fonctions qui me pose problème, elle sont assez explicite mais plutot cette notion d'additivité et l'utilisation de None

    J'ai pris l'exemple de MIN qui est dite Semi additive(donc à priori non agrégeable avec une dimension temps), quand je l'agrège avec une dimension temps j'ai un résultat normale, d'ailleur pourquoi ça devrai etre autrement ?

    De l'autre coté, quand j'utilise None, aucun résultat n'est retourné, meme si je combine toute les dimension pour avoir les noeuds feuilles !

    ça sera cool si quelqu'un me donnait des détails sur la notion d'additivité ainsi que l'utilisation de None

  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
    J'ai pris l'exemple de MIN qui est dite Semi additive
    Euhhhh non!

    l'utilisation de None
    Disons simplement que c'est utile quand une mesure ne doit jamais s'aggréger sur aucun axe.

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Est ce que vous voulez dire que MIN n'est pas semi additive ? c'est portant ce que j'ai lu dans la doc

    Pour None, elle est trés pratique de part ça définition, mais comment ça s'utilise. j'ai essayer avec un exemple simple en rajoutant toute les dimension au browser pour éviter toute agrégation mais résultat: tableau vide !

    merci

  6. #6
    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 : 39
    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,

    Effectivement MIN n'est pas semi-additive.

    None doit permettre de voir la valeur du niveau feuille du groupe de mesure.
    Attention, le niveau feuille du groupe de mesure est différent du niveau feuille de la dimension.

    Pour t'en convaincre, créés un cube avec une seule dimension (Customer sur Adventure Works par exemple), puis une MDX avec le niveau ALL de ta dimension et une autre avec quelques membres. Dans le premier cas, la valeur de ta mesure sera nulle, dans l'autre tu aura une valeur.

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Un grand merci pour vous deux

    j'ai testé l'exemple de None ça marche super bien, exactement le résultat auquel on peut s'attendre. j'ai pas peu le faire marcher pour plusieurs dimension mais je doit avoir oublié un détail quelque part

    Il me reste juste le problème des semi additive, donc MIN ne l'est pas (pourtant! http://msdn.microsoft.com/fr-fr/libr...v=SQL.90).aspx ). Hormis ByAccount, quelles sont les fonctions qu'on considère comme semi additive?

  8. #8
    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 : 39
    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
    Il doit y avoir le LastChild, FirstChild, LastNonEmpty, FirstNonEmpty, AverageOfChildren et le ByAccount.

  9. #9
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci

    Une dernière question, est ce que quelqu'un connait les dimensions qui ne peuvent etre utiliser avec les fonctions Semi additives?

    Pour ByAccount c'est claire que elle ne marche qu'avec une dimension Account mais pour le reste ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 48
    Points : 56
    Points
    56
    Par défaut
    Je ne crois pas qu'il y a une régle pré-definie pour les dimensions à utiliser ou pas avec les fonctions semi-additives et tout dépend du contexte fonctionnel.

    et je te rejoins sur le fait que le MIN et le MAX soient semi additive (cf. http://technet.microsoft.com/fr-fr/l.../ms175623.aspx)

  11. #11
    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 : 39
    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
    Comme le dit François : "les fonctions semi additives, qui sont additives sur toutes les dimensions sauf le temps", ce qui n'est pas le cas pour Min et Max.

    Voici un extrait du livre de Chris Webb qui explique les différences.

  12. #12
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci pour vos réponses
    L'exemple donnée dans le livre me ramène au point de départ, j’ai rien compris à l’additivité

    Je pensais que lorsque la fonction est Semi-Additive, l’agrégation dans le temps ne donnait rien (null), mais ce n’est pas le cas dans l’exemple !

    Donc ça veux dire quoi qu’une fonction n’est pas additive avec le temps

    Par contre j’ai remarqué une chose, si on prend par exemple la fonction AverageOfChildren, lors de l’agrégation la moyenne est recalculé des données détaillées et non pas à partir des agrégats (la moyenne des moyennes <> la moyenne) contrairement aux fonctions Sum, count où la somme = la somme des sommes et Count = la somme des Count. Est-ce que ça ne serai pas ça finalement la définition de la semi additivité ?

  13. #13
    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
    Je pensais pas que ça pouvait torturer autant! Les fonctions semi additives sont des SUM sur tous les axes sauf sur l'axe temps. Sur cet axe elles sont définies différemment:
    AverageOfChildren fait la moyenne des niveaux fins pour chaque niveau aggrégé (comme tu le dis précédemment, mais ce n'est pas la définition de la semi additivité, si ce n'est que les aggrégations SA renvoient des valeurs issues des niveaux fins).
    FirstChild affiche le premier niveau fin et LastChild le dernier.
    FirstNonEmpty affiche le premier niveau fin non vide et LastNonEmpty le dernier non vide.

  14. #14
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [Résolu] [SSAS 2K8] Fonctions d'agrégations et additivité
    Torturé? non! mais je n'aime pas trop avoir des trous noires dans ma tete

    C’été juste un détail simple qui m’échappait j’en sais comment et qui est effectivement mentionné dans la réponse de françois et le lien de patrice c’est cela :
    Les fonctions semi additives sont des SUM sur tous les axes sauf sur l'axe temps

    Entre parenthèse, MIN et MAX ne respecte pas cette définition mais sont considérées comme semi additives dans les documentations officielles Microsoft, je pense que c’est juste due au faite quelle sont le plus souvent utilisé en pratique pour les agrégations temporelles

    Grand merci pour toutes vos réponses

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

Discussions similaires

  1. [sql] Erreur n'est pas fonction d'agrégat
    Par Jahprend dans le forum Access
    Réponses: 13
    Dernier message: 05/07/2006, 13h34
  2. [SQL-Serveur][Sybase]Fonctions d'agrégat imbriquées
    Par vincenteraptor dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/06/2006, 09h46
  3. Quel SGBD permet d'écrire ses fonctions d'agrégation SQL?
    Par Machin0410 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 28/03/2006, 17h31
  4. [SQL] Combiner fonction d'agrégation et DISTINCT .
    Par p@radox dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/12/2004, 17h11
  5. méssage d'erreur fonction d'agrégat
    Par developpeur_mehdi dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/03/2004, 12h42

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