Die bekannten großen Data Warehouse-Systeme von namhaften Herstellern wie Oracle, IBM oder Microsoft sind zu einer Zeit entstanden als noch nicht einmal im Ansatz über Cloud-Lösungen nachgedacht wurde. Diese folgen traditionellen Systemarchitekturen, die das Potential der Cloud nicht ausschöpfen können. Bei Snowflake ist das anders! Da die plus-IT GmbH dieses Jahr Partner von Snowflake geworden ist, möchten wir hier die Technologie vorstellen.
Snowflake existiert bereits seit 2012 und wurde von ehemaligen Mitarbeitern von Oracle gegründet. 2015 ging das Unternehmen nach einer Testphase mit ausgewählten Kunden an die Öffentlichkeit und hat seitdem mehrere Tausend Kunden wie etwa Electronic Arts, Capital One und Adobe für sich gewinnen können. In ihrem Bericht „Magic Quadrant for Data Management Solutions for Analytics“ von Januar 2019 identifizierte Gartner Snowflake als Technologieführer – unseres Erachtens nach zu Recht.
Im Gegensatz zu herkömmlichen Data Warehouse-Systemen wurde Snowflake im Hinblick auf die Cloud entwickelt und ist auf den gängigen Cloud-Plattformen verfügbar. Es ist als klassisches SaaS-Produkt konzipiert, welches dem Kunden sämtliche Aufgaben von der Bereitstellung der Infrastruktur, über die Installation bzw. die Wartung bis hin zur dynamischen Skalierung des Systems abnimmt.
Bei klassischen Data Warehouse-Systemen ist es üblich, eine Infrastruktur vorzuhalten, die in der Lage ist, die benötigten Leistungsanforderungen zu erbringen. Doch wird diese Kapazität selten permanent gebraucht. Bezahlen muss man die Infrastruktur, auch wenn gerade kaum Last auf dem System ist. Bei Snowflake entfallen diese Kosten und man hat die Flexibilität Leistungskapazitäten hinzuzunehmen, wenn sie benötigt werden.
Konventionelle Architekturen bei Data Warehouse-Clustern teilen sich entweder einen gemeinsamen Speicher oder jeder Knoten des Clusters besitzt seinen eigenen Speicher. Der erste Ansatz lässt sich zwar in Punkto Rechenleistung leicht skalieren, macht aber den Speicherzugriff zum Flaschenhals. Der zweite Ansatz löst dieses Problem zwar, doch kann hier die Rechenleistung nur Hand in Hand mit dem Speicher skalieren und umgekehrt.
Die Architektur von Snowflake ist in drei völlig separate Stufen getrennt, die sich unabhängig voneinander skalieren lassen – Speicher, Rechenressourcen und Services.
Speicher:
Auf dieser Ebene macht sich Snowflake die Skalierbarkeit und Elastizität des Cloud-Blob-Speicher zu Nutze. Hierbei kommen Mikropartitionen, die spaltenweise komprimiert und verschlüsselt werden, zum Einsatz. Dadurch ist eine Beladung des Systems möglich ohne, dass eine Beeinträchtigung der Abfragen der Nutzer damit einhergeht. Dies führt bei klassischen Data Warehouse-Systemen nicht selten zu Problemen.
Rechenressourcen:
Das Laden von Daten, die Berechnung von Kennzahlen oder Abfragen durch Nutzer – all diese Operationen benötigen Rechenkapazität, die auf dieser Ebene der Architektur angesiedelt ist. Da Snowflake gemäß dem ACID-Paradigma konform ist, sind Leseoperationen konsistent und behindern gleichzeitig niemals Schreiboperationen.
Services:
Verwaltung, Sicherheit, Optimierung, Koordination von Transaktionen, Datenaustausch sowie die Handhabung von Metadaten erfolgt auf dieser Stufe. Es ist damit die Steuerungsebene, die das Zusammenspiel der einzelnen Systemkomponenten koordiniert und den Zugriff bis hin zur Rechteverwaltung der Nutzer regelt. Die aus den Micropartitionen der Speicherebene extrahierten Metadaten werden herangezogen, um die benötigten Spalten bei Abfragen zu ermitteln.
Über den von der Architektur her verschiedenen Ansatz hinaus bringt die Plattform Funktionen mit sich, die deutlich über das Funktionsset konventioneller Data Warehouse-Systeme hinaus gehen. Dazu gehören Klonen ohne Kopie, Datenfreigabe und sogar Zeitreisen. Klonen ohne Kopie erzeugt eine logische Instanz einer Datenbank, bei der lediglich die Änderungen, die vom Original abweichen gespeichert werden. Daten können auf Snowflake an Nutzer sogar außerhalb der eigenen Organisation bis auf Zeilenebene freigegeben werden. Dafür ist kein SFTP, ETL oder ähnliches notwendig. Mit Zeitreisen ist eine Änderungsdatenerfassung gemeint, die es ermöglicht im Zeitraum von bis zu 90 Tagen gelöschte Tabellen wiederherzustellen, den Inhalt einer Tabelle zu einem bestimmten Zeitpunkt abzufragen und Änderung sowie Nutzung von Daten in einem Zeitraum zu analysieren.
Besonders charmant bei der Nutzung von Snowflake ist die Sprache: Standard-SQL. Dadurch können Kunden bereits im Unternehmen aufgebautes Wissen nutzen, um von den Vorteilen dieser Plattform zu profitieren.
Fazit
Wie leicht zu sehen ist, setzt Snowflake an Punkten an, die in klassischen Data Warehouse-Systemen immer wieder zu Schwierigkeiten geführt haben. Gleichzeitig liefert das Unternehmen genau dafür Lösungen und geht dabei noch einen Schritt weiter. Es bringt Funktionen an den Start, die deutlich darüber hinausgehen. Aber es ermöglicht durch die Verwendung von Standard-SQL und einer intuitiven Steuerung einen leichten Einstieg in diese Umgebung. Insofern ist es wenig verwunderlich, dass Gartner Snowflake als Technologieführer einstuft.