Game-Changer
Vorteile der Cloud
Cloud-Technologien verbreiten sich immer massiver in der IT-Landschaft. Laut Gartner sollen die Gesamtausgaben der End-Nutzer im Bereich öffentlicher Cloud-Services 2022 gegenüber dem Vorjahr um 20,4% steigen. Die größten öffentlichen Cloud-Plattformen sind aktuell Amazon Web Services (AWS), Microsoft (Azure) und Google (GC).
Zahlreiche Vorteile der Cloud-Services gegenüber on-premises Rechnerzentren überzeugen viele Unternehmen in verschiedenen Punkten:
- Preis: Statt Personalaufwand und hohen Anschaffungs- und Wartungskosten von Hard- und Software für on-premises Systeme bietet die Cloud das Pay-As-You-Go Model. In der Cloud zahlt man in der Regel nur für Ressourcen, die man tatsächlich nutzt, wobei der komplette Beschaffungsprozess durch den Cloud-Service-Anbieter abgedeckt wird.
- Skalierbarkeit: Die Cloud erlaubt es, Speicher- und Rechnerkapazitäten schnell und beinah unbegrenzt bereitzustellen. Außerdem verfügen viele Cloud-Services über Autoskalierungsmechanismen. Dadurch können Cloud-basierte Anwendungen flexibel und kosteneffizient auf sich ändernde technische Anforderungen reagieren.
- Hochverfügbarkeit: Die Cloud kann die Ausfallzeit von Services und das Risiko des Datenverlusts durch mehrere getrennte Rechnerzentren (Verfügbarkeitszonen) und automatische Failover-Optionen minimieren.
- Integration: Die Cloud bietet ein breites Spektrum von Services in den Bereichen Infrastructure‑, Plattform und Software-as-a-Service (IaaS, PaaS, SaaS). Die Services sind meistens nativ untereinander verknüpft. Dies erleichtert die Entwicklung von cloud-nativen Anwendungen und verkürzt deren Markteinführungszeit.
- Sicherheit: Die Provider investiert extrem hohe Beiträge und beschäftigt tausende Sicherheitsexperten, um zuverlässige und sichere Lösungen für die Kunden zu schaffen.
Zahlreiche Unternehmen migrieren deshalb ihre IT-Services teilweise oder komplett in die Cloud-Umgebung. Ein wesentlicher Bestandteil davon ist Data Warehouse (DWH). Der aktuelle Blogbeitrag widmet sich Snowflake, einer der führenden SaaS-Lösungen für Cloud-DWH.
Snowflake SaaS
Snowflake gehört zur Kategorie “Software-as-a-Service”. Die Software basiert auf einer Architektur, die speziell für die Cloud konzipiert wurde, um die Vorteile der Cloud zu nutzen und typische Probleme der traditionellen on-premises DWH zu lösen. Zu den letzten gehören:
- mangelnde Skalierbarkeit von Ressourcen je nach Bedarf;
- Kopplung zwischen Speicher- und Rechnerkapazität;
- komplexe Infrastruktur- und Datenverwaltung;
- Aufwand für Upgrades und Optimierungen.
Der Snowflake-Service wird aktuell auf den drei größten öffentlichen Cloud-Plattformen AWS, Azure und GC angeboten. Der Kunde muss dabei keine Hardware und Software selbst bereitstellen, konfigurieren oder warten, denn dies wird vollständig durch Snowflake übernommen.
Architektur
Snowflake vereint die bekannten Shared-Disk und Shared-Nothing Architekturen. Es gibt einen zentralen Speicherort für Daten, die mit Rechnerclustern nach dem Massively Parallel Processing (MPP) Ansatz verarbeitet werden. Der Datenspeicher und die Compute-Ressourcen können getrennt skaliert werden. Alle Daten stehen allen Nutzern zur Verfügung und können von ihnen durch unabhängige Rechnercluster verarbeitet werden.

