Vertikale Labels in QlikView

Kompakte Dashboard benötigen immer wieder vertikale Überschriften oder Beschriftungen. Man sieht öfters QlikView Applikationen bei denen diese "Texte" in Wahrheit eingebundene Graphiken sind. Bei mehrsprachigen Dashboards führt das sehr schnell zu einem hohen Wartungs- & Implementierungsaufwand, den wir gerne vermeiden möchten.

Vertikale Beschriftung auf einem Dashboard
Leider unterstützt die normale Textbox in QlikView keine vertikalen Ausrichtung der Schrift. Deshalb muss man zu einem Trick greifen: Die Diagramme in QlikView bieten die Option "Freier Text". Für diese freien Texte kann man die Neigung der Schrift definieren.


Eigentlich ist dieses Feature gedacht, um Achsenbeschriftungen an der Y-Achse eines Charts vertikal anzuordnen. Wir wollen aber nur den Text nutzen, und gar kein Chart! Deswegen müssen wir es schaffen das Chart unsichtbar zu machen!

Um also das eigentliche Chart "loszuwerden" eignet sich am besten ein Messzeiger.



Ein Messzeiger hat keine Dimension, und eine Dummy-Expression mit "0". Deaktivieren Sie "Text als Quick-Info" damit das Objekt keine Tooltip anzeigt.


Unter "Präsentation" fügen Sie dann Ihren freien Text ein, und geben die Neigung an.


Jetzt ist der Shortcut STRG+SHIFT Ihr Freund um mit der Maus das Label zu positionieren. Im Endausbau blendet man dann die Titelleiste und Rahmen komplett aus.



Die Mehrsprachigkeit funktioniert dann wie gehabt am besten über eine Variable der man einen Language-Key übergibt.

=$(vHD_Translate('l.Dashboard.Section2.HeadlineB'))

Die Flaggen schalten die Sprache hin- und her. Fertig ist die mehrsprachige Beschriftung!

Die vertikale Beschriftung auf Deutsch

Die vertikale Beschriftung auf Englisch

Die Applikation zum Herunterladen finden Sie hier.









What's new @ Qlik

In letzter Zeit hat es eine Menge Neuigkeiten & Releases von Qlik gegeben. Unterhalb eine Zusammenfassung der wichtigsten Themen, auf die wir immer wieder angesprochen werden.

Qlik DataMarket

Der Qlik DataMarket ist nun sowohl in QlikView 12 als auch in Qlik Sense verfügbar. Das "Essentials Free"-Package mit seinen freien Datenquellen kann jeder sehen und nutzen. Doch was verbirgt sich hinter den kostenpflichtigen Paketen?

DataMarket Pakete in Qlik Sense


Wir hatten die Möglichkeit in Qlik Sense 2.1 zu sehen was enthalten ist.



Die Daten können wir natürlich nicht teilen, aber in diesem Code Snippet sieht man welche Felder in den Datamarket-Themen enthalten sind. Überlegen Sie sich, bei welcher Ihrer internen Applikationen es Sinn macht diese um die externen Datamarket-Daten anzureichern!

Qlik REST Connector

Als generischer Connector für REST-Webservices hat Qlik den "Qlik REST Connector" gratis für QlikView und Qlik Sense auf die Downloadseite gestellt. Dass Connectivity ohne Lizenzgebühren bereit gestellt wird, ist löblich, und hat mittlerweile durch Qlik ODBC Connector Package und Qlik Salesforce Connector eine gewisse Tradition.

Wir haben versucht den Connector mit Google Analytics zum Laufen zu bringen, was ein wenig in Arbeit ausgeartet ist. Siehe auch in der Qlik Community hier. Wer pflegeleicht auf Google Analytics und andere WebAPIs zugreifen möchte, ist momentan bei unsere Parnter QVSource besser aufgehoben. Um ein internes Webservice anzuzapfen, ist der Connector sicher eine schöne Option.

NPrinting 17  für QlikView

NPrinting 17 für Qlikview ist das erste NPrinting Release unter der Schirmherrschaft von Qlik. Die neue Weboberfläche paßt zur Produktstrategie, ist aber noch nicht Feature-Complete zu NPrinting 16.  Für bestehende NPrinting 16 Kunden heißt das: lassen Sie sich noch Zeit mit der Migration. Schauen wir nach dem Sommer weiter, da sollen weitere Releases folgen. Kunden mit bestehender QlikView Publisher PDF-Distribution dürfen diese 1:1 gegen NPrinting 17 tauschen. Das macht natürlich Sinn, weil man damit neben PDFs auch alle Office-Formate, HTML-Emails, Pixelperfect usw. verteilen kann! Für nähere Infos nehmen Sie am besten direkt mit uns Kontakt auf.

Qlik Sense 2.2

Letzte Woche ist das Featurerelease Qlik Sense 2.2 erschienen. Unsere Seiten demo.heldendaten.net und qvheroes.com sind bereits problemlos aktualisiert worden. Ein guter Überblick über die neuen Features hat Mike Tarallo gepostet:


