Was ist Snowflake?

Snowflake ist ein vollständig verwaltetes Cloud-MPP-Datenzentrum, das es Anwendern ermöglicht, so viele virtuelle Lager zu erstellen, wie sie benötigen, um die Leistung einzelner Abfragen zu parallelisieren und zu isolieren. Snowflake läuft in der AWS-Cloud und trennt Speicherung und Berechnung. Somit können viele Zentren gleichzeitig auf dieselbe Datenquelle zugreifen, was eine sehr hohe Parallelität ermöglicht. Snowflake ermöglicht Nutzern die Interaktion mit seinem Data Warehouse über einen Webbrowser, die Befehlszeile, eine Analyseplattform oder über Snowflakes ODBC, JDBC bzw. andere unterstützte Treiber.

Snowflake ist relativ neu auf dem Data-Warehouse-Markt und wurde 2014 nach zwei Jahren Geheimhaltung von einer Gruppe von Data-Warehousing-Experten gestartet. Seine einzigartige Architektur wurde in einem SIGMOD-Artikel von 2016 sehr gut beschrieben.

Gründe für die Wahl von Snowflake

Flexible Leistung

Mit Snowflake können Nutzer „virtuelle Warehouses“ (MPP-Rechen-Cluster) verschiedener Größen (welche während des Betriebs verändert werden können) in wenigen Minuten hoch- und herunterfahren und sie so an den jeweiligen Arbeitsumfang anpassen. Abfragen sind voneinander getrennt, sodass sie die Ressourcen des virtuellen Warehouses verbrauchen, auf dem sie ausgeführt werden. Kunden zahlen nur für die Rechenzeit, die sie tatsächlich nutzen. Dies bedeutet, dass Unternehmen die Rechenressourcen je nach der Bandbreite der ausgeführten Abfragen dynamisch skalieren und partitionieren können. Snowflake bietet außerdem Flexibilität bei den Datentypen: semistrukturierte Daten können gleichzeitig mit strukturierten Daten gespeichert und abgefragt werden.

Skalierbar

Snowflake baut auf S3 auf, das die Speicherressourcen automatisch entsprechend dem Datenvolumen skaliert. Das bedeutet, dass Nutzer sich nie den Kopf darüber zerbrechen müssen, ob sie eine willkürlich festgelegte Obergrenze für den Speicherplatz erreichen. Die Rechen-Ressourcen von Snowflake befinden sich ebenfalls komplett in der Cloud. Auf diese Weise können auch die Rechen-Ressourcen so skaliert werden, dass eine gleichbleibende Leistung garantiert wird, wenn die Komplexität und Anzahl der Abfragen steigt.

Beispiellose Parallelität

Snowflake ermöglicht es jedem beliebigen Nutzer, eine unbegrenzte Anzahl virtueller Warehouses zu erstellen, um Abfragen von verschiedenen Nutzern und Tools voneinander zu trennen. Für Unternehmen, die Looker oder andere Anwendungen mit potenziell hoher Parallelität verwenden, gibt es außerdem eine Funktion namens Multi-Cluster-Warehouses. Diese ermöglicht eine einfache, automatische Skalierung eines einzelnen virtuellen Warehouses auf mehrere Cluster.

Vollständig verwaltet

Snowflake hat das Konzept der plattformübergreifenden Verwaltung eines Datenbank-Clusters und der Knoten vereinfacht. Das bedeutet, dass die meisten Aspekte der Verwaltung einer Datenbank wie Optimierung, Datenschutz, Infrastrukturüberwachung und Verschlüsselung (die traditionell DevOps-Ressourcen in Anspruch nehmen würden) von der Snowflake-Plattform für Sie verwaltet werden.

Für welche Anwendungsfälle ist Snowflake besonders gut geeignet?

Unternehmen mit hohen Anforderungen an Parallelität

Die virtuellen Warehouses von Snowflake arbeiten als unabhängige MPP-Rechen-Cluster. Das heißt, dass Unternehmen ein virtuelles Warehouse für ETL-Prozesse und eine weitere Instanz für analytische Ad-hoc-Abfragen bereitstellen können. Datenbewegungen sind dabei nicht erforderlich, und Abfragen, die in einem virtuellen Warehouse ausgeführt werden, haben keine Auswirkungen auf andere virtuelle Warehouses. Mit der Multi-Cluster-Warehouse-Funktion von Snowflake kann ein virtuelles Warehouse (durch Hinzufügen neuer Rechen-Cluster) automatisch skaliert werden. Auf diese Weise wird eine konsistente Leistung bei jedem beliebigen Maß an Parallelität gewährleistet.

