Eines der gefrag­tes­ten The­men ist die Migra­tion von on-premises Data Warehou­ses in die Cloud. Die Migra­tion die­ser zen­tra­len Daten­spei­cher eines Unter­neh­mens birgt viele Vor­teile mit sich. Die Res­sour­cen kön­nen in der Regel vom pay-as-you-go Prin­zip der Cloud und der fle­xi­blen Ska­lier­bar­keit der Res­sour­cen pro­fi­tie­ren. Doch zu aller Beginn einer jeden Reise steht die Frage: Wohin soll es eigent­lich gehen? Um diese Frage zu beant­wor­ten, wer­den zumeist PoCs geplant und durch­ge­führt, um die ver­spro­che­nen Fähig­kei­ten des Ziels zu vali­die­ren. In die­sem Blog­bei­trag wer­den ins­be­son­dere Eck­pfei­ler eines PoCs mit Snow­flake the­ma­ti­siert. Der Fokus soll hier­bei auf gene­rel­len Struk­tu­ren und all­ge­mein­gül­ti­gen Denk­an­sät­zen liegen.

Die Pla­nung

Jeder kennt es wahr­schein­lich. Die nur kurze Eva­lua­tion eines Tools oder einer Tech­no­lo­gie zieht sich in die Länge, da wäh­rend des PoCs wei­tere inter­es­sante Fea­tures ent­deckt wur­den oder der Zeit­raum von Beginn an zu ambi­tio­niert gewählt wor­den ist. Die häu­figste Ursa­che die­ses Phä­no­mens ist eine ver­bes­se­rungs­wür­dige Pla­nungs­phase zu Beginn und auch PoCs mit Snow­flake kön­nen die­sem Phä­no­men unter­lie­gen. Aus die­sem Grund bie­tet es sich an, sich einen erfah­re­nen Part­ner zu suchen, der einen durch den PoC lei­tet. Wir von saracus emp­feh­len zumeist eine zwei­wö­chige inten­sive Pla­nungs­phase. In die­ser Pla­nungs­phase kön­nen, je nach aktu­el­lem Stand der Cloud­in­fra­struk­tur, Grund­le­gende The­men wie die Netz­werk­an­bin­dung von Snow­flake und das Berech­ti­gungs­kon­zept the­ma­ti­siert, die aktu­elle Infrastruktur und das der­zei­tige Öko­sys­tem eva­lu­iert, sowie User-Sto­ries für den PoC kon­stru­iert und vor­be­rei­tet werden.

Zu Beginn die­ser zwei­wö­chi­gen Pla­nungs­phase hat es sich bewährt, drei Work­shops durch­zu­füh­ren. In die­sen erar­bei­ten wir zusam­men mit dem Kun­den aktu­elle Pro­bleme, Her­aus­for­de­run­gen und erste Lösungs­an­sätze, tei­len unsere Best Prac­ti­ces und füh­ren einen tech­ni­schen Deep-Dive mit dem Pro­jekt­team durch und erar­bei­ten einen soge­nann­ten „Future State“ der Daten-Infrastruktur und ver­glei­chen die­sen mit dem Sta­tus Quo. Ins­be­son­dere der zweite Work­shop, in wel­chem wir Best Prac­ti­ces und Deep-Dive-Infor­ma­tio­nen aus unse­ren Pro­jek­ten tei­len, kön­nen Ein­ar­bei­tungs­zei­ten ver­kür­zen und die Zeit bis zum Go-Live reduzieren. 

User-Sto­ries und How-To

Nach­dem die oben ange­führ­ten grund­le­gen­den The­ma­ti­ken wie die Erar­bei­tung einer Infrastruktur abge­ar­bei­tet sind, gilt es User-Sto­ries zu kon­zi­pie­ren. Es emp­fiehlt sich – natür­lich – mög­lichst rea­li­täts­nahe User-Sto­ries zu erstel­len, wie bei­spiels­weise die Daten­be­lie­fe­rung eines bestimm­ten Fach­be­reichs oder eines ein­zel­nen Use-Cases sowie des­sen Report­ing. Im Opti­mal­fall kön­nen hier „echte“ Daten in ggfls. ver­frem­de­ter Form ver­wen­det wer­den. Dies ist ins­be­son­dere bei der Arbeit mit semi-struk­tu­rier­ten Daten inter­es­sant. Kon­zi­piert man sich einen eige­nen Mus­ter­da­ten­satz, so läuft man eher Gefahr, dass diese Daten „zu sau­ber“ sind. Snow­flakes Fähig­keit, semi­struk­tu­rierte Daten zu ver­ar­bei­ten, ist zwar schnell, doch kann auch schnell lang­sa­mer wer­den. Je unein­heit­li­cher das Schema der Daten wird, desto schlech­ter wird das Pru­ning auf ein­zelne Keys und somit die Gesamt­per­for­mance. Auch der Ver­gleich von ver­schie­de­nen Daten­ty­pen kann zu span­nen­den Ergeb­nis­sen füh­ren. Die Ver­ar­bei­tung von XML ist bei­spiels­weise unter gewis­sen Umstän­den erheb­lich lang­sa­mer als die Ver­ar­bei­tung von JSON. Dies hat zur Folge, dass sich Ände­run­gen in der Bereit­stel­lung der Quell­da­ten ren­tie­ren können.

