Die Cloud ist derzeit das Buzzword für Unternehmen, die überlegen ihre Datenbankinfrastruktur zu modernisieren oder gar ein neues Data Warehouse errichten wollen. Dabei sind die meisten noch unsicher, ob die Cloud der richtige Schritt für sie ist. Gründe können Unsicherheiten bezüglich des Datenschutzes sein, aber auch die Frage welche technischen Schritte einen erwarten, können zu einer zögerlichen Haltung führen. In unserer Blogserie wollen wir uns näher mit BI in der Cloud beschäftigen und den Leser Schritt für Schritt mit in die Wolke nehmen.

Wieso eigentlich in die Cloud gehen? 

Ein Data Warehouse aufzubauen bedeutete bis vor kurzem noch den Erwerb und den Betrieb von teuren Hardware Servern im eigenen Unternehmen. Die Kosten und der Aufwand für den Betrieb solch einer On-Premises Lösung können da bereits einen großen Teil des IT-Budgets eines Unternehmens ausmachen. Im Gegensatz hierzu stehen Cloud Datenbankenanbieter wie etwa Snowflake Cloud Data Warehouse, Google Cloud SQL, Amazon Redshift oder Microsoft Azure SQL Database, die ihre Dienste als sogenannte software-as-a-service (SaaS) - Lösung anbieten. Das heißt, es gibt keinerlei Hardware oder Software, die ausgewählt, installiert, konfiguriert oder betreut werden will. Somit sind Cloud Datenbanken wohlmöglich genau die Lösung für Unternehmen, die ihre IT-Ressourcen nicht hauptsächlich für Einrichtung, Betrieb und Supports von Inhouse Servern verwenden wollen.  

Was zeichnet die Snowflake aus? 

Was Snowflake im Speziellen auszeichnet, ist ihre Architektur. Für On-Premises-Datenbanken wird ein leistungsstarker Server benötigt, der sowohl Speicherplatz als auch Rechenpower bietet, um die aktuellen und zukünftigen Bedürfnisse stillen zu können. Man muss im Voraus einen detaillierten Plan aufstellen, wie sich der zukünftige Bedarf entwickeln wird. Mit dem Umstieg auf Snowflake kann man sich offenhalten, wie der Bedarf sein wird. Snowflake erlaubt die Speicherung und die Verarbeitung von Daten unabhängig und getrennt zu skalieren und ermöglicht so eine neue Form der Flexibilität für das Data Warehousing. Konkret bedeutet dies: Unternehmen, die zwar große Datenmengen speichern müssen, aber für Datentransformationen kaum Rechenpower benötigen, zahlen auch (hauptsächlich) nur für den Speicherplatz. Auch im anderen Fall, wenn die Datenmenge überschaubar ist, aber starke Rechenpower benötigt wird, um Analysen durchzuführen zu lassen, fallen vorwiegend nur die Kosten für die bereitgestellte Rechenpower an. Die Kosten für Speicherkapazität werden pro Terabyte und Monat berechnet, die Kosten für Rechenpower werden auf die Sekunde genau abgerechnet. Genau genommen besteht die Snowflake Architektur aus drei Schichten, welche unabhängig voneinander skalierbar sind 

  • Cloud Services: Dies ist die Schaltzentrale von Snowflake. In dieser Schicht werden die Aktivitäten der Snowflake koordiniert und organisiert. Zu diesen gehören Authentifizierung, Zugriffskontrolle, Infrastruktur- und Metadatenmanagement, Abfragenoptimierung und vieles mehr.  

  • Query Processing: Snowflake verarbeitet in dieser Schicht Abfragen, in dem sie sogenannte „Virtual Warehousesnutzt. Jedes dieser „Virtual Warehouses“ ist ein eigenständiges MPP-Cluster, welches aus mehreren Rechenknoten besteht und seine Rechenpower nicht mit anderen „Virtual Warehouses“ teilt. Infolgedessen üben sie keinen Einfluss auf die Leistung anderer Virtual Warehouses aus. 

  • Database Storage: Diese Architekturschicht bietet praktisch unendlich viel Platz für Datenspeicherung. Wenn Daten in Snowflake geladen werden, verarbeitet Snowflake diese in ihrem eigenen komprimierten Spaltenformat. Dabei übernimmt Snowflake die klassischen Datenbankadministrierungsaufgaben zu Organisation, Dateigröße, Struktur, Komprimierung, Metadaten, Statistiken und weiteren Aspekten der Datenspeicherung. Der Enduser muss sich im Gegensatz zu klassischen Datenbanken keinerlei Gedanken hierzu machen. 

Snowflake

ITGAIN Snowflake

Architekturschichten

Welche Vorteile bringt ein Wechsel auf die Snowflake? 

