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.
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.
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:
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:
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.
Bei Spalten mit derselben Struktur können die Daten weiter komprimiert werden, indem die Werte entweder in aufsteigender oder absteigender Reihenfolge angeordnet werden.
Anhand dieser richtig sortierten Spalte können Sie sehen, dass die Methode „Lauflängenkodierung“ jetzt eine Datenstruktur mit einer Zeile weniger zurückgibt.
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.
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.
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.
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.
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:
Kopieren Sie als Nächstes die gesamte Spalte und fügen Sie sie als Value ein .
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.
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
In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.
In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.
In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.
Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.
Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.
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.
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