In Summe lässt sich für die User-Sto­ries fest­hal­ten, dass im Opti­mal­fall die kom­plette Daten­be­lie­fe­rung ein­zel­ner Use-Cases simu­liert wird. Dies beginnt mit der Bela­dung des Data Warehou­ses und endet mit der Ver­ar­bei­tung durch den End­nut­zer im Report oder ML-Modell. An die­ser Stelle eröff­net sich zumeist ein Pro­blem, sofern die­ses in der Pla­nungs­phase über­se­hen wurde. Wel­ches Tool soll bzw. kann denn über­haupt Daten effek­tiv nach Snow­flake laden und trans­for­mie­ren? Wel­ches Tool kann die Daten aus Snow­flake am Ende ver­ar­bei­ten, visua­li­sie­ren und für eine finale Aus­wer­tung auf­be­rei­ten? Wo wird die­ses Tool zur Ver­fü­gung gestellt?

Archi­tek­tu­ren im Wandel

Ins­be­son­dere die erste Frage ist die häu­figste Frage, die wir hören, wenn es um das Thema Migra­tion zu Snow­flake geht. Viele der alten und bewähr­ten Anbie­ter am Markt ver­fol­gen immer noch und nahezu aus­schließ­lich den ETL-Ansatz zur Daten­be­wirt­schaf­tung. Dies hat zur Folge, dass Daten zunächst aus einem Sys­tem extra­hiert wer­den, dann mit­tels der dem Tool zur Ver­fü­gung ste­hen­den Res­sour­cen trans­for­miert und schluss­end­lich in ein Ziel­sys­tem gela­den wer­den. Die­ser Ansatz wider­spricht jedoch jeg­li­chen Best Prac­ti­ces zur Daten­hal­tung in Snow­flake. Nicht nur wer­den die sehr per­for­man­ten Com­pute-Res­sour­cen von Snow­flake nicht ver­wen­det, son­dern auch die Daten aus dem Sta­ging-Layer von Snow­flake phy­sisch her­un­ter­ge­la­den, was zu einem erhöh­tem Netz­werktraf­fic sowie den damit ein­her­ge­hen­den Kos­ten führt. Aus die­sem Grund wer­den klas­si­sche ETL-Tools in der Regel durch moderne ELT-Tools wie Matil­lion oder dbt ersetzt. Diese Tools ver­wen­den als Com­pute-Res­source die Warehäu­ser von Snow­flake, um eine per­for­mante Daten­ver­ar­bei­tung zu gewährleisten.

Die Eva­lua­tion des BI-Tools oder des Data Sci­ence Stacks stellt sich zumeist ein­fa­cher dar: Dank des weit­rei­chen­den Part­ner­netz­werks von Snow­flake kön­nen die meis­ten Tools über opti­mierte Kon­nek­to­ren an das neue Data Ware­house ange­bun­den wer­den. Sollte aller­dings ver­ein­zelt ein Anbie­ter nicht im Part­ner­netz­werk zu fin­den sein, so kön­nen gene­ri­sche Trei­ber zur Ver­bin­dung genutzt wer­den. Diese sind zwar nicht out-of-the-box opti­miert, ermög­li­chen aber die Ver­bin­dung zu nahezu jedem Tool. Nichts­des­to­we­ni­ger gibt es auch bei der Eva­lua­tion des Zusam­men­spiels zwi­schen Snow­flake und BI-Tool bzw. Data Sci­ence Stacks ein paar Dinge zu beach­ten. Auch hier gilt, dass die meis­ten Tools die Daten aktiv aus Snow­flake laden möch­ten. So arbei­tet Microstra­tegy zum Bei­spiel am liebs­ten auf sei­nen eige­nen Cubes und Tableau auf den eige­nen Flatfiles.

