Wie kann sich ein Unter­neh­men auf die zukünf­ti­gen Her­aus­for­de­rung von expo­nen­ti­ell wach­sen­den Daten­men­gen und Ver­ar­bei­tungs­pro­zes­sen, so wie auf­wän­di­gen Ana­ly­se­ver­fah­ren vor­be­rei­ten? In wel­chen Fäl­len macht ein Cloud Data Ware­house Sinn und wel­che Aspekte gilt es bei der Wahl des opti­ma­len Anbie­ters zu beach­ten? Erste Ant­wor­ten auf diese Fra­gen lie­fert das Semi­nar Ein­füh­rung in Cloud Data Ware­housing: Snow­flake vs. Redshift.

Warum Cloud & wie unter­schei­den sich die Anbieter

Der Schritt in die Cloud bie­tet sowohl in Bezug auf Com­pute-Res­sour­cen als auch für Data-Ware­housing ein hohes Maß an Fle­xi­bi­li­tät. Ser­ver­less Archit­e­cu­res ermög­li­chen gleich meh­rere Vor­teile gegen­über einer eigens admi­nis­trier­ten Hard­ware Infrastruktur. Es ent­fal­len die Kos­ten für Instand­hal­tung und der Auf­wand Upgrades zu pla­nen und zu instal­lie­ren. Wei­ter­hin kön­nen Kos­ten mit dem Pay-as-you-go Modell maß­ge­schnei­dert mit dem Res­sour­cen­ver­brauch ska­lie­ren. Inef­fi­zi­en­tes Idling wird elemi­niert wobei gleich­zei­tig auf Last­spit­zen spon­tan inner­halb von Minu­ten reagiert wer­den kann. Cloud DWHs ergän­zen die Liste von Vor­tei­len zusätz­lich durch eine extrem hohe Aus­fall­si­cher­heit und sehr gute Reco­very Ange­bote, wel­che durch Daten­re­pli­ka­tion in geo­gra­phisch getrenn­ten Regio­nen erreicht wer­den. Der Cloud Ansatz erlaubt so eine sehr gute Ska­lier­bar­keit von IT-Res­sour­cen und Busi­ness­an­for­de­run­gen. Bei zu gerin­gen Busi­ness­an­for­de­run­gen oder der Hand­ha­bung von Daten, die sehr sen­si­bel sind, ist die Ver­wen­dung von Cloud Diens­ten jedoch genau­es­tens zu prüfen.

Einige der aktu­el­len top Cloud DWH-Player sind Ama­zon Reds­hift, Google Big­Query, Azure Syn­apse Ana­ly­tics und Snow­flake. Um einen ers­ten Gesamt­ein­druck von die­sen Anbie­tern zu bekom­men, eig­net sich eine Gegen­über­stel­lung anhand diver­ser Kri­te­rien wie Kos­ten, Ska­lier­bar­keit, Per­for­mance, Ent­wick­lung, Deploy­ment, Admi­nis­tra­tion, so wie Secu­rity und Compliance.

Kon­kret ist es wich­tig in Erfah­rung zu brin­gen wie frei Sto­rage- und Com­pu­te­kos­ten ska­lier­bar sind und wel­che Preise im Ein­zel­nen pro Tera­byte Spei­cher und Com­pute-Zeit­ein­heit anfal­len. In Sachen Ska­lier­bar­keit inter­es­siert vor allem, wie gra­nu­lar Res­sour­cen ver­ti­kal hin­zu­ge­bucht wer­den kön­nen und wel­che maxi­ma­len Gren­zen hier gel­ten. Aut­o­s­ca­ling und eine Pause/Resume Funk­tion kön­nen als wei­tere Ent­schei­dungs­aspekte mit auf­ge­nom­men wer­den. Wie die Kon­kur­ren­ten per­for­mance-tech­nisch abschnei­den, lässt sich anhand der Kri­te­rien Opti­mie­rungs­auf­wand und Caching genauer begut­ach­ten. Kom­ple­xer wird die Dif­fe­ren­zie­rung hin­sicht­lich admi­nis­tra­ti­ver Fea­tures. Alle Ange­bote bie­ten Lösun­gen in Sachen Sche­du­ling an und las­sen hier auch zusätz­lich den Ein­satz von exter­nen Tools zu. Der Sup­port von SQL und Semi Struc­tu­red Data wird von jedem Anbie­ter umfang­reich unter­stützt. Wei­tere Aspekte sind der Auf­wand beim Setup, wel­cher sich meist ein­fach bis mode­rat gestal­tet und die Unter­stüt­zung von Backup Funk­tio­nen wie z.B. Time-Tra­vel. In puncto Secu­rity fällt die Betrach­tung auf Ver­schlüs­se­lungs­mög­lich­kei­ten, so wie die Unter­stüt­zung von Cus­to­mer Mana­ged Keys, Multi Fac­tor Authen­ti­fi­ca­tion und zei­len­ba­sier­ter Security.

Ama­zon Reds­hift vs Snowflake

