blog_Hero.jpg
Veröffentlicht von       Claudia Müller

Snowflake und Qlik: Wie gelangen die Daten in die Apps?

Die Kombination von Qlik und Snowflake ist ein heisses Thema, das auf diversen Plattformen stark beworben wird. Interessant ist diese Frage vor allem für Unternehmen, die den Wechsel von Qlik On-Premise zu Qlik SaaS vor kurzem vollzogen haben oder in naher Zukunft planen und damit auch vor der Entscheidung zwischen traditionellen Data Warehouse-Ansätzen und Snowflake stehen. 

Besonders attraktiv ist Snowflake, wenn möglichst aktuelle Daten & Analysen in nahezu Echtzeit gefragt sind.

Hier möchten wir mit bewährter Heyde Expertise einhaken und folgende Fragen diskutieren:

 

  • Wie kann man Snowflake in Kombination mit Qlik sinnvoll nutzen?
  • Welche Strategie ist für welche Anwendungsfälle geeignet?
  • Was ist zu beachten, wenn man Daten in nahezu Echtzeit visualisieren möchte?

 

Mit diesem Wissen können Sie die Qlik-Snowflake-Kombi so einsetzen, dass die Vorteile zum Tragen kommen, und können die Implementierung mit realistischen Erwartungen bzgl. Komplexität und Kosten angehen.

 

Leistungsstarke ETL + Analyse-Power: Warum die Kombination Sinn macht

In vielen Unternehmen werden Datenanalyse-Projekte initial auf Rohdaten aus den Quellsystemen aufgebaut. Häufig kristallisiert sich erst im Laufe des Projektes heraus, dass diese Rohdaten bereinigt oder mit Daten aus anderen Systemen angereichert werden müssen, um die erhofften Erkenntnisse zu erlangen. 

 

Qlik bietet natürlich die Möglichkeit, verschiedene Quellsysteme anzubinden und die Daten zu kombinieren und zu transformieren. Doch die Stärken von Qlik liegen klar im Bereich der Analysen und Visualisierungen: Qlik ist nicht primär als ETL-Werkzeug gedacht und bietet nur begrenzte Möglichkeiten zur Weitergabe der aufbereiteten Daten an andere Tools – und genau diese Funktionalitäten ergänzt Snowflake, das auf die effiziente Verarbeitung & Transformation von Daten spezialisiert ist

 

Die Kombination von Snowflake als Cloud Data Lake und/oder Cloud Data Warehouse mit Qlik als Analyse-Tool schafft somit eine End-to-End-Lösung, die das gesamte Spektrum von der Ingestion der Rohdaten aus den Quellsystemen bis zur visuellen Datenerkundung optimal abdeckt. 

Snowflake-dbt-Qlik

Aktualität & Performance: Was Snowflake von «normalen» SQL-Datenquellen unterscheidet

Snowflake bietet leistungsstarke ETL-Funktionalitäten:

 

  • Anbindung von Datenquellen mit bislang unerreichter Aktualität: Snowflake ermöglicht das Anbinden verschiedenster Datenquellen und damit auch das Kombinieren von Daten aus mehreren Quellen. Besonders interessant dabei ist, dass der Datenbestand in Snowflake mittels geeigneter Connectoren und Technologien deutlich aktueller gehalten werden als dies mit konventionellen Data Warehouse Technologien bislang der Fall war. So ermöglicht bspw. Change Data Capture (CDC) die auszugsweise Übertragung von Daten aus SQL-Datenbanken ohne zeitaufwändige Vollspiegelungen, so dass der Datenbestand in Snowflake jederzeit nahezu exakt dem Datenbestand des Quellsystems entspricht.
  • Hoch-performante Datentransformation: In «normalen» SQL-Datenquellen vermeidet man üblicherweise das Ausführen von Transformationen im SQL-Teil (also direkt in der Quelle), weil dies nicht performant genug ist bzw. die Quelle belastet und im Extremfall überlastet wird. Bei Snowflake hingegen zielt man darauf ab, die Transformationen im SQL-Teil auszuführen, weil dies performanter ist als bei Qlik.
  • Datenweitergabe: Snowflake kann Daten via ODBC-Verbindung und Connectoren an verschiedenste Anwendungen weitergeben. So kann bspw. derselbe Datensatz, der für eine Visualisierung an Qlik weitergereicht wird, auch an Excel übergeben oder für eine Data Science-Anwendung in einer Python IDE oder in R Studio verwendet werden. 


Die besondere Aktualität des Datenbestands in Snowflake kommt in Kombination mit Qlik optimal zum Tragen: Hier stehen Technologien zur Verfügung, mit denen Daten in einer Qlik-App auch unabhängig von einem festgelegten Laderhythmus aktuell gehalten werden können – bspw. beim Öffnen der App oder beim Anpassen von Filterungen. Anstatt die Aktualisierung der Daten nach einem festen Zeitplan vorzunehmen, werden die Apps also genau dann aktualisiert, wenn die Nutzer dies benötigen. Die Kombination von Qlik und Snowflake lässt die Nutzer mit den aktuellsten Daten arbeiten und vermeidet zugleich unnötige Ladevorgänge von Apps. 

 

