Game-Chan­ger 

Vor­teile der Cloud 

Cloud-Tech­no­lo­gien ver­brei­ten sich immer mas­si­ver in der IT-Land­schaft. Laut Gart­ner sol­len die Gesamt­aus­ga­ben der End-Nut­zer im Bereich öffent­li­cher Cloud-Ser­vices 2022 gegen­über dem Vor­jahr um 20,4% stei­gen. Die größ­ten öffent­li­chen Cloud-Platt­for­men sind aktu­ell Ama­zon Web Ser­vices (AWS), Micro­soft (Azure) und Google (GC).  

Zahl­rei­che Vor­teile der Cloud-Ser­vices gegen­über on-premises Rech­ner­zen­tren über­zeu­gen viele Unter­neh­men in ver­schie­de­nen Punkten: 

  • Preis: Statt Per­so­nal­auf­wand und hohen Anschaf­fungs- und War­tungs­kos­ten von Hard- und Soft­ware für on-premises Sys­teme bie­tet die Cloud das Pay-As-You-Go Model. In der Cloud zahlt man in der Regel nur für Res­sour­cen, die man tat­säch­lich nutzt, wobei der kom­plette Beschaf­fungs­pro­zess durch den Cloud-Ser­vice-Anbie­ter abge­deckt wird. 
  • Ska­lier­bar­keit: Die Cloud erlaubt es, Spei­cher- und Rech­ner­ka­pa­zi­tä­ten schnell und bei­nah unbe­grenzt bereit­zu­stel­len. Außer­dem ver­fü­gen viele Cloud-Ser­vices über Autoska­lie­rungs­me­cha­nis­men. Dadurch kön­nen Cloud-basierte Anwen­dun­gen fle­xi­bel und kos­ten­ef­fi­zi­ent auf sich ändernde tech­ni­sche Anfor­de­run­gen reagieren. 
  • Hoch­ver­füg­bar­keit: Die Cloud kann die Aus­fall­zeit von Ser­vices und das Risiko des Daten­ver­lusts durch meh­rere getrennte Rech­ner­zen­tren (Ver­füg­bar­keits­zo­nen) und auto­ma­ti­sche Fail­over-Optio­nen minimieren. 
  • Inte­gra­tion: Die Cloud bie­tet ein brei­tes Spek­trum von Ser­vices in den Berei­chen Infrastructure‑, Platt­form und Soft­ware-as-a-Ser­vice (IaaS, PaaS, SaaS). Die Ser­vices sind meis­tens nativ unter­ein­an­der ver­knüpft. Dies erleich­tert die Ent­wick­lung von cloud-nati­ven Anwen­dun­gen und ver­kürzt deren Markteinführungszeit. 
  • Sicher­heit: Die Pro­vi­der inves­tiert extrem hohe Bei­träge und beschäf­tigt tau­sende Sicher­heits­exper­ten, um zuver­läs­sige und sichere Lösun­gen für die Kun­den zu schaffen. 

Zahl­rei­che Unter­neh­men migrie­ren des­halb ihre IT-Ser­vices teil­weise oder kom­plett in die Cloud-Umge­bung. Ein wesent­li­cher Bestand­teil davon ist Data Ware­house (DWH). Der aktu­elle Blog­bei­trag wid­met sich Snow­flake, einer der füh­ren­den SaaS-Lösun­gen für Cloud-DWH. 

Snow­flake SaaS 

Snow­flake gehört zur Kate­go­rie “Soft­ware-as-a-Ser­vice”. Die Soft­ware basiert auf einer Archi­tek­tur, die spe­zi­ell für die Cloud kon­zi­piert wurde, um die Vor­teile der Cloud zu nut­zen und typi­sche Pro­bleme der tra­di­tio­nel­len on-premises DWH zu lösen. Zu den letz­ten gehören: 

  • man­gelnde Ska­lier­bar­keit von Res­sour­cen je nach Bedarf; 
  • Kopp­lung zwi­schen Spei­cher- und Rechnerkapazität; 
  • kom­plexe Infrastruktur- und Datenverwaltung; 
  • Auf­wand für Upgrades und Optimierungen. 

