Dieser Blogpost zeigt die typischen Anforderungen einer Verwendung von Power BI mit Snowflake als DWH.
In den bisherigen Artikeln unserer Blogpost-Serie zur Snowflake Data Cloud haben wir uns mit Streams und Tasks, Snowpipe und Dynamic Tables einige technische Möglichkeiten angesehen, wie Prozesse für den Import und die Verarbeitung von Daten in Snowflake implementiert werden können.
Der Einsatz von Snowflake als Cloud Data Warehouse gewinnt auch im deutschen Markt zunehmendes Interesse. Gerade die Kombination mit Power BI als Dashboarding Tool ist ein spannender Anwendungsfall, der immer häufiger nachgefragt wird. Dabei wird oft die Frage gestellt, welche besonderen Aspekte bei dem Zusammenspiel dieser beiden Technologien beachtet werden müssen.
Wir betrachten also einmal den Use Case eines Unternehmens, das Power BI einsetzen möchte, um die Berichtsanforderungen einer Vertriebsorganisation in ein zentrales Reporting zu integrieren:
- Datenquelle ist das Cloud Data Warehouse des Unternehmens (Snowflake-Instanz auf AWS)
- Klare Abgrenzung von Datenverarbeitung (Snowflake) zu Datenvisualisierung (Power BI)
- Berichte sollten stets aktuell sein (Daten maximal 15 Minuten alt)
- Mittels Sicherheitsrichtlinien muss sichergestellt werden, dass der Datenzugriff für bestimmte Benutzer auf Zeilenebene eingeschränkt werden kann
Im Artikel legen wir den Fokus auf technische Aspekte wie den Zugriff, die Sicherheit, Datenverarbeitung und Aktualität der Berichte. Damit helfen wir Unternehmen, das volle Potenzial dieser leistungsstarken Kombination auszuschöpfen.
Konkret wollen wir Hilfestellungen und Antworten auf die folgenden Fragen geben:
Wie funktioniert der technische Zugriff von Power BI auf Snowflake?
Für die Authentifizierung zwischen den beiden Technologien gibt es 2 gängige Möglichkeiten:
- Snowflake ermöglicht Microsoft Power BI das Herstellen einer SSO-Verbindung (Single sign-on). Betrachtet ein:e Power BI-Benutzer:in einen Bericht, so werden in diesem Falle seine Anmeldeinformationen auch dazu verwendet, die in dem Bericht verwendeten Snowflake-Daten anzufordern. Das hat zur Folge, dass sich in Snowflake für Benutzer:innen definierte Sicherheitsrichtlinien auf die für ihn im Bericht sichtbaren Datenbestände auswirken.
- In Snowflake wird ein technischer Account angelegt, den Power BI für das Lesen sämtlicher benötigter Daten verwendet. Für diesen können Leseberechtigungen auf Datenbanken, Schemas, Tabellen, Views und sonstigen Objekten eingeschränkt werden.
Für den beschriebenen Use Case wäre ein technischer Account die favorisierte Variante, da die SSO-Integration keinen offensichtlichen Mehrwert bietet und der technische Account die einfachere der beiden Anbindungsmöglichkeiten ist.
Erwähnenswert ist zudem, dass je nach Konfiguration der Snowflake-Instanz eine Windows VM in AWS bereitgestellt werden müsste, auf der ein Data Gateway für den Zugriff seitens Power BI installiert werden kann.
Wie stellen wir sicher, dass Berichte den Benutzer:innen nur die Daten anzeigen, die sie tatsächlich sehen sollen?
Eine Einschränkung des Datenzugriffs auf Zeilenebene kann auf sehr einfache Art und Weise in Power BI implementiert werden.
Nehmen wir beispielsweise die folgende Visualisierung, die uns die Umsätze unterschiedlicher Stores pro Monat zeigt:
Wenn für bestimmte Konsument:innen beispielsweise nur die Stores einer bestimmten Region angezeigt werden sollen, so kann hierfür eine Rolle mit entsprechender DAX-Formel angelegt werden:
Diese Rolle kann dann wiederum bestimmten Konsumenten des Berichts zugewiesen werden.
Beim Aufruf der vorherigen Visualisierung würden diese nun nur noch die in Region 1 liegenden Stores 2, 3 und 10 sehen:
Zusätzlich können in Power BI Berechtigungen auf Arbeitsbereichen, Datenmodellen und Berichten vergeben werden. Auch auf diesem Wege kann also kontrolliert werden, welche Daten den Power-BI-Anwender:innen zur Verfügung gestellt werden.
In welcher Technologie sollten die Daten verarbeitet werden?
Für die Beantwortung dieser Frage sollten einige organisatorische Aspekte betrachtet werden:
- Bietet sich ein Mehrwert, wenn die für die Berichte aufbereiteten Daten in Snowflake liegen? Vielleicht gibt es weitere Abnehmer:innen, die die Daten in gleicher oder ähnlicher Form benötigen?
- Möchte ich eine klare Trennung zwischen Datenverarbeitung und -visualisierung?
- Gibt es komplexere Datenverarbeitungsschritte wie beispielsweise ML-unterstützte Empfehlungen oder Forecasts, die in Power BI nicht abbildbar wären, und dementsprechend bereits in Snowflake erfolgen müssten?
- Welche Expertise und Skills gibt es in den betroffenen Business Intelligence und Data Engineering Teams? Sind die Entwickler:innen erfahren im Umgang mit DAX und Power Query, oder bevorzugen sie SQL und Python?
Da gemäß dem zuvor skizzierten Use Case eine klare Abgrenzung von Datenverarbeitung zu Datenvisualisierung gewünscht ist, würde die Verarbeitung der Daten primär in Snowflake erfolgen. Kleinere, die Berichte und Visualisierungen betreffende Transformationen können natürlich zusätzlich in Power BI implementiert werden.
Wie stellen wir sicher, dass die Berichtsdaten aktuell oder maximal 15 Minuten alt sind?
Die Aktualität der Daten in den Berichten ist abhängig davon, wie häufig die zugrunde liegenden Daten in Snowflake und die darauf basierenden Datenmodelle in Power BI aktualisiert werden:
- In Snowflake muss durch entsprechende Verarbeitungsstrecken die zeitgerechte Aufbereitung aller relevanten Informationen sichergestellt werden. Hierzu können kontinuierliche Datenpipelines mithilfe von Streams und Tasks, Snowpipe und Dynamic Tables implementiert werden.
- In Power BI ist die Aktualität der Daten abhängig vom verwendeten Verbindungsmodus. Sollen immer die aktuellsten im Quellsystem verfügbaren Daten angezeigt werden, muss DirectQuery verwendet werden. Hierbei sollten aber auf jeden Fall die Kosten im Blick behalten werden, siehe nächste Frage.
Welche Kosten fallen an?
- Snowflake
Die Kosten für die Nutzung von Snowflake variieren je nach Datenmengen, Nutzungsverhalten und gewünschter Leistung. Hauptfaktoren sind dabei Compute-Ressourcen (die sogenannten Warehouses, die die Operationen auf den Daten ausführen), verwendeter Speicherplatz und Kosten für die Übertragung von Daten.
Die gewählte Cloud-Plattform sowie die Snowflake Edition (Standard, Enterprise, Business Critical oder Virtual Private Snowflake) beeinflussen die Kosten ebenfalls. - Power BI
Die Kosten für Power BI variieren je nach Unternehmensgröße und spezifischen Anforderungen. Microsoft bietet verschiedene Lizenzierungsoptionen an, darunter die nutzerbasierten Pro- (enthalten in Microsoft 365 E5) und Premium-Lizenzen, die sich in Aspekten wie Funktionsumfang und verfügbarem Speicherplatz unterscheiden.
Für größere Unternehmen wird die Möglichkeit geboten, die gesamte Organisation unabhängig von der Anzahl der Nutzer:innen zu lizenzieren.
Im Falle der gemeinsamen Verwendung von Snowflake und Power BI fallen also auch bei jeder Aktualisierung der Berichtsdaten Kosten an, da hierzu ein Snowflake Warehouse ausgeführt werden muss.
Es ist daher wichtig, sich frühzeitig Gedanken darüber zu machen, wie aktuell die Datenbestände in den Berichten sein sollten, um unnötige Kosten zu vermeiden. Aus dieser Anforderung lässt sich meist ableiten, welcher Verbindungsmodus für den Abzug der Daten in Power BI verwendet werden sollte.
Fazit
In diesem Blogpost haben wir einen praxisnahen Einblick in die Integration von Snowflake und Power BI für ein mittelgroßes Unternehmen gewährt, das seine Vertriebsberichte optimieren möchte. Vom technischen Zugriff bis zur Gewährleistung der Datensicherheit haben wir die entscheidenden Aspekte beleuchtet. Die nahtlose Verbindung beider Plattformen ermöglicht nicht nur aktuelle Berichte, sondern schafft auch eine klare Trennung von Datenverarbeitung und -visualisierung. Dieser Use Case verdeutlicht die Effizienz und Leistungsfähigkeit dieser Synergie und bietet Unternehmen wertvolle Erkenntnisse für eine erfolgreiche Implementierung.
Als offizieller Snowflake-Partner unterstützen wir Sie bei der Nutzung des Snowflake-Ökosystems. Wir bieten Beratung in den Bereichen Business Intelligence, Analytics, Machine Learning & Data Engineering sowie Data Science mit und auf Snowflake. Beginnen Sie Ihre Transformation mit einem unserer Workshops, um den für Sie passenden Ansatz zu entwickeln.
Entdecken Sie die grenzenlosen Möglichkeiten mit Snowflake und gestalten Sie die Zukunft Ihrer Datenverarbeitung heute neu. Kontaktieren Sie uns, um mehr darüber zu erfahren.
Links
inovex: Snowflake
inovex: Snowflake Blogposts
https://www.snowflake.com/en/data-cloud/pricing-options/
https://powerbi.microsoft.com/en-us/pricing/