Qlik + Snowflake in der Praxis: Welche Datenverbindung liefert die beste Performance?

Ladevarianten Qlik und Snowflake

Wie kommen nun die Daten von Snowflake in eine Qlik App? Zunächst muss eine Datenverbindung zu Snowflake eingerichtet werden. Dafür bietet Qlik einen entsprechenden ODBC-Connector an. Nach Einrichtung der Datenverbindung sind die Daten in Snowflake auf dieselbe Weise zugänglich wie dies auch bei anderen Datenverbindungen zu SQL-basierten Datenquellen der Fall wäre: über den Load Editor oder auch über den Data Manager. 

 

Ein typisches Szenario im Geschäftsalltag ist es, mehrere Tabellen miteinander zu verbinden (JOIN) und das Ergebnis in Qlik zu visualisieren. Dabei gibt es drei Umsetzungsmöglichkeiten:

 

  • Datentransformation in Qlik – optimal für geringe Datenmengen, die nur wenige Transformationen benötigen. Jede Tabelle wird einzeln in Qlik geladen, so wie man die Daten beispielsweise aus einer QVD-Datei laden würde. Dabei werden die gewünschten Felder ausgewählt und allfällige Umbenennungen und Berechnungen im preceding load in Qlik umgesetzt. Auch der Join erfolgt in diesem Fall in Qlik – die Performance-Vorteile von Snowflake werden in diesem Fall also nicht genutzt.
  • Datentransformation in Snowflake – für Query-Resultate, die nur in einer Qlik-App verwendet werden. Für eine optimale Performance empfiehlt es sich fast immer, möglichst viele der benötigten Transformationen in Snowflake und nicht in Qlik ausführen zu lassen. Man wird also in der Snowflake UI ein Query entwickeln, welches die betreffenden Tabellen miteinander verbindet. In Qlik können mit Hilfe des SQL-Befehls SQL Queries ohne preceding load im Load Skript eingebaut werden. Man kopiert also das in der Snowflake UI entwickelte Query in das Qlik Ladeskript. Das Query mit all seinen darin enthaltenen Transformationen wird dann bei jedem Ladevorgang der Qlik App in Snowflake ausgeführt (was performanter ist als die Daten in Qlik zu transformieren) und nur das Query-Resultat wird in Qlik geladen. Dabei können auch komplexe SQL-Skripte, beispielsweise mit Common Table Expressions (CTEs), verwendet werden. Dieser Ansatz eignet sich vor allem für Query-Resultate, die nur in einer App verwendet werden sollen. Möchte man dagegen denselben Datensatz mehrfach verwenden, müsste das Query in mehrere Apps eingefügt werden, wobei deren unterschiedliche Ladezeitpunkte zu Unterschieden im Datenbestand der Apps führen können.
  • Datentransformation in Snowflake – für Query-Resultate, die in mehreren Qlik-Apps verwendet werden. Hier gibt es zwei Möglichkeiten, den Performance-Vorteil von Snowflake zu realisieren:
    • Die erste Option wäre, das Query-Resultat in eine Qlik-App zu laden und als QVD abzuspeichern, die dann in alle entsprechenden Apps geladen werden kann (hierbei würde man dann entsprechend die Load Tasks der Apps aneinanderketten).
    • Eine zweite Lösung wäre es, das Query-Resultat in Snowflake zu persistieren. Dabei wird aus dem Query-Resultat je nach Anwendungsfall eine View oder eine Tabelle in Snowflake generiert. Diese kann dann als Datensatz in Qlik geladen werden. So lässt sich verhindern, dass dieselbe Datenaufbereitung mehrmals parallel ausgeführt wird, und es ist (falls erforderlich) sichergestellt, dass alle Apps, welche sich auf diesen Datensatz beziehen, auf demselben Stand sind. Werkzeuge wie dbt helfen, die Erstellung und Pflege solcher Datensätze effizient zu gestalten und ermöglichen zudem eine Versionskontrolle.

 

Die drei besprochenen Ansätze sind geeignet für Anwendungsfälle, in denen die Qlik App in regelmässigen Abständen durch einen Load Task aktualisiert wird, d.h. wenn die Daten nicht topaktuell sein müssen. 

Ladezeiten Qlik und Snowflake

Qlik & Snowflake in der Praxis: Höchstmögliche Aktualität für Ihre Daten

Der Vorteil von Snowflake liegt nicht allein in der hoch-performanten Datentransformation, sondern wie erwähnt auch in der Aktualität des Datenbestands. Doch wie bekommt man die Daten möglichst aktuell in die Qlik Apps? 

 

