Snowflake Review: Ein Data Warehouse in der Cloud verbessert

Data Warehouses, auch Enterprise Data Warehouses (EDW) genannt, sind hochparallele SQL- oder NoSQL-Datenbanken, die für die Analyse entwickelt wurden. Mit ihnen können Sie Daten aus mehreren Quellen importieren und aus Petabytes an Daten schnell komplizierte Berichte erstellen.

Der Unterschied zwischen einem Data Warehouse und einem Data Mart besteht darin, dass ein Data Mart normalerweise auf ein einzelnes Thema und eine einzelne Abteilung beschränkt ist. Der Unterschied zwischen einem Data Warehouse und einem Data Lake besteht darin, dass ein Data Lake Daten in seinem natürlichen Format speichert, häufig Blobs oder Dateien, während ein Data Warehouse Daten als Datenbank speichert.

Schneeflocke in Kürze

Snowflake ist ein vollständig relationales ANSI SQL Data Warehouse, das von Grund auf für die Cloud erstellt wurde. Die Architektur trennt Computer und Speicher, sodass Sie im laufenden Betrieb ohne Verzögerung oder Unterbrechung skalieren können, selbst wenn Abfragen ausgeführt werden. Sie erhalten die Leistung, die Sie benötigen, genau dann, wenn Sie sie benötigen, und Sie zahlen nur für die von Ihnen verwendete Berechnung. Snowflake läuft derzeit auf Amazon Web Services und Microsoft Azure.

     Snowflake ist eine vollständig säulenförmige Datenbank mit vektorisierter Ausführung, die es ermöglicht, selbst die anspruchsvollsten analytischen Workloads zu adressieren. Die adaptive Optimierung von Snowflake stellt sicher, dass Abfragen automatisch die bestmögliche Leistung erzielen, ohne dass Indizes, Verteilungsschlüssel oder Optimierungsparameter verwaltet werden müssen.

     Snowflake kann mit seiner einzigartigen gemeinsam genutzten Datenarchitektur mit mehreren Clustern unbegrenzte Parallelität unterstützen. Auf diese Weise können mehrere Rechencluster gleichzeitig mit denselben Daten arbeiten, ohne die Leistung zu beeinträchtigen. Snowflake kann mit seiner Multi-Cluster-Virtual-Warehouse-Funktion sogar automatisch skaliert werden, um unterschiedlichen Anforderungen an die Parallelität gerecht zu werden. Dabei werden Rechenressourcen während Spitzenlastperioden transparent hinzugefügt und bei nachlassenden Lasten verkleinert.

Schneeflocken-Konkurrenten

Zu den Konkurrenten von Snowflake in der Cloud zählen Amazon Redshift, Google BigQuery und Microsoft Azure SQL Data Warehouse. Andere wichtige Wettbewerber wie Teradata, Oracle Exadata, MarkLogic und SAP BW / 4HANA können in der Cloud, vor Ort und auf Appliances installiert werden.

Amazon Redshift

Amazon Redshift ist ein schnelles, skalierbares Data Warehouse, mit dem Sie alle Ihre Daten in Ihrem Data Warehouse und Ihrem Amazon S3 Data Lake analysieren können. Sie fragen Redshift mit SQL ab. Ein Redshift Data Warehouse ist ein Cluster, der bei gleichzeitiger Abfrage automatisch Kapazität bereitstellen und entfernen kann. Alle Clusterknoten werden jedoch in derselben Verfügbarkeitszone bereitgestellt.

Microsoft Azure SQL Data Warehouse

Microsoft Azure SQL Data Warehouse ist ein Cloud-basiertes Data Warehouse, das die Microsoft SQL-Engine und MPP (Massively Parallel Processing) verwendet, um schnell komplexe Abfragen über Petabyte an Daten auszuführen. Sie können Azure SQL Data Warehouse als Schlüsselkomponente einer Big-Data-Lösung verwenden, indem Sie Big Data mit einfachen PolyBase T-SQL-Abfragen in SQL Data Warehouse importieren und anschließend mithilfe von MPP Hochleistungsanalysen ausführen.

Azure SQL Data Warehouse ist in 40 Azure-Regionen auf der ganzen Welt verfügbar, ein bestimmter Warehouse-Server ist jedoch nur in einer einzelnen Region vorhanden. Sie können die Leistung Ihres Data Warehouse bei Bedarf skalieren, laufende Abfragen werden jedoch abgebrochen und zurückgesetzt.

