BI Performance Tuning

Veröffentlicht am 04.10.2018
BI-Blog

Nach Implementierung eines Datenmodells mit einer grossen Datenmenge sollte das Datenmodell aus folgenden Gründen optimiert werden:

-> Reaktionsgeschwindigkeit der Selektionen erhöhen
-> Schnellere Skriptausführung und Öffnen der Applikation
-> Applikationgrösse (auf der Festplatte)

Folgende Aktionen kann man für eine erste Optimierung für ein schnelles und optimiertes Datenmodell vornehmen:

  • Felder reduzieren: Löschen oder nicht einlesen der nicht benötigten Felder
  • Datensätze reduzieren: Reduzieren der Datenmenge, welche in das Datenmodell eingelesen werden
  • Kardinalität erhöhen: Reduzieren der Anzahl eindeutiger Werte innerhalb der Felder
  • Künstliche Schlüssel verwenden

 

Felder reduzieren

Durch die Reduktion der nicht benötigten Felder wird die Applikation kleiner. Sowohl die Skript-Laufzeit als auch die Reaktionsgeschwindigkeit werden aufgrund des geringeren RAM Bedarfs des Datenmodells, per Selektion in der Applikation erhöht. Daher ist das NICHT-Einlesen oder Löschen von unnötigen Feldern eines der wichtigsten Kriterien für eine schnellere Applikation. Mit Hilfe von Document Analyzer (von Rob Wunderlich, Links siehe unten) kann man die NICHT benötigten Felder einfach identifizieren und löschen.

Datensätze reduzieren

Die Datenmenge hat einen grossen Einfluss auf die Grösse der Applikation. Daher sollten unnötige Daten, welche nicht für die Datenanalyse relevant sind, gelöscht werden. Dies wäre die zweite Möglichkeit, um das Datenmodell zu optimieren. Zum Beispiel bei einer Vertriebs-Applikation könnte man Daten, welche älter als 5 Jahre sind, aus der Fakten Tabelle im Datenmodell ausschliessen. Dasselbe gilt dann auch für die Attribute (Dimension) Tabellen wie Kunde, Produkt, Kalender, etc. Durch Verwendung der Exists() Funktion, werden nur die relevanten Stammdaten eingelesen, welche auch in der Fakten Tabelle vorhanden sind.

Kardinalität erhöhen

Qlik speichert die Daten indexiert und in Listen. Ein Feld, welches 10 Millionen Werte aber nur 2 Millionen eindeutige Werte beinhaltet, wird in einer Liste mit 2 Millionen Einträgen und 10 Millionen Zeigern auf diese Werte abgespeichert. Durch z.B. das Aufrunden von nicht benötigten Dezimalstellen, das Reduzieren der eindeutigen Werte (mehr gleiche Feld Inhalte) oder das Trennen kombinierter Felder in mehrere Einzelfelder wird das Datenmodell kleiner.

Zum Beispiel: Bei einem Zeitstempel, wo die Uhrzeit irrelevant ist oder das Datum nur in Monaten angezeigt wird, kann man dank einer Reduktion auf Monatsbasis die Kardinalität einfach und effektiv erhöhen.

 

Künstliche Schlüssel verwenden

Zusammengesetzte oder alphanumerische Schlüssel resultieren in grösserem Feld Inhalt, welches mehr Platz im Vergleich zu numerischen Werten benötigt. In Datenmodellen mit grossen Datenmengen (10 Millionen und aufwärts), mit Hilfe von der Autonumber() Funktion, kann man künstliche Schlüssel erzeugen, welche performanter und kleiner in das Feld Inhalt passen.

 

Dies sind kleine aber effektive Möglichkeiten, um das Datenmodell kleiner und schneller zu machen. Es gibt weitere Optimierungsmöglichkeiten. Auf der Website qlikviewcookbook.com kann man zum Beispiel das Document Analyzer von Rob Wunderlich herunterladen: Dieses Tool ist eine wertvolle Hilfe, um Applikationen zu analysieren und zu optimieren.

 

Kommentar hinterlassen

Klartext

  • Keine HTML-Tags erlaubt.
  • Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Website- und E-Mail-Adressen werden automatisch in Links umgewandelt.

Tags