Komprimierungsdimension für Aggregate Storage-Cubes

Die Auswahl einer Komprimierungsdimension für den Essbase Aggregate Storage-(ASO-)Cube kann sich erheblich auf die Performance auswirken. Standardmäßig handelt es sich um die Accounts-Dimension. Ein guter Kandidat ist eine Dimension, die Datenkomprimierung optimiert und gleichzeitig die Abrufperformance beibehalten.

Durch das Ändern der Komprimierungsdimension ist eine vollständige Neustrukturierung des Cubes ausgelöst. Die Komprimierungsdimension muss eine einzelne dynamische Hierarchie sein. Wenn die Dimension eine andere Hierarchieeinstellung besitzt, z.B. mehrere Hierarchien, wird sie automatisch auf einer einzelnen dynamischen Hierarchie festgelegt. Die ursprüngliche Hierarchieeinstellung geht verloren (durch das Festlegen einer anderen Dimension als Komprimierungsdimension wird die ursprüngliche Hierarchieeinstellung nicht zurückgegeben). Attribute-Dimensionen sowie Dimensionen, denen Attribute zugeordnet sind, können keine Komprimierungsdimensionen sein und auch keine Dimensionen.

Hinweis:

Die Informationen in diesem Thema gelten für geladene Datenbanken. Siehe Daten in Aggregate Storage-Cubes laden.

Abrufleistung beibehalten

Da Komprimierungsdimensionen dynamisch berechnet werden, müssen Sie bei der Auswahl einer Komprimierungsdimension Designüberlegungen für dynamisch berechnete Dimensionen berücksichtigen. Dynamische Dimensionen werden zum Zeitpunkt des Abrufs berechnet, sodass die Datenabrufzeit länger ist als für gespeicherte Hierarchien.

Wenn eine Dimension mit einer großen Anzahl von Elementen der Ebene 0 als Komprimierung getaggt wird, dauern Abfragen der oberen Ebene länger, da viele Elemente der Ebene 0 abgerufen werden müssen. Wenn Benutzer viele Abrufe auf oberer Ebene für eine große Dimension ausführen, ist dies kein geeigneter Kandidat für eine Komprimierungsdimension.

Komprimierungsschätzungsstatistiken anzeigen

Sie können detaillierte Komprimierungs- und Abfragestatistiken in der Essbase-Weboberfläche, der MaxL oder der REST-API anzeigen. Mit diesen Schätzungen können Sie die beste Dimension auswählen, die als Komprimierungsdimension verwendet werden soll. Für jede Dimension können Sie die Anzahl der gespeicherten Elemente der Ebene 0 anzeigen, was sich auf die Abrufperformance auswirkt, die durchschnittliche Bundle-Füllung und die durchschnittliche Wertlänge, die sich auf die Komprimierung auswirken, sowie die Größe der Ebene 0.

Um die Statistiken anzuzeigen, wählen Sie eine der folgenden Methoden:

  • Die Essbase-Weboberfläche. Beispiel:


    Geschätzte Komprimierungsinformationen für den ASO-Cube, wenn verschiedene Dimensionen hypothetisch als Komprimierungsdimension verwendet werden. Mit diesen Schätzungen können Sie die beste Dimension auswählen, die als Komprimierungsdimension verwendet werden soll. Die zurückgegebenen Statistiken umfassen Dimensionsname, Is Compression (true/false), Stored Level0-Elemente, Average Bundle Fill, Average Value Length und Level0 (MB).

  • Die Aggregate Storage-Version der Abfragedatenbank-MaxL-Anweisung. Beispiel:

    query database ASOSamp.Basic list aggregate_storage compression_info;
  • Der REST-API-Endpunkt ASO-Komprimierungsinformationen abrufen.

Die folgenden Beschreibungen der einzelnen Komprimierungs- und Abfragestatistiken finden Sie.

Gespeicherte Elemente von Ebene 0

Dimensionen mit einer großen Anzahl gespeicherter Elemente von Ebene 0 haben keine hervorragende Performance, wenn sie als Komprimierung gekennzeichnet sind Wie bei jeder dynamisch berechneten Dimension ist das Abrufen von Komprimierungsdimensionen auf oberen Ebenen im Allgemeinen langsam.

Durchschnittliche Bundle-Füllmenge

Die Komprimierung ist effektiver, wenn Werte in aufeinanderfolgenden Elementen in Dimensionen oder Hierarchien gruppiert werden, statt sie über die Modellstruktur mit vielen #MISSING-Daten zwischen die Werte zu verteilen. Essbase spart Speicher, indem Informationen zur Position und zum Inhalt der Gruppen gespeichert und nicht separat für die einzelnen Elemente gespeichert wird. Die durchschnittliche Bündelfüllung ist die durchschnittliche Anzahl der in den Gruppen gespeicherten Werte. Sie kann von 1 bis 16 variieren, wobei 16 am besten ist. Wenn Sie eine Komprimierungsdimension mit einer höheren durchschnittlichen Bündelfüllung auswählen, bedeutet dies, dass die Datenbank besser komprimiert wird.

In einigen Modellstrukturen können Sie das Komprimieren verbessern, indem die Zahlen in der Komprimierungsdimension so sortiert werden, dass Elemente, die häufig aufgefüllt werden, gruppiert sind. Wenn aufgefüllte Elemente gruppiert werden, passen mehr Werte in das jeweilige Bündel. Dadurch wird die durchschnittliche Bündelfüllung erhöht und wird die Komprimierung verbessert.

Durchschnittliche Wertelänge

Die durchschnittliche Wertlänge ist die durchschnittliche Speichergröße in Byte, die für die gespeicherten Werte in den Zellen erforderlich ist. Sie kann von 2 Byte bis 8 Byte variieren, wobei 2 Byte am besten ist. Ohne Komprimierung sind 8 Byte notwendig, um einen Wert in einer Zelle zu speichern. Mit Komprimierung können abhängig von der Wertlänge weniger Byte erforderlich sein. Beispiel: Für 10,050001 können auch bei Komprimierung 8 Byte erforderlich sein, aber für 10,05 sind möglicherweise nur 2 Byte erforderlich (4 Byte zum Speichern nach Komprimierung). Bei Dimensionen mit einer kleineren durchschnittlichen Wertlänge wird die Datenbank besser komprimiert.

Durch das Runden der Datenwerte auf maximal zwei Stellen nach dem Dezimalkomma kann die durchschnittliche Wertlänge reduziert und somit die Komprimierung verbessert werden.

Erwartete Größe der Ebene 0

Dieses Feld gibt die geschätzte Größe der komprimierten Datenbank an. Eine kleinere erwartete Größe der Ebene 0 gibt an, dass durch das Auswählen dieser Dimension eine bessere Komprimierung erwartet wird.