Google BigQuery

Google BigQuery ist ein serverloses, hoch skalierbares und kostengünstiges Cloud-Data-Warehouse mit integrierten GIS-Abfragen, einer In-Memory-BI-Engine und maschinellem Lernen. BigQuery führt schnelle SQL-Abfragen mit Gigabyte bis Petabyte Daten aus und erleichtert den Beitritt zur Öffentlichkeit oder kommerzielle Datensätze mit Ihren Daten.

Sie können den geografischen Standort eines BigQuery-Datensatzes nur zur Erstellungszeit festlegen. Alle Tabellen, auf die in einer Abfrage verwiesen wird, müssen in Datensätzen am selben Speicherort gespeichert werden. Dies gilt auch für externe Datensätze und Speicherbereiche. Es gibt zusätzliche Einschränkungen für den Speicherort externer Google Cloud Bigtable-Daten. Standardmäßig werden Abfragen in derselben Region wie die Daten ausgeführt.

Standorte können bestimmte Orte wie Nord-Virginia oder große geografische Gebiete wie die EU oder die USA sein. Um einen BigQuery-Datensatz von einer Region in eine andere zu verschieben, müssen Sie ihn in einen Google Cloud Storage-Bucket am selben Speicherort wie Ihren Datensatz exportieren, den Bucket an den neuen Speicherort kopieren und in BigQuery am neuen Speicherort laden.

Schneeflockenarchitektur

Snowflake verwendet virtuelle Recheninstanzen für seine Rechenanforderungen und einen Speicherdienst für die dauerhafte Speicherung von Daten. Snowflake kann nicht auf privaten Cloud-Infrastrukturen (lokal oder gehostet) ausgeführt werden.

Es ist keine Installation durchzuführen und keine Konfiguration. Alle Wartungs- und Tuningarbeiten werden von Snowflake durchgeführt.

Snowflake verwendet ein zentrales Datenrepository für persistierte Daten, auf das von allen Rechenknoten im Data Warehouse aus zugegriffen werden kann. Gleichzeitig verarbeitet Snowflake Abfragen mithilfe von MPP-Berechnungsclustern (Massively Parallel Processing), in denen jeder Knoten im Cluster einen Teil des gesamten Datensatzes lokal speichert.

Wenn Daten in Snowflake geladen werden, organisiert Snowflake diese Daten in sein internes komprimiertes Spaltenformat. Auf die internen Datenobjekte kann nur über SQL-Abfragen zugegriffen werden. Sie können eine Verbindung zu Snowflake über die Web-Benutzeroberfläche, über eine CLI (SnowSQL), über ODBC- und JDBC-Treiber aus Anwendungen wie Tableau, über native Konnektoren für Programmiersprachen und über Konnektoren von Drittanbietern für BI- und ETL-Tools herstellen.

Schneeflocke

Schneeflocke Eigenschaften

Sicherheit und Datenschutz. Die in Snowflake angebotenen Sicherheitsfunktionen variieren je nach Edition. Selbst die Standard Edition bietet eine automatische Verschlüsselung aller Daten und Unterstützung für Multi-Faktor-Authentifizierung und Single Sign-On. Mit dem Enterprise-Zusatz werden verschlüsselte Daten regelmäßig neu verschlüsselt, und mit der Enterprise for Sensitive Data-Edition werden HIPAA- und PCI-DSS unterstützt. Sie können wählen, wo Ihre Daten gespeichert werden, um die EU-DSGVO-Bestimmungen einzuhalten.

Standard- und erweiterte SQL-Unterstützung. Snowflake unterstützt die meisten in SQL: 1999 definierten DDLs und DMLs sowie Transaktionen, einige erweiterte SQL-Funktionen und Teile der SQL: 2003-Analyseerweiterungen (Fensterfunktionen und Gruppierungssätze). Es unterstützt auch laterale und materialisierte Ansichten, Aggregatfunktionen, gespeicherte Prozeduren und benutzerdefinierte Funktionen.