Der Snow­flake-Ser­vice wird aktu­ell auf den drei größ­ten öffent­li­chen Cloud-Platt­for­men AWS, Azure und GC ange­bo­ten. Der Kunde muss dabei keine Hard­ware und Soft­ware selbst bereit­stel­len, kon­fi­gu­rie­ren oder war­ten, denn dies wird voll­stän­dig durch Snow­flake übernommen.

Archi­tek­tur

Snow­flake ver­eint die bekann­ten Shared-Disk und Shared-Not­hing Archi­tek­tu­ren. Es gibt einen zen­tra­len Spei­cher­ort für Daten, die mit Rech­ner­clus­tern nach dem Mas­si­vely Par­al­lel Pro­ces­sing (MPP) Ansatz ver­ar­bei­tet wer­den.  Der Daten­spei­cher und die Com­pute-Res­sour­cen kön­nen getrennt ska­liert wer­den. Alle Daten ste­hen allen Nut­zern zur Ver­fü­gung und kön­nen von ihnen durch unab­hän­gige Rech­ner­clus­ter ver­ar­bei­tet werden.

Die gesamte Snow­flake Archi­tek­tur besteht aus drei Schichten: 

  • Daten­bank­spei­cher:  

Snow­flake spei­chert alle gela­de­nen Daten in einem pro­prie­tä­ren, opti­mier­ten und kom­pri­mier­ten For­mat im zugrun­de­lie­gen­den Cloud-Spei­cher (Azure Sto­rage, AWS S3, Google Cloud Sto­rage). Die Daten wer­den beim Laden auto­ma­tisch spal­ten­ba­siert in Mikro­par­ti­tio­nen (50–500 MB unkom­pri­miert) unter­teilt. Snow­flake spei­chert zusätz­lich Meta­da­ten über alle Mikro­par­ti­tio­nen und mini­miert dadurch opti­mal die Lauf­zeit der Abfragen. 

Ursprüng­lich war Snow­flake vor allem für ana­ly­ti­sche Workloads wie Data Sci­ence und Busi­ness Intel­li­gence (BI) kon­zi­piert. Aller­dings hat Snow­flake die­ses Jahr den neuen zei­len­ba­sier­ten Spei­cher­pro­zess annon­ciert, mit dem nun auch Trans­ak­ti­ons­an­wen­dun­gen sinn­voll unter­stützt wer­den können. 

  • Abfra­ge­ver­ar­bei­tung: 

Die Ver­ar­bei­tung der Abfra­gen fin­det in den Vir­tu­el­len Warehou­ses statt. Ein Vir­tu­el­les Ware­house ist ein Com­pute-Clus­ter bestehend aus meh­re­ren Kno­ten. Als Nut­zer muss man nur die Größe des Vir­tu­el­len Warehou­ses aus­wäh­len, wobei Snow­flake sich um die Pro­vi­sio­nie­rung von Rech­ner­res­sour­cen bei der jewei­li­gen Cloud-Platt­form kümmert. 

Bei der Nut­zung der Vir­tu­el­len Warehou­ses ste­hen Kos­ten und Effi­zi­enz im Mit­tel­punkt. Die Per­for­manz für grö­ßere Abfra­gen kann z. B. manu­ell durch die Ände­rung der Ware­house-Größe des Vir­tu­el­len Warehou­ses (ver­ti­kale Ska­lie­rung) erhöht wer­den.  Gleich­zei­tig kann das Vir­tu­elle Ware­house mit den Auto-Resume und Auto-Sus­pend Optio­nen kon­fi­gu­riert wer­den, um den Leer­lauf des Warehou­ses zu ver­mei­den. Um auf viele par­al­lele Abfra­gen zu reagie­ren, kann die Anzahl der Clus­ter im Ware­house auto­ma­tisch ska­liert wer­den (hori­zon­tale Ska­lie­rung). Auf die­ser Weise kann Snow­flake ver­schie­dene pro­duk­tive Sze­na­rien opti­mal bedienen. 

  • Cloud­dienste: 

