Limite dimensione a 64 bit per struttura memorizzazione di aggregazione

Un profilo cubo di memorizzazione di aggregazione (ASO) Essbase non può superare i 64 bit per dimensione.

Il numero di bit necessari per una dimensione è il numero massimo di bit utilizzati da qualsiasi figlio di livello 0, inclusi i figli di livello 0 nelle gerarchie alternative e nelle dimensioni attributo associate. Ai fini della numerazione dei membri, le dimensioni attributo vengono trattate come gerarchie alternative delle relative dimensioni base.

In generale, la formula per determinare il numero di bit richiesti per qualsiasi membro di una dimensione può essere espressa come segue:

#_bits_member’s_parent + log(x)

dove x è il numero di figli dell'elemento padre.

Ad esempio, se il padre del membro è il membro A, che richiede 5 bit e A ha 10 figli, il numero di bit richiesti da ciascun figlio è:

5 +log(10) = 9 bits

Il membro superiore di una dimensione o gerarchia in genere utilizza 0 bit. Tuttavia, quando una o più prime generazioni sono costituite da membri solo etichetta, i membri solo etichetta non ricevono numeri membro (perché non sono considerati membri memorizzati). Pertanto, se nella prima generazione non solo di tipo etichetta sono presenti membri x, tali membri utilizzano bit di log(x). Il resto dei bambini sotto di loro sono numerati normalmente.

Analogamente, se una dimensione o una gerarchia è dinamica, solo i membri di livello 0 memorizzati o condivisi ricevono numeri di membro. Il numero di bit richiesti per tali membri è log(x), dove x è il numero di membri di livello 0 memorizzati o condivisi, ovvero il numero di membri di livello 0 che non sono membri formula.

Se, tuttavia, qualsiasi gerarchia alternativa dispone di membri di livello 0 memorizzati (non condivisi), ogni membro di ogni gerarchia nella dimensione (incluse le dimensioni degli attributi associati) utilizza un bit log (x) aggiuntivo, in cui x è il numero totale di gerarchie e dimensioni degli attributi associati per questa dimensione di base.

Nell'esempio seguente viene utilizzata la dimensione Prodotti nel database ASOsamp.Basic.


Questa immagine mostra la dimensione Prodotti, come descritto nel testo che segue l'immagine.

La dimensione Prodotti ha due gerarchie: Tutte le merci e Merce di fascia alta, che è una gerarchia alternativa. Merce di fascia alta con un membro di livello 0 memorizzato: membro memorizzato. Alla dimensione Prodotti non sono associate dimensioni attributo.

Tutti i prodotti Merchandise e High End Merchandise utilizzano log(2) = 1 bit.

Nota

Se la gerarchia alternativa Merce di fascia alta non dispone di membri di livello 0 memorizzati, i membri di livello superiore di ogni gerarchia (e le dimensioni attributo associate) utilizzeranno ciascuno 0 bit.

Il calcolo del numero di bit richiesti da ciascun figlio di livello 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

Computer e periferiche membro ha lo stesso numero di bit (3) del suo genitore Altro.

I bit massimi utilizzati da qualsiasi bambino di livello 0 nella dimensione Prodotti sono 7 (Figli di Fotocamere Digitali e Figli di Televisori). Pertanto, Products utilizza 7 bit, che è inferiore al limite di dimensione di 64 bit.

Se la dimensione supera i 64 bit:

  • Essbase genera il seguente errore durante il salvataggio del profilo:

    Hierarchy [DimensionName] is too complex. It exceeds the maximum member number width of 64 bits. See application log for details.
  • Essbase registra messaggi simili ai seguenti nel log dell'applicazione:

    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

Per correggere l'errore, utilizzare uno dei seguenti suggerimenti:

  • Se possibile, eliminare alcuni pari livello di uno qualsiasi dei membri a cui si fa riferimento nei messaggi. Ridurre il numero di fratelli con una potenza di due consente di risparmiare un po'. Ad esempio, supponiamo che level0member, che contribuisce 5 bit al numero membro, abbia 18 fratelli, incluso se stesso. Ridurre il numero di fratelli a 16 o meno consente di risparmiare un bit perché log(16) = 4. Allo stesso modo, riducendo il numero di fratelli a 8 o meno salva due bit.

  • Riclassificare alcuni pari livello di membri a cui si fa riferimento nei messaggi. Ad esempio, spostare la metà dei 18 fratelli di level0member in un altro genitore che non ha così tanti figli. In alternativa, creare un nuovo padre come fratello di livello 1 genitore e spostare metà dei figli di livello 1 genitore sotto il nuovo membro. Questo approccio consente di risparmiare un po'.

  • Combinare alcuni livelli intermedi. Ad esempio, spostare level0member, e tutti i suoi fratelli, per essere figli di level2parent e quindi rimuovere level1parent. Questo approccio è più coinvolto, ma può salvare molti bit.