Tools und Schnittstellen. Mit Snowflake können Sie Ihre virtuellen Lager über die GUI oder die Befehlszeile steuern. Dies umfasst das Erstellen, Ändern der Größe (ohne Ausfallzeiten), das Anhalten und Löschen von Lagern. Das Ändern der Größe eines Lagers während der Ausführung einer Abfrage ist sehr praktisch, insbesondere wenn Sie eine Abfrage beschleunigen müssen, die zu viel Zeit in Anspruch nimmt. Nach meinem besten Wissen ist das in keiner anderen EDW-Software implementiert.

Konnektivität Snowflake verfügt über Konnektoren und / oder Treiber für Python, Spark, Node.js, Go, .Net, JDBC, ODBC und dplyr-snowflakedb, eine Open-Source-Dplyr-Paketerweiterung, die auf GitHub verwaltet wird.

Datenimport und -export. Snowflake kann eine Vielzahl von Daten und Dateiformaten laden. Das schließt komprimierte Dateien ein; abgegrenzte Datendateien; JSON-, Avro-, ORC-, Parkett- und XML-Formate; Amazon S3-Datenquellen; und lokale Dateien. Es kann das Massenladen und -entladen in und aus Tabellen sowie das kontinuierliche Massenladen aus Dateien durchführen.

Datenübertragung. Snowflake unterstützt den sicheren Datenaustausch mit anderen Snowflake-Konten. Dies wird durch die Verwendung von Tabellenklonen mit Nullkopie optimiert.

Schneeflocke

Schneeflocken-Tutorials

Snowflake bietet einige Tutorials und Videos. Einige helfen Ihnen beim Einstieg, andere untersuchen bestimmte Themen und andere demonstrieren Funktionen.

Ich empfehle, die praktische Übersicht durchzuarbeiten, die im praktischen Laborhandbuch für die kostenlose Testversion mit Schneeflocken beschrieben ist.) Es dauerte weniger als eine Stunde und kostete weniger als fünf Credits. Damit blieben weitere 195 Credits in der kostenlosen Testversion übrig, was ausreichen sollte, um einige echte Daten zu importieren und einige Abfragen zu testen.

Das Tutorial verwendet häufig Snowflake-Arbeitsblätter, eine bequeme Methode zum Ausführen von Befehlen und SQL in der Web-Benutzeroberfläche. Es umfasst unter anderem das Laden von Daten; Abfragen, Zwischenspeichern von Ergebnissen und Klonen; halbstrukturierte Daten; und Zeitreise zum Wiederherstellen von Datenbankobjekten.

Insgesamt finde ich Snowflake ziemlich beeindruckend. Ich habe erwartet, dass es klobig wird, aber das ist überhaupt nicht der Fall. Tatsächlich laufen viele Data Warehouse-Vorgänge viel schneller als erwartet, und wenn es einen gibt, der zu crawlen scheint, kann ich eingreifen und das Data Warehouse vergrößern, ohne das Geschehen zu unterbrechen.

Ein Großteil der Skalierung kann automatisiert werden. Beim Erstellen eines Data Warehouse (siehe Abbildung oben) gibt es eine Option zum Zulassen mehrerer Cluster, eine Option zum Festlegen der Skalierungsrichtlinie, eine Option zum automatischen Anhalten und eine Option zum automatischen Fortsetzen. Die Standarddauer für die automatische Unterbrechung beträgt 10 Minuten. Dadurch wird verhindert, dass das Lager Ressourcen verbraucht, wenn es länger im Leerlauf ist. Die automatische Wiederaufnahme erfolgt fast augenblicklich und erfolgt immer dann, wenn eine Abfrage für das Lager erfolgt.

Angesichts der Tatsache, dass Snowflake eine 30-tägige kostenlose Testversion mit einem Guthaben von 400 USD anbietet und keine Installation erforderlich ist, sollten Sie in der Lage sein, zu bestimmen, ob Snowflake ohne Geldaufwand für Ihre Zwecke geeignet ist. Ich würde empfehlen, es zu versuchen.

- -

Kosten: 2 USD / Guthaben plus 23 USD / TB / Monat Speicher, Standardplan, Prepaid-Speicher. Ein Guthaben entspricht einer Knoten * Stunde, die von der Sekunde in Rechnung gestellt wird. Übergeordnete Pläne sind teurer.

Plattformen: Amazon Web Services, Microsoft Azure