Wenn Sie (Web-)Entwickler sind,  hat Stefan Walther alle Neuerungen und Änderungen im API-Bereich zusammengefasst. Ein sehr anschauliches Beispiel von Alexander Karlsson zeigt, wie man in Qlik Sense 2.2 eine Extension on the fly laden kann, und dann programmatisch damit ein Chart aufbaut. Siehe auch Screenshot unterhalb.


Nette Sache! Jetzt muss man also wirklich nicht mehr Charts im Qlik Sense Developer zusammenklicken, sondern kann auch diesen Teil programmieren. Zusammen mit dem "On Demand App Generation" Ansatz, ist es in QlikSense 2.2 also möglich individuelle Charts aufzubauen, die nicht in der ursprünglichen Applikation enthalten waren. Es wird also immer spannender Qlik als "Middleware" bzw. "Platform" einzusetzen, ganz losgelöst vom "normalen" Qlik Sense Client und klassischen Mashups.

AGGR Funktion - Dimensionswerte sortierbar

Die überraschenste Änderung zum Schluss, die habe ich heute selbst erst in der Qlik Community entdeckt! Die Dimensionen der AGGR-Funktion sind ab QlikView 12 und Qlik Sense 2.2 sortierbar! Wer noch nie vor dem Problem stand, dem wird es ziemlich egal sein - für alle anderen ist es vielleicht die größte Neuerung seit SET ANALYSIS ;-)

 Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr,         
StructuredParameter{, StructuredParameter})

with:
StructuredParameter:  (FieldName, (NUMERIC, ASCENDING))
 
Hier der Artikel,  der zeigt wie es geht! Es scheint in der QIX-Engine gelöst worden zu sein, weswegen beide Qlik-Produkte davon profitieren! Das ist ja mal ein guter Start für die Zusammenlegung der Engines - weiter so! Eine SortExpression statt nur einem Feld zum Sortieren wäre doch noch etwas erstrebenswertes :-)


Österreichische Feiertag - bis ins Jahr 2025

Im Dezember 2014 habe ich im Artikel Happy Holiday mit QlikView - Feiertage aus dem Internet holen beschrieben, wie man mit sich mit dem Qlik Skript die Feiertage aus dem Internet holen kann. In der Zwischenzeit hat die Webseite http://www.feiertage-oesterreich.at/ die Feiertage bis 2025 ergänzt, aber leider auch gleich ihr Layout abgeändert. Zeit das Skript anzupassen!

Im Kern ist das Skript gleich geblieben, nur die HTML-Tabelle hat sich etwas geändert. Die Schleife läuft dafür bis ins Jahr 2025.

let vTable = 'Feiertage:';
for i = 2013 to 2025
       $(vTable)
       load
        BeschreibungFeiertag,
        Feiertag_Tag,
        Feiertag_Monat,
        $(i) as Feiertag_Jahr,
        makedate($(i),Feiertag_Monat,Feiertag_Tag) as DatumFeiertage,
        1 as flagFeiertag;
       load
        BeschreibungFeiertag,
        left(Datum,2) as Feiertag_Tag,
        mid(Datum,4,2) as Feiertag_Monat;
        
        LOAD right(@1,6) as Datum,
        @2 as BeschreibungFeiertag
       FROM
       [http://www.feiertage-oesterreich.at/$(i)]
       (html, utf8, no labels, table is @3) where trim(@3)='§';
       
       let vTable = 'concatenate(Feiertage)';

next

Mit ein wenig Firlefanz rundherhum sieht der Kalender dann so aus!

Feiertags Kalender 2016 in Qlik
Feiertage 2016 in QlikView ...
Qlik Sense Feiertage 2017
... und Feiertage 2017 in Qlik Sense


Die gesamte Applikation für QlikView und Qlik Sense sowie als .csv und .qvd (falls sich das Webseiten Layout wieder ändert) finden Sie als Download hier.

PS: Achtung: 24. und 31. Dezember sind keine gesetzlichen Feiertage. Aber da sie jedes Jahr am gleichen Tag sind, lasse ich das als kleine Hausübung wenn Sie das Skript einsetzen möchten :-)



QlikView 12 ist da - Mit aktualisiertem Bild der Entwicklungsmannschaft

QlikView 12 ist Ende 2015 auf der Download-Seite verfügbar gemacht worden. Und endlich (erstmals seit QlikView 9) wurde auch das Entwickler-Team Bild wieder aktualisiert! Schön die alten (und viele neue) Kollegen mal wieder zu Gesicht zu bekommen :-)

QlikView 12 Development Team
In QlikView 12  GA wurde das DevTeam.jpg EasterEgg aktualisiert


Wie man bei unseren altem Blogpost von März 2013 nachlesen kann, war das versteckte Bild jetzt einige QlikView Versionen gleich geblieben. Nutzt man die .qvw Applikation in QlikView 12, sieht man jetzt das aktualisierte Bild. Danke an Johan Asplund, der diese alte Tradition scheinbar wieder zum Leben erweckt hat :-)

