LuckyTemplates-Komprimierungstechniken in DAX Studio

LuckyTemplates-Komprimierungstechniken in DAX Studio

In diesem Tutorial erfahren Sie mehr über die verschiedenen LuckyTemplates-Komprimierungstechniken in , die Ihnen bei der Optimierung Ihres Berichts helfen.

Nachdem die Daten von den Analysediensten in LuckyTemplates, Power Pivot und SSAS segmentweise geladen wurden , treten zwei Ereignisse auf. Der erste Grund besteht darin, dass sie versuchen, unterschiedliche Kodierungsmethoden zu verwenden, um Spalten zu komprimieren und so die Gesamtgröße des RAM zu reduzieren . Der zweite Grund besteht darin, dass sie versuchen, die beste Sortierreihenfolge zu finden, bei der sich wiederholende Werte zusammengefügt werden. Diese Methode erhöht auch die Komprimierung und verringert somit die Belastung des Speichers.

Analysis Services verwendet verschiedene Komprimierungstechniken. Dieses Tutorial behandelt insbesondere drei Methoden, nämlich Wertkodierung, Lauflängenkodierung und Wörterbuchkodierung. Im letzten Abschnitt dieses Tutorials wird erläutert, wie die Reihenfolge der Arbeiten in Analysis Services sortiert wird.

Inhaltsverzeichnis

LuckyTemplates-Komprimierungstechnik Nr. 1: Wertkodierung

Die erste heißt Wertkodierung.

Die Wertkodierung sucht nach einer mathematischen Beziehung zwischen jedem Wert in einer Spalte, um den Speicher zu reduzieren. Hier ist ein Beispiel in Microsoft Excel:

Diese Spalte benötigt 16.384 Bit, um die Werte zu speichern.

LuckyTemplates-Komprimierungstechniken in DAX Studio

Um die erforderlichen Bits zu berechnen, verwenden Sie zunächst die Funktion MAX() in Excel, um den höchsten Wert in den Spalten zu erhalten. In diesem Fall ist es 9144. Verwenden Sie dann die Funktion POWER(), um die erforderlichen Bits zu berechnen. Verwenden Sie das Argument POWER(2, X), wobei X ein beliebiger positiver Wert ist, der eine Antwort zurückgibt, die größer als der MAX-Wert ist. X stellt in diesem Fall auch die benötigten Bits dar. In diesem Beispiel ist der Wert von X also 14, was 16.384 ergibt . Daher benötigt die Spalte 14 Bit Speicherplatz.

Um die erforderlichen Bits mithilfe der Wertkodierung zu reduzieren, sucht VertiPaq nach dem MIN-Wert in der Spalte und subtrahiert ihn von jedem Wert. In diesem Fall beträgt der MIN-Wert in der Spalte 9003. Wenn Sie diesen Wert von der Spalte subtrahieren, werden die folgenden Werte zurückgegeben:

LuckyTemplates-Komprimierungstechniken in DAX Studio

Wenn Sie dieselben Funktionen und Argumente verwenden, können Sie sehen, dass der MAX-Wert für die neue Spalte 141 beträgt. Und die Verwendung von 8 als Wert von X ergibt 256 . Daher benötigt die neue Spalte nur 8 Bit.

Sie können sehen, wie komprimiert die zweite Spalte im Vergleich zur ersten Spalte ist.

Sobald die Daten komprimiert sind und Sie versuchen, die neue Spalte abzufragen, scannt die Storage Engine oder Vertipaq diese Spalte. Sie geben nicht einfach die neuen Werte der Spalte zurück. Stattdessen addieren sie den subtrahierten Wert, bevor sie das Ergebnis an den Benutzer zurückgeben.

Die Wertkodierung funktioniert jedoch nur bei Spalten, die ganze Zahlen oder Werte mit festen Dezimalzahlen enthalten.

LuckyTemplates-Komprimierungstechnik Nr. 2: Lauflängencodierung

Die zweite Kodierungsmethode heißt Lauflängenkodierung.

Durch die Lauflängenkodierung wird eine Datenstruktur erstellt, die den eindeutigen Wert, eine Startspalte und eine Zählspalte enthält.

Nehmen wir ein Beispiel:

LuckyTemplates-Komprimierungstechniken in DAX Studio

In diesem Fall wird angezeigt, dass in der ersten Zeile ein Rotwert verfügbar ist. Es stellt dann fest, dass der Schwarzwert in der zweiten Zeile beginnt und für die nächsten vier Zellen verfügbar ist. Es wird mit dem dritten Wert, Blau , fortgefahren, der in der sechsten Zeile beginnt und für die nächsten drei Zeilen verfügbar ist. Und das geht so lange, bis der letzte Wert in der Spalte erreicht ist.

Anstatt also die gesamte Spalte zu speichern, wird eine Datenstruktur erstellt, die nur Informationen darüber enthält, wo ein bestimmter Wert beginnt und wo er endet und wie viele Duplikate er hat.

LuckyTemplates-Komprimierungstechniken in DAX Studio

Bei Spalten mit derselben Struktur können die Daten weiter komprimiert werden, indem die Werte entweder in aufsteigender oder absteigender Reihenfolge angeordnet werden.

LuckyTemplates-Komprimierungstechniken in DAX Studio

Anhand dieser richtig sortierten Spalte können Sie sehen, dass die Methode „Lauflängenkodierung“ jetzt eine Datenstruktur mit einer Zeile weniger zurückgibt.