Bei Qlik SaaS liegt das kürzestmögliche Aktualisierungsintervall für einen herkömmlichen Load Task bei einer Stunde.

 

Noch aktuellere Daten (near real-time) erhält man mit folgenden Ansätzen:

  • On-Demand App Generation (ODAG): Hier kann der Nutzer in einer Übersichts-App eine Auswahl der benötigten Daten vornehmen und erst danach wird eine (temporäre) App mit den Detail-Auswertungen und den gewünschten Daten automatisch generiert. Diese Technologie wird vor allem eingesetzt, wenn die Datenmengen extrem gross sind und sich daher eine Darstellung aller Daten in einer App verbietet. Wenn Daten in nahezu Echtzeit vorliegen, erhält der Nutzer jeweils die aktuellsten Daten, wenn die Detail-App generiert wird, d.h. dieses Feature kann verwendet werden, um auf Knopfdruck die neusten Daten zu erhalten. Der Nachteil dieser Technologie liegt in der schwierigeren Umsetzung in Qlik und der Tatsache, dass nicht jeweils dieselbe App aktualisiert wird, sondern jeweils eine neue App generiert wird. Eine Aktualisierung in derselben App ist nicht möglich.
  • Dynamic Views: Dieses Feature basiert ebenfalls auf den ODAG-Mechanismen. Hier können die Daten vom Nutzer nach einer Interaktion mit den Visualisierungen auf Knopfdruck aktualisiert werden. Allerdings ist die technische Umsetzung in Qlik anspruchsvoll, und im Gegensatz zu dem «normalen» Verhalten von Qlik werden die in einer Visualisierung vorgenommenen Filter nicht an den Rest der App weitergegeben, was für die Benutzer verwirrend sein kann und leicht zu Fehlinterpretationen führt.
  • Direct Query: Dieses Feature ist seit Mitte 2022 verfügbar und erlaubt es, live SQL-Queries aus einer Qlik SaaS App heraus in Snowflake auszuführen. Auf diese Weise werden Benutzer-Aktionen in der Qlik-App direkt als SQL-Queries an Snowflake gegeben, so dass die Daten in Echtzeit aktualisiert werden können. Allerdings werden mit dieser Technologie wesentlich häufiger Queries in Snowflake ausgeführt, was entsprechend mehr Kosten generieren wird.   

 

Kurz gesagt: Wenn Daten in nahezu Echtzeit visualisiert werden sollen, ist die Umsetzung in Qlik insgesamt wesentlich anspruchsvoller und wird deutlich höhere Kosten verursachen. 

Fazit

Sicherlich ist es faszinierend, in Qlik in Echtzeit zuschauen zu können, wie viele gefertigte Teile aus der Produktion in das Versandlager transferiert werden… Doch die Analyse der Bestände in Echtzeitdarstellung bietet in der Praxis wahrscheinlich wenig Vorteile im Vergleich zu einer stündlichen Auswertung – wird jedoch deutlich mehr Aufwand und Kosten generieren. Anwendungsfälle, in denen Daten in nahezu Echtzeit in Qlik zur Verfügung stehen müssen, dürften im Geschäftsalltag eher die Ausnahme sein. 

 

Auch für die Nutzung von Snowflake in Kombination mit regulären Load Tasks ist es erforderlich, dass entweder der Qlik Applikationsentwickler über SQL-Kenntnisse verfügt oder die Datenaufbereitung durch darauf spezialisierte Personen in Snowflake erfolgt, um die Vorteile von Snowflake voll ausschöpfen zu können. 

 

Insbesondere Unternehmen, deren Rohdaten über eine Vielzahl von Systemen verteilt sind und stark transformiert werden müssen, können in hohem Masse von der Verwendung von Snowflake in Kombination mit Qlik profitieren und sollten daher entsprechende Kompetenzen aufbauen.     

 

Wenn Sie sich fragen, ob die Kombination von Qlik + Snowflake eine optimale Lösung für *IHR* Unternehmen darstellt oder Unterstützung bei der Implementierung wünschen, nehmen Sie gern Kontakt auf: Unsere Heyde Experten beraten Sie gern!

 

Claudia Müller

Claudia Müller

Claudia Müller ist Materialwissenschaftlerin und war viele Jahre in der Medtech-Industrie im Bereich Operations tätig, wo sie eine Vielzahl von Qlik-Projekten umsetzen durfte – vom Ausschussdashboard bis zur Visualisierung von Herstellkostenberechnungen. Sie liebt es, Daten aus verschiedenen Quellen aufzubereiten und zusammenzuführen um ihren Kunden qualitativ hochwertige und massgeschneiderte Analysen und Dashboards liefern zu können.

VERWANDTE BEITRAGE