Für eingebettete analytische Anwendungsfälle, die Hunderte oder Tausende von gleichzeitigen Abfragen unterstützen müssen, bieten die virtuellen Warehouses von Snowflake eine effektive Möglichkeit zur Unterstützung einer solchen Anzahl von Nutzern – und zwar über Multi-Cluster-Warehouses, die automatisch die Anzahl der Rechen-Cluster je nach Umfang der Parallelität erhöhen.

Unternehmen mit sehr großen, ständig wachsenden Datenmengen

Snowflake ist eine hervorragende Lösung für Unternehmen, die an einer schnellen Skalierung ihrer Datensammlung mit minimalem Verwaltungsaufwand interessiert sind. Da Snowflake S3 als Speicher verwendet, sind seine Speicherkapazitäten praktisch unbegrenzt. Die Architektur von Snowflake trennt die Speicherung und Berechnung so, dass beliebig viele virtuelle Warehouses auf dieselben Daten zugreifen können. Die Kosten für die Datenspeicherung sind mit den Kosten für S3 vergleichbar.

Analysten, die mit semistrukturierten Daten arbeiten müssen

Snowflake verfügt über einen umfassenden Funktionskatalog für die Arbeit mit semistrukturierten Daten und einer Reihe von Datenformaten wie JSON, Avro, ORC, Parquet und XML. Snowflake bietet ein hohes Maß an Flexibilität bei der Speicherung und Abfrage semistrukturierter Daten.

Ein hervorragendes Beispiel für Snowflakes Unterstützung semistrukturierter Daten ist die Fähigkeit von Snowflake, mehrere Datentypen in einem VARIANT Datenwert zu speichern, einem Datenformat, das mehrere Datentypen speichern kann, ohne die Struktur der Daten selbst aus Sicht des Benutzers zu verändern.

Unternehmen, die ihre Daten teilen oder gewinnbringend einsetzen möchten

Snowflake führte das Data Sharing ein, das es Unternehmen ermöglicht, ihre Daten mit Kunden, Partnern oder Verkäufern zu teilen. Dazu werden diese Daten in Snowflake geladen und jeder teilnehmenden Partei der Zugriff darauf ermöglicht. Im Gegensatz zu herkömmlichen Methoden zur gemeinsamen Nutzung von Daten gibt es hier keine Zerlegung, Bewegung oder Übertragung von Daten. Der Datenanbieter gewährt seinen Datenkonsumenten (Kunden/Partnern) einfach Zugang über ein spezialisiertes Datenbankobjekt. Bei Aufnahme weiterer Datenkonsumenten kann der Datenanbieter weiterhin dieselben Daten oder Teilmengen dieser Daten mit minimalem Aufwand und über Standard-SQL teilen.

Bevor Sie sich festlegen

Preise

Snowflake bietet, genau wie viele Cloud MPP Data Warehouses, zwei Zahlungsoptionen: On-Demand und nach Kapazität. Die On-Demand-Preisoption bietet den Nutzern ein „Pay-as-you-go“-Modell (Zahlung bei Gebrauch) ohne langfristige Bindung. Für Unternehmen, die größere Rabatte wünschen, bietet die Zahlung nach Kapazität einen ermäßigten Tarif, der an eine Kapazitätsverpflichtung gebunden ist.

Snowflake ist in vier Versionen erhältlich, von denen jede leicht unterschiedliche Funktionen und SLA aufweist. Diese Versionen sind:

Weitere Informationen über die Preise von Snowflake finden Sie auf der Preis-Seite des Unternehmens.

Hinweis: Die Preise für Snowflake können je nach Deployment-Ort variieren.

Die Architektur von Snowflake

Snowflake zeichnet sich durch eine patentierte Multi-Cluster Shared-Data-Architektur aus, welche dieses Data Warehouse von allen anderen Cloud-MPP-Anbietern unterscheidet. „Multi-Cluster“ bedeutet, dass Snowflake in der Lage ist, mehrere einzelne Rechen-Engines bzw. virtuelle Warehouses über einer gemeinsamen Speicherebene einzurichten.