LuckyTemplates-Komprimierungstechniken in DAX Studio

Wenn Sie es also mit vielen unterschiedlichen Werten zu tun haben, empfiehlt es sich, die Spalte so optimal wie möglich zu sortieren. Dadurch erhalten Sie eine Datenstruktur mit weniger Zeilen, die wiederum weniger RAM belegt.

Die Lauflängenkodierung kann nicht auf Primärschlüssel angewendet werden, da Primärschlüsselspalten nur eindeutige Werte enthalten. Anstatt also für jeden Wert eine Zeile zu speichern, wird die Spalte so gespeichert, wie sie ist.

LuckyTemplates-Komprimierungstechnik Nr. 3: Wörterbuchkodierung

Die dritte Kodierungsmethode heißt Dictionary Encoding.

Durch die Wörterbuchkodierung wird eine wörterbuchähnliche Struktur erstellt, die den eindeutigen Wert einer Spalte enthält. Außerdem wird diesem eindeutigen Wert ein Index zugewiesen.

Schauen wir uns anhand des vorherigen Beispiels an, wie die Wörterbuchkodierung funktioniert. In diesem Fall wird den Werten Rot, Schwarz und Blau ein Index von 0, 1 bzw. 2 zugewiesen.

LuckyTemplates-Komprimierungstechniken in DAX Studio

Anschließend wird eine Datenstruktur erstellt, die der der Lauflängenkodierung ähnelt. Anstatt jedoch die tatsächlichen Werte zu speichern, speichert Dictionary Encoding den zugewiesenen Index jedes Werts.

LuckyTemplates-Komprimierungstechniken in DAX Studio

Dadurch wird der RAM-Verbrauch weiter reduziert, da Zahlen weniger Platz beanspruchen als String-Werte.

Durch die Wörterbuchkodierung wird außerdem der tabellarische Datentyp unabhängig. Das heißt, unabhängig davon, ob Sie eine Spalte haben, die in verschiedenen Datentypen gespeichert werden kann, spielt dies keine Rolle, da die Datenstruktur nur den Indexwert speichert.

Auch wenn es unabhängig ist, hat der Datentyp dennoch einen Einfluss auf die Größe des Wörterbuchs. Abhängig vom Datentyp, in dem Sie die Spalte speichern, schwankt die Größe des Wörterbuchs (oder der Datenstruktur). Die Größe der Spalte selbst bleibt jedoch gleich.

Je nachdem, welchen Datentyp Sie wählen, kann nach der Anwendung der Wörterbuchkodierung auf die Spalte anschließend die Lauflängenkodierung angewendet werden.

In diesem Fall erstellt Analysis Services zwei Datenstrukturen. Zuerst wird ein Wörterbuch erstellt und dann die Lauflängenkodierung darauf angewendet, um die Komprimierung der Spalte weiter zu erhöhen.

Sortierreihenfolge in Analysis Services

Lassen Sie uns im letzten Teil dieses Tutorials besprechen, wie Analysis Services über die optimale Art und Weise zum Sortieren von Daten entscheidet.

Schauen wir uns als Beispiel eine Spalte mit den Werten Rot, Blau, Schwarz, Grün und Rosa an. Auch ihnen sind die Nummern 1 bis 5 zugeordnet. Dies fungiert als Wörterbuch unserer Kolumne.

LuckyTemplates-Komprimierungstechniken in DAX Studio

Füllen Sie nun eine ganze Spalte in Excel mit diesen Werten. Verwenden Sie dieses Argument, um eine Spalte zu generieren, die diese Werte zufällig enthält.

LuckyTemplates-Komprimierungstechniken in DAX Studio

Ziehen Sie die Formel nach oben in die letzte Zeile. Klicken Sie auf OK , wenn das Popup-Fenster „ Großer Vorgang“ angezeigt wird. So wird es nun aussehen:

LuckyTemplates-Komprimierungstechniken in DAX Studio

Kopieren Sie als Nächstes die gesamte Spalte und fügen Sie sie als Value ein .

LuckyTemplates-Komprimierungstechniken in DAX Studio

Wenn Sie nun in Ihrem Excel-Dokument zur Option „ Datei“ gehen und auf „Info“ klicken , sehen Sie, dass die Spalte 14,1 MB belegt .

Um den RAM-Verbrauch zu reduzieren, können Sie die Spalte von A bis Z sortieren. Wenn Sie die Größe erneut überprüfen, können Sie feststellen, dass sie auf 12,5 MB reduziert wurde .

Die Reduzierung um 1,9 MB scheint nicht viel zu sein. Dies liegt daran, dass im Beispiel zur Veranschaulichung eine einzelne Spalte in Excel verwendet wurde. Excel ist nur auf 1 Million Zeilen beschränkt. In LuckyTemplates können Ihre Daten jedoch Milliarden von Zeilen und Spalten enthalten. Die Reduzierung des genutzten Platzes nimmt exponentiell zu.

Abschluss

Sobald Ihre Daten optimal sortiert sind, wendet Analysis Services je nach Datentyp eine der drei Komprimierungstechniken an.

Dadurch wird die Komprimierung Ihrer Daten erhöht, wodurch der auf Ihrem Gerät verbrauchte Speicher erheblich reduziert wird. Dadurch wird Ihr Bericht optimaler und lässt sich einfacher ausführen und laden.


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst