Qlik Sense kann eigentlich nicht für ein Realtime Reporting verwendet werden, da die Daten immer noch in die App geladen werden sollen und dann erst dargestellt werden können. Zusätzlich erstellt Qlik einen Cache aus den Daten um diese schneller verfügbar zu haben. Wenn die Daten jetzt jede Sekunde neu geladen werden ist der Server immer am Cache erstellen und Daten aufbereiten für die App.
Aber es geht doch und Qlik Sense hat nicht mal so grosse Probleme damit wie gedacht. Alles nur eine Frage der Datenmengen und der Zeit zwischen den Loads. Eventuell sollte der Server etwas mehr Power haben als sonst. Aber das wäre dann schon fast alles.
Dieser Artikel zeigt wie ein near Realtime Reporting mit Qlik Sense erstellt werden kann.
Im Standard Scheduler von Qlik Sense ist der Reload nicht unter 1 Minute möglich. Das ist schon near Realtime, aber doch nicht ganz. Besser und wünschenswert wäre alle 1 – 5 Sekunden, je nachdem wie die Daten verfügbar sind.
Das ist machbar mit einem externen Scheduler, aber wie stelle ich sicher das die App nicht neue geladen wird bevor der vorherige Load abgeschlossen ist oder die Daten schon wieder von einer anderen App weiter verarbeitet werden?
Geht das denn überhaupt in einer Sekunde?
Ja es geht, aber dazu müssen noch ein paar Voraussetzungen geschaffen werden.
Eine Voraussetzung ist, die Daten müssen so schnell verfügbar sein.
Eine zweite Voraussetzung wäre aus meiner Sicht, alles wird in einer App gemacht (macht das ganze etwas einfacher, aber geht auch mit mehreren Apps).
Eine weitere Voraussetzung ist die Leistung des Servers, die sollte sich dann den Daten anpassen.
Viel mehr braucht es auch nicht. Es wird auch kein externer Scheduler verwendet, sondern nur Qlik eigene Mittel. Damit sicher ist das die Objekte aktualisiert werden, würde ich empfehlen nur die Qlik Standard Objekte zu verwenden. Extensions oder dritt Anbieter Objekten kann es passieren das der Refresh nur nach dem neu laden der Site erfolgt.
Wie geht der near Relatime Reload nun, ganz einfach es werden zwei Tasks erstellt, die sich gegenseitig aufrufen.
So ist garantiert das die App nicht neu geladen wird bevor der erste Load fertig ist.
So kann der Relaodintervall von 1 Minute unterschritten werden. Oder einfach gesagt, sobald die Daten geladen sind, wird der nächste Load angestossen. Neu bestimmen die Daten wann neu geladen wird, und hier spielt auch die Performance des Server nun eine Rolle. Wie so eine Umgebung aufgebaut werden kann, können wir ihnen gern aufzeigen und auch implementieren.
Das rekursive anstossen des Relaods ist eine recht coole Lösung und löst viele Probleme zum Beispiel das zwei Reloads um dieselben Ressourcen konkurrierenden. Oder die Daten werden schneller als eine Minute geladen, falls der Reload schneller durch ist.
Ob ich dieses Vorgehen für grosse Dashboards sinnvoll ist, wage ich zu bezweifeln. Aber auch hier gibt es sicher Ausnahmen und die sind stets zu prüfen. Doch bin ich der Meinung, für einen Realtime-Dashboard das die Daten für ein paar Stunden zeigt und sich innert ein paar Sekunden neu laden soll, ist das sicher eine Tolle Lösung.