Die Architektur von Snowflake hat zwei getrennte Ebenen:

  • Datenspeicher: speichert Tabellendaten und mit Abfragen verbundene temporäre Daten,
  • Rechen-Engine: eine Rechen-Engine, die von einzelnen Nutzern hochgefahren werden kann,
  • Services: die Management-„Gehirne“ von Snowflake, die für Sicherheit, Metadaten, Optimierung, Ressourcenmanagement und anderes verantwortlich sind.

Datenspeicher

Amazon S3 dient aufgrund seiner Benutzerfreundlichkeit, hohen Verfügbarkeit und Widerstandsfähigkeit als zentrales Datenrepository für die Snowflake-Plattform. Snowflake nutzt S3, um Tabellendaten und temporäre Daten für sehr große und teure Abfragen zu speichern. Die Ablage temporärer Daten in S3 gewährleistet, dass Snowflake diese großen Abfragen ausführen kann, ohne einen „Out-of-Memory“- oder „Out-of-Disk“-Fehler zu verursachen.

Virtuelle Warehouses

Zur Verarbeitung von Abfragen erlaubt Snowflake dem Nutzer die Bereitstellung von Clustern von Amazon-EC2-Instanzen, die als virtuelle Warehouses (VW) bezeichnet werden.

Die einzelnen EC2-Instanzen, die das jeweilige VW bilden, werden vom Nutzer abstrahiert. Der Nutzer kann daher nicht genau kontrollieren, wie viele Instanzen in jedem virtuellen Warehouse enthalten sind. Vielmehr kann der Nutzer aus virtuellen Warehouses unterschiedlicher Größe wählen.

Virtuelle Warehouses sind reine Rechenmechanismen, die bei Bedarf erstellt, zerstört oder in der Größe verändert werden können. Snowflake empfiehlt seinen Nutzern, ihre virtuellen Warehouses zu deaktivieren, wenn keine Abfragen laufen (sodass keine Gebühren anfallen). Diese Architektur verleiht Snowflake seine Elastizität bzw. die Fähigkeit, Abfragen entsprechend der Nachfrage zu skalieren.

Jedes dieser virtuellen Warehouses fungiert als völlig separater Rechner-Cluster, ohne dass Anfragen oder Ressourcen zwischen ihnen geteilt werden. Abfragen können daher nur auf einem VW ausgeführt und nicht über virtuelle Warehouses hinweg geteilt werden. Das führt zu einer starken Leistungsisolation zwischen den VWs. Die Stärke von Snowflake zeigt sich dann, wenn mehrere VWs hochgefahren und für verschiedene, gleichzeitig ausgeführte Aufgaben mit jeweils mehreren parallelen Abfragen eingesetzt werden. Dank der „Multi-Cluster-Warehouse“-Funktion können VWs so konfiguriert werden, dass sie automatisch für parallele Abfragen skaliert werden.

Services

Die Cloud-Services-Ebene von Snowflake übernimmt die gesamte Verwaltung und Administration der Snowflake-Plattform. Im Gegensatz zu den Rechenressourcen, die so konzipiert sind, dass sie nach Bedarf hoch- und heruntergefahren werden können, ist die Services-Ebene von Snowflake immer aktiv, um Verwaltungsprozesse für mehrere virtuelle Warehouses abzuwickeln.

Die Services-Ebene von Snowflake ist für eine Vielzahl von Prozessen verantwortlich, darunter Abfrageverwaltung und -optimierung, Sicherheit, Nutzerverwaltung und Metadatenverwaltung.

Datentypen

Snowflake kann sowohl tabellarische als auch semistrukturierte Daten einlesen, die aus (abgegrenzten) Textdateien, JSON, Avro, Parquet, XML und Spaltenformaten stammen.

Anders als bei vielen anderen Datenbanken sind die Anforderungen an die Vorverarbeitung, Verflachung und Denormalisierung von Datensätzen vor dem Laden bei Snowflake weniger komplex. Dies gilt insbesondere für semistrukturierte Daten, da Snowflake die Daten beim Laden automatisch in Spalten aufteilt. Nach dem Laden der Daten in Snowflake werden diese automatisch komprimiert.

Maximal empfohlene Datengröße

Da Snowflake auf S3 beruht, welches die Speicher nahtlos entsprechend der Datenmenge skaliert, und da Snowflakes Rechen-Architektur Speicher und Berechnung voneinander trennt, gibt es keinerlei architektonische Grenzen für die Datenmenge, die gespeichert und verarbeitet werden kann.

Implementierung von Snowflake

Implementierung von Snowflake

Der Umstieg auf Snowflake wird durch die Abstraktion der Cloud-Speicherung erleichtert. Da Snowflake AWS-Ressourcen verwendet, können Kunden, die ihre Daten in einem Amazon S3-Bucket speichern, diese problemlos in Snowflake laden.

Wenn die Daten Ihres Unternehmens also bereits in S3 sind, muss Snowflake nur auf Ihr S3-Repository gerichtet werden, um diese Daten in Snowflake zu laden (ein Vorgang, der in wenigen Minuten erledigt werden kann). Dann können Sie umgehend Abfragen starten.

Prozess für neue Daten

Es gibt mehrere Möglichkeiten zum Laden von neuen Daten in Snowflake:

  • Die Webschnittstelle ist ein praktisches Tool, um kleinere Datenmengen schnell aus einem kleinen Satz flacher Dateien in eine Tabelle zu laden.
  • Die Kommandozeilenschnittstelle SnowSQL ermöglicht das Laden von Daten:
    • aus einem externen Amazon S3-Bucket, und zwar in 4 Schritten (Datei-Staging, Auflisten von Dateien, Kopieren von Dateien in die Tabellen und Verifizierung der geladenen Daten),
    • wobei die Dateien in S3 in jedem unterstützten Format, einschließlich CSV und JSON, vorliegen können.

Snowflake bietet auch parallelisierte Daten-Uploads und -Abfragen, die mit der Option zur Ausführung mehrerer Rechen-Cluster gepaart sind. Auf diese Weise kann eine leistungsfähige Umgebung bereitgestellt werden, die traditionelle Probleme im Zusammenhang mit der Parallelität vermeidet.

Für Unterstützung beim Aufbau von ETL-Pipelines können Sie einen ETL-Partner nutzen, der eine Integration in Snowflake ermöglicht. Für weitere Informationen kontaktieren Sie bitte Looker.

Wartung

Snowflake enthält ein Überwachungs-Tool und Diagramme, welche die Warehouse-Auslastung über einen Zeitraum von zwei Wochen anzeigen. Anhand dieses Diagramms kann der Nutzer entscheiden, ob er ein zusätzliches Warehouse einrichten möchte, um die in der Queue verbleibenden Abfragen in dieses Warehouse zu verschieben, oder ob er dem aktuellen Warehouse weitere Cluster hinzufügen und so mehr Parallelität erzielen möchte. Außerdem können Abfrageausführungspfade und -prozesse angezeigt werden.

Schutz und Verfügbarkeit von Daten

Die Nutzung von S3 als Speicherebene von Snowflake bedeutet, dass in Snowflake gespeicherte Daten dessen Resilienz in vollem Umfang erben. Die Snowflake-Plattform erhöht die Resilienz von S3 durch Funktionen wie Time Travel (ermöglicht den Nutzern den Zugriff auf alle historischen Daten in einem definierten Zeitraum) und Fail-Safe (gewährleistet den Schutz der Daten bei einem Hardware-Ausfall oder einer Sicherheitsverletzung) noch weiter. Die Dateien und das Verkehrsnetz werden standardmäßig, sowohl während der Übertragung als auch im Ruhezustand, vollständig und automatisch verschlüsselt. Snowflake ist überdies komplett SOC 2-, PCI- und HIPAA-konform.

Für Kunden mit zusätzlichen Sicherheitsanforderungen bietet Snowflake dedizierte Rechenressourcen und weitergehende Sicherheitsfunktionen. Snowflake integriert Sicherheitsinformations- und Ereignis-Management-Tools in seine Plattform, um Nutzern bei der Erkennung von verdächtigen Aktivitäten und der Benachrichtigung von Kunden zu helfen.

Entdecken Sie Ihre Liebe zur Analytik.

Business Intelligence, Big-Data-Analyse oder eine 360°-Ansicht Ihrer Kunden.
Was auch immer Sie benötigen, Looker steht Ihnen zur Seite. Sprechen Sie einfach mit unseren Datenexperten.

Demo anfordern