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, wie Sie eine Kennzahl in LuckyTemplates optimieren. Durch die Optimierung von Maßnahmen in Ihrem Bericht wird die Leistung Ihrer Codes bei der Gewinnung wertvoller Erkenntnisse und Daten verbessert. Außerdem lernen Sie die verschiedenen Auswertungsmethoden kennen und erfahren, wie Sie diese zur Optimierung Ihres Berichts anwenden können. Das vollständige Video dieses Tutorials können Sie unten in diesem Blog ansehen.
Inhaltsverzeichnis
1. Analysieren Sie die Leistung des Codes
In diesem Beispiel müssen Sie diesen Bericht optimieren:
Dies ist das Datenmodell, das Sie verwenden werden:
Die Jobs-Tabelle enthält alle Informationen zu allen Jobs, die in einem bestimmten Zeitraum ausgeführt wurden.
Diese Tabelle ist die Grundlage aller Maßnahmen, die Sie optimieren werden:
Zunächst müssen Sie die Leistung des Berichts testen.
Gehen Sie zur Registerkarte „Ansicht“ und wählen Sie „Leistungsanalysator“ . Klicken Sie dann auf Aufnahme starten und Visuals aktualisieren . Warten Sie, bis der Analysator das Bild rendert.
Sobald dies erledigt ist, öffnen Sie die Liste „Incentive-Aufschlüsselung“ und klicken Sie auf „Abfrage kopieren“ .
Wählen Sie als Nächstes „Externe Tools“ aus , um zu DAX Studio zu gelangen und sich den von LuckyTemplates generierten Code anzusehen.
Fügen Sie dann die kopierte Abfrage in den Arbeitsbereich ein.
Variablen in der Messung
Die erste Variable ist DateClosed , der Slicer im Dashboard. Es verwendet eine Spalte aus der Faktentabelle, um die Werte bestimmter Zeiträume im Slicer abzurufen.
Die nächste Variable ist JobLost , die prüft, ob die Job Lost-Daten falsch oder leer sind.
Die letzte Variable ist MatrixVisual . Dies ist das Herzstück des Codes. Es zeigt die von LuckyTemplates generierte zusammengefasste Spalte zum Füllen von Matrixvisuals. Es gruppiert den Jobverlusttyp in dieser Matrix und fügt die von den Slicern kommenden Filter ein. Anschließend werden erweiterte Spalten hinzugefügt.
Sobald die Ausführung in der Zusammenfassungsspalte abgeschlossen ist, werden die Ergebnisse im Bereich unter dem Code angezeigt.
LuckyTemplates verwendet das Ergebnis, um Matrixvisuals zu füllen.
Kalter Cache für DAX Studio
Als Nächstes müssen Sie die Zeit überprüfen, die für die Ausführung des gesamten Codes benötigt wurde. Aktivieren Sie dazu die Server-Timings und wählen Sie dann „ Cache löschen und dann ausführen“ aus .
Wenn Sie versuchen, eine Kennzahl in LuckyTemplates mithilfe von DAX Studio zu optimieren , ist es besser, im Cold-Cache-Szenario zu arbeiten, damit die erhaltene Zeit korrekt ist. Drücken Sie anschließend F5 und warten Sie, bis der Vorgang auf der Registerkarte „Server-Timings“ abgeschlossen ist .
Sobald der Vorgang abgeschlossen ist, können Sie sehen, dass die Gesamtausführungszeit 3,6 Sekunden beträgt. Die meiste Zeit verbrachte es in der Formel-Engine und 57 Millisekunden in der Speicher-Engine
Sie können auch sehen, dass 383 Speicher-Engine-Abfragen gefunden wurden. Von all diesen Abfragen werden 327 in den Speicher umgewandelt, damit sie wiederverwendet werden können.
2. Analysieren Sie eine Kennzahl in LuckyTemplates
Als nächstes müssen Sie diese drei identischen Maßnahmen optimieren.
Sie müssen diese Kennzahlen in eine andere Datei extrahieren und diese mit dem von Ihnen verwendeten Datenmodell verbinden.
Starten Sie anschließend die Server-Timings, um die Zeit zu sehen, die die drei Maßnahmen zum Auffüllen von Visuals benötigen.
Die Ergebnisse des Laufs zeigen, dass die Messungen 1,85 Sekunden benötigen, um ein Ergebnis abzurufen.
Das Ergebnis zeigt eine Tabelle bestehend aus 10 Zeilen und 3 erweiterten Spalten, die zu den zusammengefassten Spalten gehören.
Die Spalte „Verlusttyp“ enthält 10 eindeutige Werte, die der Code berechnet, um die Anreizprozentsätze zu erhalten.
Die vom Code benötigte Zeit ist exponentiell hoch. Hier und wann müssen Sie sie optimieren.
Die RB-Incentive%-Maßnahme in LuckyTemplates
Dies ist eine RB-Incentive%-Kennzahl in LuckyTemplates. Dies ist eine der drei Hauptmaßnahmen, die in diesem Beispiel verwendet werden.
Sie können sehen, dass versucht wird, den Anreizprozentsatz zu berechnen.
Es verfügt über eine Variable, JobType, die den Wert „Lost Type“ im aktuellen Filterkontext abruft. Außerdem wird geprüft, ob im aktuellen Filterkontext nur ein einziger Wert sichtbar ist. Funktion verwenden , damit jedes Mal, wenn eine Bedingung erfüllt ist, das entsprechende Ergebnis ausgegeben wird.
Dieser Maßnahmencode erzeugt viel Fett für den Speichermotor, wodurch sich die Gesamtdauer des Codes verlängert.
Gehen Sie nun zurück zu DAX Studio, um die Anzahl der von der Kennzahl generierten Speicher-Engine-Abfragen zu überprüfen.
Sie können sehen, dass die Ausführung 600 Millisekunden und 43 Speicher-Engine-Abfragen dauerte, um einfach Daten für die 10 Zeilen abzurufen.
Überprüfen Sie nun die Daten, die von der Speicher-Engine angefordert werden. In der ersten Abfrage gibt es einen Arbeitsplatzverlusttyp und DCOUNT des Arbeitsplatzverlusttyps.
Die nächste Abfrage enthält das Job-Abschlussdatum, das aus dem Slicer im Bericht stammt.
Im dritten Code sehen Sie einen weiteren Job Loss Type mit der Callback-Daten-ID.
In einer weiteren Zeile sehen Sie die wichtigsten Codezeilen.
Das erste, was Sie sehen, ist die der erhaltenen, in Rechnung gestellten und tatsächlichen Ausgaben für Aufträge.
Als nächstes kommt die WHERE- Funktion, die eine Bedingung und das entsprechende Ergebnis angibt. Das Ergebnis hängt von der Slicer-Auswahl und der Switch-Anweisung in der RB-Incentive%-Kennzahl ab.
Sie werden auch feststellen, dass der Code in den Zeilen 12 und 14 derselbe ist.
Wenn Sie nach rechts scrollen, können Sie sehen, dass es Zeilen mit denselben Abfragen gibt. Die Abfragen auf den Leitungen werden durch die switch-Anweisung in der RB-Incentive%-Kennzahl gesteuert.
Wenn Sie in LuckyTemplates zur Kennzahl „RB-Incentive %“ zurückkehren, können Sie sehen, wie oft eine Abfrage wiederholt wird und wie sich dies in den Abfragen der Speicher-Engine widerspiegelt.
Die Logik hinter IF und Switch
Um nun zu verstehen, warum die Abfragen mehrmals ausgeführt werden, müssen Sie die Logik der und SWITCH -Funktionen verstehen.
Sie müssen sie separat in einem Abfrageplan ausführen. Stellen Sie jedoch vorher sicher, dass Sie eine Verbindung zur Datenbank herstellen und den Abfrageplan aktivieren.
Führen Sie die SWITCH- Anweisung im Abfrageplan aus. Markieren Sie dann die Anweisung und drücken Sie die Eingabetaste.
Dadurch wird ein logischer Abfrageplan mit verschiedenen Vorgängen generiert.
Führen Sie als Nächstes die IF- Anweisung aus, indem Sie die Anweisung markieren und die Eingabetaste drücken.
Sie können sehen, dass derselbe logische Abfrageplan generiert wird.
Dies liegt daran, dass die Engine bei jeder Verwendung einer SWITCH-Funktion diese Funktion intern in eine IF- Anweisung umwandelt. Eine SWITCH- Anweisung wird jedoch empfohlen, da sie die Lesbarkeit Ihres Codes erhöht.
Danach müssen Sie verstehen, wie ein Code innerhalb der IF- oder SWITCH -Funktion ausgeführt wird.
Dies ist ein Beispielcode, der eine SWITCH- Anweisung enthält.
Es verfügt über Kennzahlen für Bruttogewinn, Gesamtschätzung und Gesamtrechnung, die alle die SUMME verschiedener Spalten darstellen. Es verfügt außerdem über eine Funktion für die des Job Loss Type und eine SWITCH- und TRUE -Anweisung.
Wenn Sie diesen Code ausführen, sehen Sie die Logik hinter den Funktionen.
Die erste Abfrage ruft den eindeutigen Jobverlusttyp aus der Jobs-Tabelle ab.
Neben dem Arbeitsplatzverlusttyp wird auch die Summe der Arbeitsplatzschätzung ermittelt.
Innerhalb der WHERE- Bedingung können Sie auch die Werte sehen, die in der Spalte „Job Loss Type“ vorhanden sind.
3. Verwenden Sie Code-Bewertungsmethoden
In DAX gibt es drei Methoden zum Auswerten von Codes:
Diese Methoden helfen Ihnen, einen Code oder eine Kennzahl in LuckyTemplates zu optimieren.
1. Methode: Strenge Bewertung
Das unten gezeigte Beispiel verwendet die Methode der strengen Bewertung.
Die Logik dahinter besteht darin, dass der Bruttogewinn ermittelt wird, wenn der Kontext des Arbeitsplatzverlusttyps gleich A ist. Andernfalls wird die Gesamtschätzung angezeigt. Der Code führt dies für jede Zeile im Typ „Jobs Loss Type“ durch.
Dies ist eine weitere Beispielmaßnahme in LuckyTemplates, die eine strikte Bewertung verwendet.
Wenn Sie diesen Code ausführen, werden fünf Speicher-Engine-Abfragen generiert.
Bei der strengen Bewertung liefert der Code die Gesamtschätzung, wenn der mit 1,4 multiplizierte Bruttogewinn größer als die durchschnittliche Schätzung ist. Andernfalls ergibt sich der Bruttogewinn.
Die Verwendung der strikten Auswertung führt zu mehr Speicher-Engine-Abfragen, da die IF- Anweisung die Konkurrenz des Bruttogewinns mehrfach prüft und letztendlich die Leistung des gesamten Vorgangs beeinträchtigt.
2. Methode: Eagement Evaluation
Dies ist derselbe Code wie im vorherigen Beispiel.
Aber anstatt die Kennzahlen innerhalb der IF- Anweisung zu berechnen, wurde alles im vor RETURN berechnet .
Das bedeutet, dass vor der Überprüfung der Abrechnungen alle Werte des Bruttogewinns und der Gesamtschätzung für alle Arten von Arbeitsplatzverlusten abgerufen werden.
Wenn Sie diesen Code ausführen, wird die Anzahl der Speicher-Engines auf 3 reduziert.
Es verbessert die Leistung des gesamten Vorgangs.
In der ersten Vorgangsabfrage werden der Arbeitsplatzverlusttyp und die Summe aus Arbeitsplatzschätzung und Bruttogewinn abgerufen.
Die nächste Abfrage ruft die Summe der Jobs Estimate aus dem Jobs Stable ab. Dies wird zur Berechnung der Durchschnittsschätzung verwendet.
Die letzte Abfrage gibt den eindeutigen Typ des Jobverlusts für die in ADDCOLUMNS geschriebenen Werte an .
Mit der Eager-Auswertung erhalten Sie alles in einem einzigen Datencache. Die Daten werden auch auf der Formel-Engine ausgewertet und iteriert. Die IF- Anweisung gibt entweder die Gesamtschätzung oder den Bruttogewinn zurück, je nachdem, ob die Bewertung wahr oder falsch ist.
Eager Evaluation ist nicht immer die beste Methode zur Optimierung Ihrer Codes. Eine strikte Auswertung führt zu einer besseren Leistung, wenn Sie über komplexe Codes verfügen. Es hängt alles von den Funktionen ab, die Sie im DAX-Code verwenden.
Der Nachteil von Eager Evaluation besteht darin, dass die Engine diese Variablen trotzdem berechnet, wenn Sie vor einer IF- oder SWITCH- Anweisung Werte erstellen und in der Anweisung Variablen verwenden, die niemals ausgeführt werden sollten.
Hier ist ein Beispiel für den Nachteil:
Wenn der Arbeitsplatzverlusttyp gleich A ist, sollte im Idealfall ein Bruttogewinn erzielt werden. Andernfalls erhält es die Gesamtschätzung.
Da es in der Spalte „Typ des Jobverlusts“ keinen Wert gibt, der gleich A ist, sollte immer „Gesamtschätzung“ angezeigt werden. Der Bruttogewinn wird jedoch weiterhin im Datencache angezeigt.
Wenn Sie sich die erste Abfrage ansehen, erhält sie den Arbeitsplatzverlusttyp und die Summe aus Bruttogewinn und Schätzung des Arbeitsplatzes.
In der nächsten Abfrage wird ein eindeutiger Jobverlusttyp aus der Jobtabelle abgerufen.
3. Methode: IF.EAGER-Auswertung
Die nächste Methode ist die Funktionsauswertung IF.EAGER , die das Verhalten der Eager-Auswertung repliziert.
Sie können damit einen Code schreiben, der die strenge Bewertung darstellt, und ihn mit Eager Evaluation ausführen.
Wenn Sie sich diesen Beispielcode ansehen, ist er genau derselbe wie der Strict Evaluation-Code. Der einzige Unterschied besteht darin, dass hierbei die Funktion IF.EAGER anstelle von IF verwendet wird .
Bevor Sie den Code ausführen, stellen Sie sicher, dass Sie eine Verbindung zum LuckyTemplates-Modell herstellen und das Server-Timing aktivieren. Wenn Sie fertig sind, drücken Sie F5.
Sie können sehen, dass drei Speicher-Engine-Abfragen generiert wurden.
Die erste Abfrage ruft den Jobverlusttyp und die Summe aus Jobschätzung und Bruttogewinn ab.
Die zweite Abfrage ruft die Summe der Jobschätzung ab.
Die letzte Abfrage ruft den eindeutigen Jobverlusttyp aus der Jobs-Tabelle ab.
Sie werden feststellen, dass das gleiche Verhalten wie bei der Eager-Bewertung ausgeführt wurde.
Zusammenfassung der Bewertungsmethoden
Wenn Sie versuchen, die Leistung Ihrer Berechnungen zu verbessern, müssen Sie Folgendes beachten:
Beachten Sie jedoch, dass Sie diese drei Methoden testen müssen, um herauszufinden, welche sich wirklich am besten für Ihren Bericht eignet.
4. Optimieren Sie eine Maßnahme in LuckyTemplates
Die Hauptlektion in diesem Tutorial ist die Optimierung Ihrer Codes.
Gehen Sie zurück und sehen Sie sich die RB-Incentive-Prozent- Kennzahl an, die mithilfe der strikten Bewertung ausgeführt wird. Versuchen Sie als Nächstes, es mit Eager Evaluation auszuwerten.
Beginnen Sie mit der Erstellung von Variablen und der Eingabe der RETURN- Funktion.
Ändern Sie die Maßreferenzen mit den Variablen.
Bestätigen Sie anschließend die Maßnahme und gehen Sie zum DAX Studio, um zu sehen, ob dadurch die Leistung verbessert wurde.
Es zeigt, dass die Gesamtzeit 642 Millisekunden beträgt und die Gesamtzahl der Speicher-Engine-Abfragen auf 39 reduziert wurde.
Erstellen Sie nun die Variablen für alle Daten und ändern Sie alle Kennzahlverweise auf die entsprechenden Variablen.
Bestätigen Sie anschließend die Maßnahme und führen Sie den Code im DAX-Studio aus.
Die Gesamtausführungszeit und die Gesamtzahl der Speicher-Engine-Abfragen wurden von 600 Millisekunden auf 170 Millisekunden bzw. 43 Abfragen auf 15 Abfragen reduziert.
Sie können auch sehen, dass keine Duplikate vorhanden sind. Wenn Sie Variablen in Ihrem Code haben, verbessern Sie deren Lesbarkeit und Leistung.
Erweiterte Optimierung für eine Maßnahme in LuckyTemplates
Als nächstes müssen Sie Ihre DAX-Codes weiter optimieren.
Verwenden Sie anstelle von .
HASONEVALUE zählt die Anzahl der im Filterkontext verfügbaren Werte, was eine sehr aufwändige Operation ist. Währenddessen prüft ISINSCOPE , ob die bereitgestellte Spalte für die Gruppierung verwendet wird oder nicht.
Bestätigen Sie nach dem Ändern der Funktionen die Maßnahme und führen Sie sie im DAX Studio aus.
Sie sehen, dass die Anzahl der Speicher-Engine-Abfragen jetzt 12 beträgt. Die Gesamtausführungszeit beträgt ebenfalls 105 Millisekunden.
In der zweiten Abfrage sehen Sie eine Callback-Daten-ID.
Dies passiert manchmal, wenn Sie SELECTEDVALUE mit dem Textfeld verwenden. Wenn Sie Callback-Daten sehen, ruft die Speicher-Engine die Formel-Engine auf, um die Komplexität des Codes zu lösen. Dies verlangsamt die Leistung Ihrer Maßnahme.
Sie müssen die Rückrufdaten entfernen, um eine bessere Leistung in Ihrem Bericht zu erzielen. Dazu müssen Sie im Datenmodell eine Konfigurationstabelle erstellen.
Gehen Sie zur Option „Daten eingeben“ und fügen Sie die Daten ein. Benennen Sie die Tabelle LossTypeConfigTable .
Klicken Sie anschließend auf Bearbeiten, um den Datentyp der Spalte zu ändern, die Sie importieren möchten.
Der Datentyp der Verlusttyp-ID sollte ein Lehrerwert sein, damit er innerhalb der Funktion SELECTEDVALUE verwendet werden kann .
Erstellen Sie nach dem Laden in das Modell eine Beziehung zwischen der Jobs-Tabelle und der LossTypeConfigTable-Tabelle basierend auf dem Verlusttyp.
Gehen Sie nach dem Erstellen einer Beziehung zur Tabelle „Jobs“ und fügen Sie eine neue Spalte hinzu. Nennen Sie es Verlust-ID und geben Sie dann die Formel ein.
Verwenden Sie die Funktion für die Konfigurationstabelle und extrahieren Sie dann die Verlusttyp-ID.
Gehen Sie als Nächstes zurück zur Kennzahl „RB-Anreiz %“ und verweisen Sie auf das numerische Feld anstelle des Textfelds. Ersetzen Sie in SELECTEDVALUE den Verlusttyp durch die Verlust-ID.
Als nächstes ändern Sie alle Kennzahlen im Code. Verwenden Sie bei der Prüfung des Jobtyps einen ganzzahligen Wert anstelle von Textwerten.
Nachdem Sie den Code geändert haben, bestätigen Sie die Maßnahme und führen Sie sie im DAX Studio aus.
Die Callback-Daten-ID wird in der Abfrage eliminiert und die Ausführungszeit des Codes wird auf 93 Millisekunden reduziert.
Die RB-Incentive-Prozent-Kennzahl ist jetzt vollständig optimiert.
5. Optimieren Sie andere Maßnahmen in LuckyTemplates
Sie müssen auch die Maßnahmen WR Incentive % und QB Incentive % optimieren.
Kopieren Sie den genauen Code, der in der RB-Incentive%-Kennzahl verwendet wird, und fügen Sie ihn ein. Führen Sie dann die drei Takte zusammen aus.
Die Gesamtausführungszeit wird optimiert und von 1855 Millisekunden auf 213 Millisekunden reduziert. Es gibt auch nur 12 Speicher-Engine-Abfragen.
Die ersten beiden Abfragen erstellen den Filterkontext und der Rest stellt die genaue Anzahl der Werte in der Spalte „Jobs Loss Type“ dar.
Da alle Maßnahmen optimiert wurden, führen Sie den Originalcode aus und sehen Sie, wie sich die Leistung verändert hat. Die Daten zeigen, dass die Berechnung nun in 1,9 Sekunden erfolgt.
Die Leistung des gesamten Codes ist jetzt optimiert, wodurch Ihr Bericht schneller und besser wird.
Optimieren Sie DAX-Funktionen mit diesem neuen Kurs.
Einfache LuckyTemplates-Transformationen für optimiertere Daten.
Optimieren Sie LuckyTemplates-Formeln mit Advanced DAX
Abschluss
In LuckyTemplates-Berichten sollten Maßnahmen optimiert werden, um sicherzustellen, dass Ihre DAX-Codes reibungslos funktionieren. Dies verbessert auch die Gesamtleistung Ihres Berichts.
Sie haben die verschiedenen Methoden zur Optimierung Ihrer Kennzahl in LuckyTemplates kennengelernt und gelernt, wie Sie je nach Kontext Ihres Berichts beurteilen können, welche Methode Sie verwenden sollten.
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