Die Frage, ob der Wechsel auf die Snowflake Vorteile bringt, lässt sich nur beantworten, wenn man die Stärken der Snowflake beleuchtet und den eigenen Anforderungen im Unternehmen gegenüberstellt. Schauen wir uns mal einige dieser Stärken an: 

  • Servergröße: Im Gegensatz zu traditionellen Systemen, bei denen ein massiver Server bereitgestellt wird (und für den bereits das Upgrade in einigen Jahren geplant ist), kann Snowflake in einem einzelnen XS Cluster bereitgestellt und bei Bedarf vergrößert und verkleinert werden. 

  • Speicherplatz: Die Datenspeicherung von Cloud-Anbietern ist zumeist kostengünstig und nahezu unendlich groß. 

  • Security: Snowflake enthält eine Vielzahl von Sicherheitsfunktionen, die in das Gesamtkonzept integriert sind. Darunter finden sich Funktionen wie IP-Whitelisting, Multi-Faktor-Authentifizierung, End-To-End-Verschlüsselung und mehr. 

  • Notfallwiederherstellung: Daten werden automatisch in drei Verfügbarkeitszonen repliziert und können bei Verlust schnell wiederhergestellt werden. 

  • Software Upgrades: Da Snowflake als SaaS bereitgestellt wird, werden sowohl Betriebssystem als auch Datenbank Upgrades automatisch und im Hintergrund durchgeführt.  

  • Performance: Die Größe von Clustern kann im laufenden Betrieb angepasst werden, um unerwartet hohe Datenmengen zu bewältigen, sodass Performanceeinbußen der Vergangenheit angehören.  

  • Parallelität: Jedes Cluster kann so konfiguriert werden, dass bei einer großen Anzahl von zeitgleichen Datenbankzugriffen die Rechenleistung automatisch nach oben skaliert und im Anschluss wieder zurückgesetzt wird, wenn es nicht mehr benötigt wird. 

  • Maintenance und Datenbankoptimierung: Da Snowflake keine Indizes hat, ist in der Regel keine Optimierung der Datenbank erforderlich. DBA-Ressourcen sind kaum erforderlich.

Und wie sieht es mit Schwächen der Snowflake aus? 

Jedes System, jede Datenbank und jeder Service hat seine Vor- und Nachteile. Bei einer fairen Betrachtung und Evaluierung ist daher auch immer ein Blick auf die Schwächen nötig. Wie bei den Stärken, muss man auch hier die eigenen Anforderungen im Unternehmen gegenüberstellen und entscheiden, ob man diese „in Kauf nimmt. Einige Punkte wären: 

  • Datenschutzfragen: Insbesondere im EU-Raum muss man sich mit diesem Thema intensiv auseinandersetzen, da viele Punkte zu klären und/ oder zu klären sind. Wo liegen die Daten? Wird der DSVGO genüge getan? 

  • Serviceabhängigkeit: Bei einer Notfallwiederherstellung ist man gänzlich vom Snowflake Support abhängig, da man nicht eigenständig die Daten wiederherstellen kann. Man muss darauf vertrauen können, dass Snowflake sofort reagieren kann und wird. 

  • Kleines Ökosystem: Snowflake ist im Vergleich zu ihrer Konkurrenz noch eine junge Technologie, was sich teils in fehlender Funktionalität zeigt: Eingeschränkte UI-Funktionalität oder aber auch teils fehlende oder schwierige Integration von ETL-Tools 

  • Auswahl an Cloudplattformen: Derzeit hat man nur drei Wahlmöglichkeiten, um Snowflake zu betreiben: Amazon Web Services (seit 2014), Microsoft Azure (2018) und Google Cloud Platform (2019). Man ist somit gezwungen auf einen (oder mehreren) dieser drei Cloudanbieter zurückzugreifen. 

  • Keine Constraints: Snowflake prüft keine Constraints außer „Not Null“. Zwar ist es möglich Constraints wie „Primary Key“ oder „Unique“ anzulegen, jedoch werden diese nicht forciert. Diese Eigenheit muss bei der Datenmodellierung unbedingt mit beachtet werden.  

Nach dieser kurzen Einführung lässt sich hoffentlich erahnen, welche Möglichkeiten sich für Unternehmen mit dem Umzug in die Cloud eröffnen, aber auch welche Fallstricke beachtet werden müssen. Falls der erste Artikel Lust auf mehr macht, folgt gerne unserer Blogserie, in der wir verschiedene Aspekte zu BI in der Cloud beleuchten, oder kontaktiert uns direkt. Wir sind gerne für Gespräche und Anregungen offen. 

Quelle Bild: https://docs.snowflake.com/en/_images/architecture-overview.png 

Neuen Kommentar schreiben

Ihre E-Mail Adresse wird nicht veröffentlicht.