Die gesamte Snowflake Architektur besteht aus drei Schichten:
- Datenbankspeicher:
Snowflake speichert alle geladenen Daten in einem proprietären, optimierten und komprimierten Format im zugrundeliegenden Cloud-Speicher (Azure Storage, AWS S3, Google Cloud Storage). Die Daten werden beim Laden automatisch spaltenbasiert in Mikropartitionen (50–500 MB unkomprimiert) unterteilt. Snowflake speichert zusätzlich Metadaten über alle Mikropartitionen und minimiert dadurch optimal die Laufzeit der Abfragen.
Ursprünglich war Snowflake vor allem für analytische Workloads wie Data Science und Business Intelligence (BI) konzipiert. Allerdings hat Snowflake dieses Jahr den neuen zeilenbasierten Speicherprozess annonciert, mit dem nun auch Transaktionsanwendungen sinnvoll unterstützt werden können.
- Abfrageverarbeitung:
Die Verarbeitung der Abfragen findet in den Virtuellen Warehouses statt. Ein Virtuelles Warehouse ist ein Compute-Cluster bestehend aus mehreren Knoten. Als Nutzer muss man nur die Größe des Virtuellen Warehouses auswählen, wobei Snowflake sich um die Provisionierung von Rechnerressourcen bei der jeweiligen Cloud-Plattform kümmert.
Bei der Nutzung der Virtuellen Warehouses stehen Kosten und Effizienz im Mittelpunkt. Die Performanz für größere Abfragen kann z. B. manuell durch die Änderung der Warehouse-Größe des Virtuellen Warehouses (vertikale Skalierung) erhöht werden. Gleichzeitig kann das Virtuelle Warehouse mit den Auto-Resume und Auto-Suspend Optionen konfiguriert werden, um den Leerlauf des Warehouses zu vermeiden. Um auf viele parallele Abfragen zu reagieren, kann die Anzahl der Cluster im Warehouse automatisch skaliert werden (horizontale Skalierung). Auf dieser Weise kann Snowflake verschiedene produktive Szenarien optimal bedienen.
- Clouddienste:
Die Clouddienste übernehmen letztendlich die Koordination zwischen allen Snowflake-Komponenten, von Authentifizierung und Zugriffsteuerung bis Abfrageoptimierung und Metadatenmanagement.
Data Cloud
Snowflake positioniert sich seit 2019 als eine globale Cloud-Daten-Plattform statt eines Cloud-DWH-Dienst. Snowflake adressiert die prioritären Kundenanforderungen, damit die Kunden sich vor allem auf die Arbeit mit den Daten und die Generierung des Mehrwerts fokussieren können. Dazu zählen die folgenden Eigenschaften:
- Der Service bietet automatische optimierte Datenspeicherung und schnelle vertikale und horizontale Skalierung von Compute-Ressourcen, um möglichst vielen Workloads gerecht zu werden.
- Der Service übernimmt die Themen wie Upgrades, Backups, Optimierungen und Administrierung.
- Der Service schafft die technische Grundlage fürs Teilen der Daten innerhalb oder außerhalb des Unternehmens.
Die traditionelle Datenarchitektur ist oft komplex und besteht aus mehreren Schichten. Sie verwendet oft mehrere Tools und Datenspeicher, die miteinander integriert werden, um die Daten den Endnutzern bereitzustellen. Dies fördert Fehleranfälligkeit und verursacht hohe Aufwände bei der Verwaltung der Infrastruktur. Snowflake bietet stattdessen eine zentrale Daten-Plattform mit einem breiten Öko-System bestehend aus zahlreichen Technologie-Partnern.



