Am veröffentlicht

Einführung in Cloud Data Warehousing

Wie kann sich ein Unternehmen auf die zukünftigen Herausforderung von exponentiell wachsenden Datenmengen und Verarbeitungsprozessen, so wie aufwändigen Analyseverfahren vorbereiten? In welchen Fällen macht ein Cloud Data Warehouse Sinn und welche Aspekte gilt es bei der Wahl des optimalen Anbieters zu beachten? Erste Antworten auf diese Fragen liefert das Seminar Einführung in Cloud Data Warehousing: Snowflake vs. Redshift.

 

Warum Cloud & wie unterscheiden sich die Anbieter

Der Schritt in die Cloud bietet sowohl in Bezug auf Compute-Ressourcen als auch für Data-Warehousing ein hohes Maß an Flexibilität. Serverless Architecures ermöglichen gleich mehrere Vorteile gegenüber einer eigens administrierten Hardware Infrastruktur. Es entfallen die Kosten für Instandhaltung und der Aufwand Upgrades zu planen und zu installieren. Weiterhin können Kosten mit dem Pay-as-you-go Modell maßgeschneidert mit dem Ressourcenverbrauch skalieren. Ineffizientes Idling wird eleminiert wobei gleichzeitig auf Lastspitzen spontan innerhalb von Minuten reagiert werden kann. Cloud DWHs ergänzen die Liste von Vorteilen zusätzlich durch eine extrem hohe Ausfallsicherheit und sehr gute Recovery Angebote, welche durch Datenreplikation in geographisch getrennten Regionen erreicht werden. Der Cloud Ansatz erlaubt so eine sehr gute Skalierbarkeit von IT-Ressourcen und Businessanforderungen. Bei zu geringen Businessanforderungen oder der Handhabung von Daten, die sehr sensibel sind, ist die Verwendung von Cloud Diensten jedoch genauestens zu prüfen.

Einige der aktuellen top Cloud DWH-Player sind Amazon Redshift, Google BigQuery, Azure Synapse Analytics und Snowflake. Um einen ersten Gesamteindruck von diesen Anbietern zu bekommen, eignet sich eine Gegenüberstellung anhand diverser Kriterien wie Kosten, Skalierbarkeit, Performance, Entwicklung, Deployment, Administration, so wie Security und Compliance.

Konkret ist es wichtig in Erfahrung zu bringen wie frei Storage- und Computekosten skalierbar sind und welche Preise im Einzelnen pro Terabyte Speicher und Compute-Zeiteinheit anfallen. In Sachen Skalierbarkeit interessiert vor allem, wie granular Ressourcen vertikal hinzugebucht werden können und welche maximalen Grenzen hier gelten. Autoscaling und eine Pause/Resume Funktion können als weitere Entscheidungsaspekte mit aufgenommen werden. Wie die Konkurrenten performance-technisch abschneiden, lässt sich anhand der Kriterien Optimierungsaufwand und Caching genauer begutachten. Komplexer wird die Differenzierung hinsichtlich administrativer Features. Alle Angebote bieten Lösungen in Sachen Scheduling an und lassen hier auch zusätzlich den Einsatz von externen Tools zu. Der Support von SQL und Semi Structured Data wird von jedem Anbieter umfangreich unterstützt. Weitere Aspekte sind der Aufwand beim Setup, welcher sich meist einfach bis moderat gestaltet und die Unterstützung von Backup Funktionen wie z.B. Time-Travel. In puncto Security fällt die Betrachtung auf Verschlüsselungsmöglichkeiten, so wie die Unterstützung von Customer Managed Keys, Multi Factor Authentification und zeilenbasierter Security.

 

Amazon Redshift vs Snowflake

Bei der Betrachtung von Cloud Speichern bemerkt man schnell die starke Präsenz von Amazons S3 (Simple Storage Service). Ein Angebot, welches mit diversen Features wie extrem hoher Beständigkeit, Verfügbarkeit und flexibel skalierbaren Storage-Tiers aufwarten kann. Zusätzlich ermöglicht S3 eine Disaster-Recovery durch Cross-Region Replication und unterstützt direkt Versionierung, so wie Verschlüsselung. S3 fungiert sowohl bei Redshift als auch bei Snowflake als grundlegende Komponente für die Umsetzung von Data Lakes und die Realisierung eines Cold Data Storage. Snowflake baut ein virtuelles DWH auf, indem es Daten aus S3 auf interne SSDs läd und für zukünftige Abfragen einen Cache vorhält, um Zugriffszeiten zu verringern. Mit Internal und External Stages kann Snowflake flexibel Daten aus On-Premise Quellen und referenzierten Cloud Speichern verarbeiten. Bei Redshift hingegen liegen die Daten direkt auf den Nodes, welche realisiert durch EC2 Instanzen zu einem Cluster verbunden werden und je nach Typ mit einer SSD oder HDD ausgestattet sind. Wenn Datentransformationen nicht innerhalb von S3 mit z.B. Glue, EMR oder AWS-Lambda gelöst werden können, besteht auch die Möglichkeit innerhalb von Redshift eine Staging Layer für komplexere Transformationen zu verwenden.

Für Datentransformationen hin zu Redshift oder Snowflake gibt es zu jedem Komplexitätsgrad eine passende Option. Lambda und Batch übernehmen leichtgewichtige Aufgaben ohne viel Overhead hinsichtlich Servermanagement. Elastic Mapreduce (EMR) und Glue hingegen verwenden unterliegend einen Apache Spark Cluster und eignen sich somit sehr gut für aufwendige ETL Prozesse im Big Data Umfeld. Für Anforderungen in den Bereichen Logging, Orchestration, Error Recovery und Monitoring werden Cloudwatch, StepFunctions und Snowflake speziell Tasks And Procedures eingesetzt.

Möchte man aus Redshift oder Snowflake heraus Datenanalysen durchführen, stehen verschiedene interaktive SQL basierte Abfrageservices zur Auswahl. Snowflake External Tables abstrahiert äußere Datenquellen und stellt sie dem User wie reguläre Tabellen für maximale Freiheit bei der Integration zur Verfügung. Neben JDBC/ODBC können auch eigene Anbindungen auf Basis von Python, Javascript, Spark oder Go zum Einsatz kommen. Im Redshift Umfeld gibt es zum Einen die Erweiterung Spectrum und zum Anderen AWS Athena. Beide Services ermöglichen direkte Abfragen auf S3, erlauben die Verwendung von Glue/Hive Data Catalogs, beherrschen den Umgang mit unstructured Data und bieten JDBC und ODBC APIs für die Anbindung diverser BI-Tools an. Athena funktioniert serverless ohne jeglichen Verwaltungsaufwand und Kosten entstehen nur für abgesetze Queries. Spectrum hingegen erlaubt durch die Verwendung einer zusätzlichen Layer an Compute-Nodes sehr performante Abfragen und ermöglicht dem Nutzer durch die Bereitstellung von internen und externen Tables sehr viel Flexibilität bei der Datenintegration.

 

Fazit

Die eigene Datenhaltung in der Cloud anzusiedeln birgt viel Optimierungspotential und ermöglicht in allen Businessbereichen eine sehr flexible Ausrichtung für die Zukunft. Die Vielzahl von Anbietern erlaubt gut abgestimmte Lösungsansätze und garanitert potentielle neue Features von denen profitiert werden kann. Für eine In-Depth Vorstellung, wie Amazon Redshift und Snowflake hinsichtlich Storage, Data Transformation und Data Analysis ideal eingesetzt werden können, lohnt sich ein Blick in unser Seminar: Einführung in Cloud Data Warehousing: Snowflake vs. Redshift.