Die Cloud­dienste über­neh­men letzt­end­lich die Koor­di­na­tion zwi­schen allen Snow­flake-Kom­po­nen­ten, von Authen­ti­fi­zie­rung und Zugriffsteue­rung bis Abfra­ge­op­ti­mie­rung und Metadatenmanagement. 

Data Cloud  

Snow­flake posi­tio­niert sich seit 2019 als eine glo­bale Cloud-Daten-Platt­form statt eines Cloud-DWH-Dienst.  Snow­flake adres­siert die prio­ri­tä­ren Kun­den­an­for­de­run­gen, damit die Kun­den sich vor allem auf die Arbeit mit den Daten und die Gene­rie­rung des Mehr­werts fokus­sie­ren kön­nen. Dazu zäh­len die fol­gen­den Eigenschaften: 

  • Der Ser­vice bie­tet auto­ma­ti­sche opti­mierte Daten­spei­che­rung und schnelle ver­ti­kale und hori­zon­tale Ska­lie­rung von Com­pute-Res­sour­cen, um mög­lichst vie­len Workloads gerecht zu werden. 
  • Der Ser­vice über­nimmt die The­men wie Upgrades, Back­ups, Opti­mie­run­gen und Administrierung. 
  • Der Ser­vice schafft die tech­ni­sche Grund­lage fürs Tei­len der Daten inner­halb oder außer­halb des Unternehmens. 

Die tra­di­tio­nelle Daten­ar­chi­tek­tur ist oft kom­plex und besteht aus meh­re­ren Schich­ten. Sie ver­wen­det oft meh­rere Tools und Daten­spei­cher, die mit­ein­an­der inte­griert wer­den, um die Daten den End­nut­zern bereit­zu­stel­len. Dies för­dert Feh­ler­an­fäl­lig­keit und ver­ur­sacht hohe Auf­wände bei der Ver­wal­tung der Infrastruktur.  Snow­flake bie­tet statt­des­sen eine zen­trale Daten-Platt­form mit einem brei­ten Öko-Sys­tem bestehend aus zahl­rei­chen Technologie-Partnern. 