Soll­ten diese Tools on-premises gehos­tet sein, so kann der Daten­durch­satz spür­bar im Fir­men­netz­werk sein, andere Appli­ka­tio­nen blo­ckie­ren und mit nicht zu ver­nach­läs­si­gen Kos­ten ver­bun­den sein. Auch hier bie­tet sich die Moder­ni­sie­rung des Stacks an und die Migra­tion in die Cloud – zumin­dest mit­tel bis lang­fris­tig. Durch die Migra­tion kön­nen Laten­zen gering­ge­hal­ten wer­den und Res­sour­cen­spa­rend gear­bei­tet wer­den. All diese Pro­blem­stel­lun­gen kön­nen aller­dings durch eine gute Pla­nungs­phase abge­fan­gen wer­den. So wür­den genau diese Über­le­gun­gen in unse­ren Work­shops auf­ge­grif­fen und in der Ziel­ar­chi­tek­tur fest­ge­hal­ten werden.

Die User-Sto­ries, die wäh­rend der zwei­ten Phase durch­ge­spielt wer­den, stel­len also eine End-2-End Daten­be­lie­fe­rung dar, wel­che Rea­li­täts­nahe Use-Cases abbil­det. Genauso wie die Pla­nungs­phase dau­ert diese Phase des PoCs circa 2 Wochen. Neben den ange­spro­che­nen unter­schied­li­chen Datei­for­ma­ten und der Ver­ar­bei­tung von semi-struk­tu­rier­ten Daten kön­nen auch wei­tere Varia­tio­nen des Pro­zes­ses durch­ge­spielt wer­den. Hier kön­nen bei­spiels­weise alter­na­tive Bela­dun­gen über die Snow­pipe oder Exter­nal Tables ver­tes­tet wer­den und so Snow­flake-spe­zi­fi­sche Fea­tures im Detail eva­lu­iert oder aber Snow­park als Snow­flake-native alter­na­tive zum eige­nen Spark-Clus­ter erprobt werden.

Zusam­men­fas­sung

Im All­ge­mei­nen ist das Ver­pro­ben von Snow­flake kein Hexen­werk. Durch das weit­rei­chende Part­ner­netz­werk kön­nen nahezu alle ETL‑, BI- und Data-Sci­ence-Tools an das moder­ner Data Ware­house ange­schlos­sen wer­den. Die eigent­li­che Fra­ge­stel­lung, mit der man diese Tech­no­lo­gie eva­lu­ie­ren sollte, ist „Wie gut funk­tio­niert das?“, sodass man eigent­lich eher von einem „Proof of Value“ spre­chen müsste. Da on-premises Data Warehou­ses häu­fig die Mög­lich­kei­ten feh­len mit der Per­for­mance von Snow­flake im Bereich Big Data zu kon­kur­rie­ren, emp­feh­len wir außer­dem die Eva­lua­tion eines wei­te­ren Data Warehou­ses wie Goo­gles Big­Query oder Ama­zons Reds­hift, um nicht nur einen Ver­gleich zwi­schen on-premises und cloud-native, son­dern auch zwi­schen cloud-nati­ven Lösun­gen zu haben. Ähn­lich wie Snow­flake über­zeu­gen bei­des als SAAS-Platt­for­men, brin­gen jedoch ihre jeweils eige­nen Stär­ken und Schwä­chen mit. Durch eine gute Pla­nungs­phase, die im Opti­mal­fall auf bereits gelern­ten Erfah­run­gen und Best Prac­ti­ces fun­diert ist, kann die Aus­füh­rungs­phase schnell und effi­zi­ent bear­bei­tet werden.

An die­ser Stelle ein wenig Eigen­wer­bung zu unse­ren kom­men­den „Snow­flake-Mona­ten“. Wir ver­wei­sen gerne auf unser Web­i­nar zu dem Thema „How to PoC Snow­flake“, in wel­chem das Thema das Arti­kels noch ein­mal auf­ge­grif­fen wer­den. Wei­ter­hin ver­glei­chen wir in unse­rem Web­i­nar „Snow­flake vs. Reds­hift“ die bei­den Kon­tra­hen­ten mit­ein­an­der. Außer­dem bie­ten wir kos­ten­lose Snow­flake Basic und Advan­ced Web­i­nare an, in wel­chen wir Snow­flake und seine Eigen­ar­ten vor­stel­len sowie Best Prac­ti­ces und Lösun­gen prä­sen­tie­ren. Die bei­den letzt­ge­nann­ten Web­i­nare sind auch als aus­führ­li­ches Semi­nar buch­bar, wel­che erheb­lich detail­lier­ter sind. Zu guter Letzt laden wir Sie herz­lichst zu unse­rem Snow­flake Day am 19.10. ein!