Die Snowflake Daten-Plattform setzt auf drei Säulen:
- Elastic Performance Engine: Jedes Workload, sei es ETL, BI oder Data Science, kann auf einem dedizierten Virtuellen Warehouse in Snowflake ausgeführt werden, um zuverlässig und kosteneffizient zu laufen.
- Intelligent Infrastructure: Es gibt drei Features für eine zusätzliche Optimierung der Workloads:
- Automatic Clustering Service: Traditionelle DWHs erfordern kontinuierliche manuelle Neuordnung der Daten und Aktualisierungen des Indexes und Statistiken, um die Performanz der Abfragen bei den wachsenden Datenvolumen aufrechtzuerhalten. Snowflake dagegen kann Tabellen überwachen und entscheiden, ob ein Reclustering der Mikropartitionen sinnvoll ist, und zwar ohne jegliche Auswirkung auf den produktiven Betrieb.
- Materialized Views: Ergebnisse der häufigen und rechnerintensiven Abfragen können wiederverwendet werden, indem die Ergebnisse als Materialized Views gespeichert werden. Man spart dadurch Rechnerkosten und verkürzt die Abfragezeit. Darüber hinaus ist Snowflake in der Lage, die Daten in den Materialized Views automatisiert zu aktualisieren, sobald die zugrundeliegenden Daten sich ändern.
- Search Optimization Service: Dieses Feature hilft bei Abfragen auf großen Tabellen, wenn nur eine oder wenige Zeilen zurückgegeben werden. Der Service erstellt und pflegt einen Suchzugriffspfad basierend auf eine persistente Datenstruktur für jeweilige Tabellen. Der Nutzen von Search Optimization muss für jede Tabelle einzeln evaluiert werden.
- Snowgrid: Data Sharing mit internen oder externen Partnern erfolgt sehr oft durch Kopien von Daten. Datenverwaltung und Einhaltung der notwendigen Datenqualität werden dabei zu einer sehr anspruchsvollen Aufgabe. Snowflake dagegen erlaubt Live-Daten als Single-Point-of-Truth zu teilen. Snowflake bietet aktuell drei verschiedene Optionen fürs Data Sharing:
- Direct Share: Mit dieser Option können bestimmte Datenbankobjekte mit dem gleichen oder anderen Snowflake Accounts schreibgeschützt geteilt werden. Wichtig dabei ist es, dass keine Daten kopiert werden. Das Teilen geschieht im Hintergrund über den Cloud Services Layer und die gespeicherten Metadaten, die auf die tatsächlichen Daten zeigen. Sollte der Datenkonsument über keinen Snowflake Account verfügen, kann ein Reader Account leicht erstellt werden, um den Zugang zu dem Data Share zu gewährleisten.
- Snowflake Marketplace: Bei diesem Angebot handelt es sich um einen Katalog von Data Shares von verschiedenen Anbietern. Der Marketplace ist in allen Snowflake Accounts (außer VPS) verfügbar und somit können die Nutzer Daten von Drittanbietern in ihren eigenen Accounts wiederverwenden. Snowflake erlaubt es Daten-Providern, ihre Daten zu monetisieren, indem die Nutzung von Daten den Daten-Konsumenten in Rechnung gestellt wird.
- Data Exchange: Der Data Exchange ähnelt sich dem Snowflake Marketplace, mit der Ausnahme, dass der Zugang zum Data Exchange per Definition auf bestimmte Benutzergruppen, z.B. Kunden, Lieferenten, Partner, beschränkt ist. Dies ermöglicht eine effektive Nutzung und Auffindbarkeit von Daten zwischen verschiedenen Parteien.
Fazit
Die Data Cloud Plattform von Snowflake löst die Probleme der traditionellen DWHs und macht die Arbeit mit Daten in vielerlei Hinsicht einfacher, schneller und effizienter. Durch die grundlegende Architektur und ein großes Öko-System bildet Snowflake eine einheitliche Grundlage für verschiedene Datentypen und Workloads. Data Sharing in Snowflake kann durch mehrere Services realisiert werden, um eigene Daten flexibel und sicher zu teilen und Daten von Drittanbietern zu konsumieren. So wird es den Kunden ermöglicht, den größten Mehrwert aus ihren Daten zu generieren.