Limite de taille de dimension 64 bits pour l'outline en mode "aggregate storage"
L'outline d'un cube en mode "aggregate storage" (ASO) Essbase ne peut pas dépasser 64 bits par dimension.
Le nombre de bits requis par une dimension est le nombre maximal de bits utilisés par n'importe quel enfant de niveau 0, y compris les enfants de niveau 0 dans les hiérarchies alternatives et les dimensions d'attribut associées. Pour la numérotation des membres, les dimensions d'attribut sont traitées comme des hiérarchies alternatives de leurs dimensions de base.
En général, la formule permettant de déterminer le nombre de bits requis pour un membre d'une dimension peut être exprimée comme suit :
#_bits_member’s_parent + log(x)où x est le nombre d'enfants du parent.
Par exemple, si le parent du membre est le membre A, qui nécessite 5 bits, et que A a 10 enfants, le nombre de bits requis par chaque enfant est le suivant :
5 +log(10) = 9 bitsLe membre supérieur d'une dimension ou d'une hiérarchie utilise généralement 0 bit. Toutefois, lorsqu'une ou plusieurs générations supérieures sont composées de membres avec étiquette uniquement, les membres avec étiquette uniquement ne reçoivent pas de numéros de membre (car ils ne sont pas considérés comme des membres stockés). Par conséquent, s'il y a des membres x dans la première génération sans étiquette uniquement, ces membres utilisent des bits log(x). Les autres enfants en dessous sont numérotés normalement.
De même, si une dimension ou une hiérarchie est dynamique, seuls les membres de niveau 0 qui sont stockés ou partagés reçoivent des numéros de membre. Le nombre de bits requis pour ces membres est log(x), où x est le nombre de membres de niveau 1 qui sont stockés ou partagés (c'est-à-dire le nombre de membres de niveaux 0 qui ne sont pas membres de formule).
Toutefois, si des hiérarchies alternatives ont des membres de niveau 0 stockés (non partagés), chaque membre de chaque hiérarchie de la dimension (y compris les dimensions d'attribut associées) utilise un bit de journalisation (x) supplémentaire, où x est le nombre total de hiérarchies et de dimensions d'attribut associées pour cette dimension de base.
L'exemple suivant utilise la dimension Products dans la base de données ASOsamp.Basic :

La dimension Products comporte deux hiérarchies : All Merchandise et High End Merchandise, qui constituent une hiérarchie alternative. High End Merchandise a un membre stocké de niveau 0 : Stored Member. Aucune dimension d'attribut n'est associée à la dimension Products.
Membres Toutes les marchandises et les marchandises haut de gamme utilisent log(2) = 1 bit.
Remarques :
Si l'autre hiérarchie High End Merchandise n'avait pas de membres de niveau 0 stockés, les membres supérieurs de chaque hiérarchie (et les dimensions d'attribut associées) utiliseraient chacun 0 bit.
Le calcul du nombre de bits requis par chaque enfant de niveau 0 :
All Merchandise = 1 bit
Personal Electronics, Home Entertainment, Other = 1 + log(3) = 3 bits
Digital Cameras/Camcorders, Handhelds/PDAs, Portable Audio = 3 + log(3) = 5
Children of Digital Cameras/Camcorders = 5 + log(3) = 7
Children of Handhelds/PDAs = 5 + log(3) = 7
Children of Portable Audio = 5 + log(2) = 6
Televisions, Home Audio/Video = 3 + log(2) = 4
Children of Televisions = 4 + log(5) = 7
Children of Home Audio/Video = 4 + log(4) = 6
Computers and Peripherals = 3 + log(1) = 3 **
Systems, Displays, CD/DVD drives = 3 + log(3) = 5
Children of Systems = 5 + log(2) = 6
High End Merchandise = 1 bit
Flat Panel, HDTV, Stored Member = 1 + log(3) = 3 bits
Les ordinateurs membres et les périphériques ont le même nombre de bits (3) que leur parent Autre.
Les bits maximum utilisés par les enfants de niveau 0 dans la dimension Produits sont 7 (Enfants des appareils photo numériques et Enfants des téléviseurs). Par conséquent, Products utilise 7 bits, ce qui est inférieur à la taille limite de dimension de 64 bits.
Si la taille de la dimension dépasse 64 bits :
-
Essbase génère l'erreur suivante lors de l'enregistrement de l'outline :
Hierarchy [DimensionName] is too complex. It exceeds the maximum member number width of 64 bits. See application log for details. -
Essbase consigne des messages similaires aux messages suivants dans le journal de l'application :
Member number for member [level0member] requires [65] bits to encode Member [level0member] contributes [5] bits to member number Member [level1parent] contributes [20] bits to member number Member [level2parent] contributes [20] bits to member number Member [level3parent] contributes [20] bits to member number
Pour corriger l'erreur, utilisez l'une des recommandations suivantes :
-
Si possible, supprimez certains semblables de l'un des membres référencés dans les messages. Réduire le nombre de frères et sœurs d'une puissance de deux permet d'économiser un bit. Par exemple, supposons que level0member, qui apporte 5 bits au numéro de membre, a 18 frères et sœurs, y compris lui-même. La réduction du nombre de semblables à 16 ou moins permet d'économiser un bit car log(16) = 4. De même, la réduction du nombre de semblables à 8 ou moins permet d'économiser deux bits.
-
Reclassez des semblables de membres référencés dans les messages. Par exemple, déplacez la moitié des 18 frères et sœurs de level0member vers un autre parent qui n'a pas autant d'enfants. Vous pouvez également créer un nouveau parent en tant que semblable de level1parent et déplacer la moitié des enfants de level1parent sous le nouveau membre. Cette approche permet d'économiser un bit.
-
Combinez quelques niveaux intermédiaires. Par exemple, déplacez level0member et tous ses semblables pour qu'ils soient des enfants de level2parent, puis supprimez level1parent. Cette approche est plus impliquée, mais elle peut sauver de nombreux bits.