Bei der Betrach­tung von Cloud Spei­chern bemerkt man schnell die starke Prä­senz von Ama­zons S3 (Simple Sto­rage Ser­vice). Ein Ange­bot, wel­ches mit diver­sen Fea­tures wie extrem hoher Bestän­dig­keit, Ver­füg­bar­keit und fle­xi­bel ska­lier­ba­ren Sto­rage-Tiers auf­war­ten kann. Zusätz­lich ermög­licht S3 eine Dis­as­ter-Reco­very durch Cross-Region Repli­ca­tion und unter­stützt direkt Ver­sio­nie­rung, so wie Ver­schlüs­se­lung. S3 fun­giert sowohl bei Reds­hift als auch bei Snow­flake als grund­le­gende Kom­po­nente für die Umset­zung von Data Lakes und die Rea­li­sie­rung eines Cold Data Sto­rage. Snow­flake baut ein vir­tu­el­les DWH auf, indem es Daten aus S3 auf interne SSDs läd und für zukünf­tige Abfra­gen einen Cache vor­hält, um Zugriffs­zei­ten zu ver­rin­gern. Mit Inter­nal und Exter­nal Stages kann Snow­flake fle­xi­bel Daten aus On-Pre­mise Quel­len und refe­ren­zier­ten Cloud Spei­chern ver­ar­bei­ten. Bei Reds­hift hin­ge­gen lie­gen die Daten direkt auf den Nodes, wel­che rea­li­siert durch EC2 Instan­zen zu einem Clus­ter ver­bun­den wer­den und je nach Typ mit einer SSD oder HDD aus­ge­stat­tet sind. Wenn Daten­trans­for­ma­tio­nen nicht inner­halb von S3 mit z.B. Glue, EMR oder AWS-Lambda gelöst wer­den kön­nen, besteht auch die Mög­lich­keit inner­halb von Reds­hift eine Sta­ging Layer für kom­ple­xere Trans­for­ma­tio­nen zu verwenden.

Für Daten­trans­for­ma­tio­nen hin zu Reds­hift oder Snow­flake gibt es zu jedem Kom­ple­xi­täts­grad eine pas­sende Option. Lambda und Batch über­neh­men leicht­ge­wich­tige Auf­ga­ben ohne viel Over­head hin­sicht­lich Ser­ver­ma­nage­ment. Ela­s­tic Map­re­duce (EMR) und Glue hin­ge­gen ver­wen­den unter­lie­gend einen Apa­che Spark Clus­ter und eig­nen sich somit sehr gut für auf­wen­dige ETL Pro­zesse im Big Data Umfeld. Für Anfor­de­run­gen in den Berei­chen Log­ging, Orchestra­tion, Error Reco­very und Moni­to­ring wer­den Cloud­watch, Ste­pFunc­tions und Snow­flake spe­zi­ell Tasks And Pro­ce­du­res eingesetzt.

Möchte man aus Reds­hift oder Snow­flake her­aus Daten­ana­ly­sen durch­füh­ren, ste­hen ver­schie­dene inter­ak­tive SQL basierte Abfra­ge­ser­vices zur Aus­wahl. Snow­flake Exter­nal Tables abs­tra­hiert äußere Daten­quel­len und stellt sie dem User wie regu­läre Tabel­len für maxi­male Frei­heit bei der Inte­gra­tion zur Ver­fü­gung. Neben JDBC/ODBC kön­nen auch eigene Anbin­dun­gen auf Basis von Python, Java­script, Spark oder Go zum Ein­satz kom­men. Im Reds­hift Umfeld gibt es zum Einen die Erwei­te­rung Spec­trum und zum Ande­ren AWS Athena. Beide Ser­vices ermög­li­chen direkte Abfra­gen auf S3, erlau­ben die Ver­wen­dung von Glue/Hive Data Cata­logs, beherr­schen den Umgang mit unstruc­tu­red Data und bie­ten JDBC und ODBC APIs für die Anbin­dung diver­ser BI-Tools an. Athena funk­tio­niert ser­ver­less ohne jeg­li­chen Ver­wal­tungs­auf­wand und Kos­ten ent­ste­hen nur für abge­setze Queries. Spec­trum hin­ge­gen erlaubt durch die Ver­wen­dung einer zusätz­li­chen Layer an Com­pute-Nodes sehr per­for­mante Abfra­gen und ermög­licht dem Nut­zer durch die Bereit­stel­lung von inter­nen und exter­nen Tables sehr viel Fle­xi­bi­li­tät bei der Datenintegration.

Fazit

Die eigene Daten­hal­tung in der Cloud anzu­sie­deln birgt viel Opti­mie­rungs­po­ten­tial und ermög­licht in allen Busi­ness­be­rei­chen eine sehr fle­xi­ble Aus­rich­tung für die Zukunft. Die Viel­zahl von Anbie­tern erlaubt gut abge­stimmte Lösungs­an­sätze und gara­ni­tert poten­ti­elle neue Fea­tures von denen pro­fi­tiert wer­den kann. Für eine In-Depth Vor­stel­lung, wie Ama­zon Reds­hift und Snow­flake hin­sicht­lich Sto­rage, Data Trans­for­ma­tion und Data Ana­ly­sis ideal ein­ge­setzt wer­den kön­nen, lohnt sich ein Blick in unser Semi­nar: Ein­füh­rung in Cloud Data Ware­housing: Snow­flake vs. Redshift.