Erste Reviews und Änderungen findet man zB bei Rob Wunderlich. Bei einer Serverinstallation bitte momentan noch mit Bedacht vorgehen! Die Publisher Reloads dürften in einigen Fällen langsamer laufen als in QlikView 11.20SR13. Ein Workaround ist bekannt, wir raten unseren Kunden aber vorerst noch auf Version 11 zu bleiben.

QlikView Publisher - Monitoring mit Perfmon

Häufig wird bei Hardware Sizing nur über das Qlik Server Service gesprochen. Die harte Arbeit der Datenaufbereitung übernimmt in der Nacht jedoch das Publisher Modul. Viele kleinere bis mittlere Qlik Installationen nutzen für diese (nächtliche) Beladung die gleiche Maschine. Das geht oft gut, doch kämpfen Server und Publisher dann häufig um die gleichen Memory- und CPU-Ressourcen, was über die Zeit bei wachsenden Datenmengen zu unerwünschten Verhalten führt. Um die notwendigen Ressourcen für den Publisher besser monitoren zu können, installiert Qlik - gut versteckt - einige Indikatoren in Microsoft Perfmon.

Das QlikView Server Service ist sehr aggressiv in seiner Memory-Consumption. Ähnlich eines Datenbankservers reserviert es Memory (WorkingSet) vor, da es annimmt, das wichtigste Service am ganzen System zu sein. Auch in der Nacht hält das  QlikView Server Service sein Memory (vor allem wenn es das untere Workingset schon einmal erreicht hat), was dazu führt, dass für die Reloads nur wenig freier Speicher zur Verfügung steht. Laufen dann noch mehrere Reloads gleichzeitig, kann es mit Memory auf einer einzelnen Maschine schnell knapp werden.

Für QMC-Administratoren ist es oft schwierig zu sagen, wann wieviel Tasks gleichzeit laufen und wieviel Last vom Publisher (bzw den qvb.exe des Distribution Services) dabei produziert wird. Seit QlikView 11.20 SR7 kann man sich zwar in jedem TaskLog eine Summary zeigen lassen, das gibt aber kein vollständiges Bild wie sich die Beladungen über einen vollen Nacht-Zyklus inklusive aller Abhängigkeiten verhält.

Um zu verstehen was nächtens bei den Reloads am Server so passiert, gibt es ein gut verstecktes Feature: Das QlikView Distribution Service registriert einige Performance Counter Indikatoren in Microsoft's PerfMon Tool das in jeder Windows Version zur Verfügung steht.

PerfMon - Performance Counter Indikatoren vom QlikView Distribution Service

Nicht alle Indikatoren sind ganz verständlich (und werden wohl nur vom Qlik Support genutzt), aber um sich einen Überblick zu verschaffen, benutze ich gerne

  • # of running tasks .. wieviele Tasks (qvb.exe) laufen gerade
  • Current QVB CPU Load .. CPU Zeit die von den Reload Tasks verbraucht wird.
  • Current QVB memory Usage .. den absoluten Wert kann ich nicht ganz nachvollziehen, aber er zeigt Arbeitsspeicher-Ausreißer bei großen JOINs usw.
Zusätzlich kann man einige Standard Windows-Indikatoren wie Arbeitsspeicher und Prozessorzeit (%) dazuhängen, um das Gesamtsystem zu überwachen.

Die nächsten Sceenhshots zeigen ein Beispiel wie Perfmon den Verlauf über die Zeit mitprotokolliert.



Die hellgrüne Linie zeigt die 4 gerade laufenden Tasks der QMC. Die Dunkelgrüne zeigt die Summe der verbrauchte CPU Zeit dieser Tasks (in Summe vier qvb.exe, in Screenshot sieht man nur eine qvb.exe im Taskmanager, da alle anderen gerade keine CPU verbrauchen). Rot+Blau gestrichelt zeigen den Zustand des gesamten Servers. Die gelbe Linie "Current QVB memory usage" kann ich in absoluten Zahlen nicht deuten, ist aber eine interessante Information um ressourcenfressende Skripte zu entdecken.

Werden die Reloads nach der Reihe fertig abgearbeitet, fallen auch die zwei grünen Linien entsprechend. Siehe unterhalb Screenshot mit nur noch einem laufenden Reloadtask.





Bei größeren Installationen - oder falls Sie viele untertägige Reloads fahren - empfehlen wir immer das Aufteilen der zwei Services "QlikView Server Service" und "QlikView Distribution Service (aka Publisher)".  Im Zeitalter der Virtualisierung und noch immer fallender Memory-Preise ist ein Deployment mit zwei Maschinen vorzuziehen. Beide Services können die vollen Ressourcen Ihrer Maschine nutzen, und kommen sich auch unter hoher Last nicht in die Quere.


Ein exemplarisches Deployment auf  zwei Maschinen für "PRODUKTIV"

 Wo das ManagementService und der Webserver läuft, ist zu vernachlässigen. Manchmal setzt man dafür auch eine dritte Maschine ein.
heldendaten GmbH,2020