Die Snow­flake Daten-Platt­form setzt auf drei Säulen: 

  • Ela­s­tic Per­for­mance Engine: Jedes Workload, sei es ETL, BI oder Data Sci­ence, kann auf einem dedi­zier­ten Vir­tu­el­len Ware­house in Snow­flake aus­ge­führt wer­den, um zuver­läs­sig und kos­ten­ef­fi­zi­ent zu laufen. 
  • Intel­li­gent Infra­struc­ture:  Es gibt drei Fea­tures für eine zusätz­li­che Opti­mie­rung der Workloads: 
    • Auto­ma­tic Clus­te­ring Ser­vice: Tra­di­tio­nelle DWHs erfor­dern kon­ti­nu­ier­li­che manu­elle Neu­ord­nung der Daten und Aktua­li­sie­run­gen des Inde­xes und Sta­tis­ti­ken, um die Per­for­manz der Abfra­gen bei den wach­sen­den Daten­vo­lu­men auf­recht­zu­er­hal­ten. Snow­flake dage­gen kann Tabel­len über­wa­chen und ent­schei­den, ob ein Reclus­te­ring der Mikro­par­ti­tio­nen sinn­voll ist, und zwar ohne jeg­li­che Aus­wir­kung auf den pro­duk­ti­ven Betrieb. 
    • Mate­ria­li­zed Views:  Ergeb­nisse der häu­fi­gen und rech­ner­in­ten­si­ven Abfra­gen kön­nen wie­der­ver­wen­det wer­den, indem die Ergeb­nisse als Mate­ria­li­zed Views gespei­chert wer­den. Man spart dadurch Rech­ner­kos­ten und ver­kürzt die Abfra­ge­zeit. Dar­über hin­aus ist Snow­flake in der Lage, die Daten in den Mate­ria­li­zed Views auto­ma­ti­siert zu aktua­li­sie­ren, sobald die zugrun­de­lie­gen­den Daten sich ändern. 
    • Search Opti­miza­tion Ser­vice: Die­ses Fea­ture hilft bei Abfra­gen auf gro­ßen Tabel­len, wenn nur eine oder wenige Zei­len zurück­ge­ge­ben wer­den. Der Ser­vice erstellt und pflegt einen Such­zu­griffs­pfad basie­rend auf eine per­sis­tente Daten­struk­tur für jewei­lige Tabel­len. Der Nut­zen von Search Opti­miza­tion muss für jede Tabelle ein­zeln eva­lu­iert werden. 
  • Snow­grid: Data Sha­ring mit inter­nen oder exter­nen Part­nern erfolgt sehr oft durch Kopien von Daten. Daten­ver­wal­tung und Ein­hal­tung der not­wen­di­gen Daten­qua­li­tät wer­den dabei zu einer sehr anspruchs­vol­len Auf­gabe. Snow­flake dage­gen erlaubt Live-Daten als Sin­gle-Point-of-Truth zu tei­len. Snow­flake bie­tet aktu­ell drei ver­schie­dene Optio­nen fürs Data Sharing: 
    • Direct Share: Mit die­ser Option kön­nen bestimmte Daten­bank­ob­jekte mit dem glei­chen oder ande­ren Snow­flake Accounts schreib­ge­schützt geteilt wer­den. Wich­tig dabei ist es, dass keine Daten kopiert wer­den. Das Tei­len geschieht im Hin­ter­grund über den Cloud Ser­vices Layer und die gespei­cher­ten Meta­da­ten, die auf die tat­säch­li­chen Daten zei­gen. Sollte der Daten­kon­su­ment über kei­nen Snow­flake Account ver­fü­gen, kann ein Rea­der Account leicht erstellt wer­den, um den Zugang zu dem Data Share zu gewährleisten. 
    • Snow­flake Mar­ket­place: Bei die­sem Ange­bot han­delt es sich um einen Kata­log von Data Shares von ver­schie­de­nen Anbie­tern. Der Mar­ket­place ist in allen Snow­flake Accounts (außer VPS) ver­füg­bar und somit kön­nen die Nut­zer Daten von Dritt­an­bie­tern in ihren eige­nen Accounts wie­der­ver­wen­den. Snow­flake erlaubt es Daten-Pro­vi­dern, ihre Daten zu mone­ti­sie­ren, indem die Nut­zung von Daten den Daten-Kon­su­men­ten in Rech­nung gestellt wird. 
    • Data Exch­ange: Der Data Exch­ange ähnelt sich dem Snow­flake Mar­ket­place, mit der Aus­nahme, dass der Zugang zum Data Exch­ange per Defi­ni­tion auf bestimmte Benut­zer­grup­pen, z.B. Kun­den, Lie­fe­ren­ten, Part­ner, beschränkt ist. Dies ermög­licht eine effek­tive Nut­zung und Auf­find­bar­keit von Daten zwi­schen ver­schie­de­nen Parteien. 

Fazit

Die Data Cloud Platt­form von Snow­flake löst die Pro­bleme der tra­di­tio­nel­len DWHs und macht die Arbeit mit Daten in vie­ler­lei Hin­sicht ein­fa­cher, schnel­ler und effi­zi­en­ter. Durch die grund­le­gende Archi­tek­tur und ein gro­ßes Öko-Sys­tem bil­det Snow­flake eine ein­heit­li­che Grund­lage für ver­schie­dene Daten­ty­pen und Workloads. Data Sha­ring in Snow­flake kann durch meh­rere Ser­vices rea­li­siert wer­den, um eigene Daten fle­xi­bel und sicher zu tei­len und Daten von Dritt­an­bie­tern zu kon­su­mie­ren. So wird es den Kun­den ermög­licht, den größ­ten Mehr­wert aus ihren Daten zu generieren.