Ein­lei­tung

In der heu­ti­gen daten­ge­trie­be­nen Welt ist die Fähig­keit, Daten effek­tiv zu spei­chern, zu ver­ar­bei­ten und zu ana­ly­sie­ren, von ent­schei­den­der Bedeu­tung. Data Warehou­ses, als struk­tu­rierte und ver­sio­nierte Daten­spei­cher, spie­len eine zen­trale Rolle in der Daten­land­schaft eines Unter­neh­mens. Sie die­nen als Grund­lage für die wei­ter­ge­hende Ver­ar­bei­tung und Ana­lyse, um am Ende einen ech­ten Mehr­wert aus den gesam­mel­ten Daten zie­hen zu können.

Im Rah­men die­ses Blog­bei­trags tau­chen wir in das Kon­zept eines gene­ri­schen, meta­da­ten­ge­steu­er­ten und modu­lar auf­ge­bau­ten Data Ware­house Frame­works ein, das spe­zi­ell für die Cloud-Umge­bung ent­wi­ckelt wurde. Die­ses inno­va­tive Frame­work eröff­net die Mög­lich­keit, Daten-Ware­house-Lösun­gen in kür­zes­ter Zeit in die Cloud zu migrie­ren oder von Grund auf neu zu gestal­ten. Wir wer­den die Stär­ken und Vor­teile die­ses Ansat­zes beleuch­ten und ergrün­den, wie Data Engi­neers von die­ser fort­schritt­li­chen Tech­no­lo­gie pro­fi­tie­ren können.

Der erste Teil die­ser Blog-Serie beschäf­tigt sich mit dem Kon­zept und den grund­le­gen­den Bestandteilen.

Anfor­de­run­gen an das DWH-Frame­work: Ska­lier­bar­keit, Modu­la­ri­tät und Wart­bar­keit im Fokus

Bevor wir tie­fer in die Details ein­stei­gen, sol­len zunächst die Anfor­de­run­gen beleuch­tet wer­den, die ein moder­nes Data Ware­house erfül­len muss. Diese las­sen sich auf drei Haupt­merk­male her­un­ter­bre­chen: Ska­lier­bar­keit, Ska­lier­bar­keit und Skalierbarkeit.

  1. Ska­lier­bar­keit in der Daten­menge
    Ein moder­nes Data Ware­house muss die immer grö­ße­ren Daten­men­gen bewäl­ti­gen kön­nen, die heute auf Unter­neh­mens­ebe­nen gene­riert und ver­ar­bei­tet wer­den. Neben der rei­nen Spei­che­rung von Daten­men­gen im Giga‑, Tera- oder sogar Peta­byte-Bereich muss auch deren schnelle Ver­ar­bei­tung gewähr­leis­tet sein.
  2. Ska­lier­bar­keit in der Kom­ple­xi­tät
    Egal ob ein­fa­che Daten­his­to­ri­sie­rung oder kom­plexe Trans­for­ma­tion: Das Date Ware­house und die darin inte­grier­ten Trans­for­ma­ti­ons­pro­zesse müs­sen so modu­lar auf­ge­baut sein, dass eine naht­lose Erwei­te­rung mühe­los erfol­gen kann. Auch die Ver­wal­tung von tau­sen­den von Tabel­len mit unter­schied­li­chen Bezie­hun­gen zuein­an­der und den dazu­ge­hö­ri­gen Trans­for­ma­tio­nen darf im täg­li­chen Betrieb nicht kom­ple­xer sein als bei weni­gen Tabellen.
  3. Ska­lier­bar­keit in der Wart­bar­keit
    Mit wach­sen­der Kom­ple­xi­tät lei­det meist die Wart­bar­keit, was zu grö­ße­rer Feh­ler­an­fäl­lig­keit und län­ge­rer Ent­wick­lungs­zeit führt. Das DWH-Frame­work sollte sich daher an den bewähr­ten Stan­dards der moder­nen Soft­ware­ent­wick­lung ori­en­tie­ren. Die Inte­gra­tion von CI/CD-Pro­zes­sen (Con­ti­nuous Inte­gra­tion / Con­ti­nuous Deploy­ment) und auto­ma­ti­sier­ten Tests gewähr­leis­tet nicht nur eine rei­bungs­lose Aktua­li­sie­rung, son­dern mini­miert auch poten­zi­elle Risiken.

Kom­po­nen­ten des DWH-Kata­ly­sa­tors: Bau­steine für den Turbo im Data Warehouse

Um sämt­li­chen Anfor­de­run­gen gerecht zu wer­den, setzt unser Data Ware­house Frame­work die fol­gen­den essen­zi­el­len Komponenten.

Git Repo­si­tory: Die Keim­zelle des Data Warehouses

Das Git Repo­si­tory dient als Aus­gangs­punkt für das Data Ware­house. Es beher­bergt den Code sowie die Kon­fi­gu­ra­tion aller wei­te­ren Kom­po­nen­ten. Die Ein­bin­dung moder­ner DevOps Tools erleich­tert die Kol­la­bo­ra­tion meh­re­rer Data Engi­neers in agi­len Teams und auto­ma­ti­sierte CI/CD-Pro­zesse gewähr­leis­ten höchste Qua­li­tät bei der Ent­wick­lung von Lösun­gen und sor­gen für eine hohe Aus­fall­si­cher­heit des Data Warehouse.

Cloud Umge­bung: Die Skalierbarkeits-Revolution

Wenn es um Ska­lier­bar­keit geht, sind die moder­nen Cloud Umge­bun­gen wie AWS, Azure oder GCP kaum zu über­tref­fen. Sie stel­len sowohl den Spei­cher­platz als auch die nötige Rechen­power zur Ver­fü­gung, um große Daten­men­gen zu spei­chern und schnell ver­ar­bei­ten zu kön­nen. Außer­dem bie­tet die Cloud eine elas­ti­sche Anpas­sung der Res­sour­cen an den aktu­el­len Bedarf.

ETL-Tool: Der Motor für Transformationen

Das Herz­stück eines Data Warehou­ses liegt in der Daten­hal­tung (tra­di­tio­nell oft in einer SQL-Daten­bank) und einem Tool für Trans­for­ma­tio­nen. In unse­rem Fall wird die­ses Duo durch Dat­ab­ricks ersetzt. Die­ses mäch­tige Werk­zeug bie­tet einen umfas­sen­den Tech­no­lo­gie­stack, der den viel­fäl­ti­gen Anfor­de­run­gen an Daten­hal­tung und Trans­for­ma­tion gerecht wird. Mit Dat­ab­ricks kön­nen hoch­kom­plexe Trans­for­ma­tio­nen mühe­los bewäl­tigt und Daten in unter­schied­lichs­ten For­ma­ten ver­ar­bei­tet wer­den. Im wei­te­ren Ver­lauf des Blogs wird die­ser Teil des Data Warehou­ses noch wei­ter beleuchtet.

Meta­da­ten: Pfei­ler des gene­ri­schen Designs

Um ein Data Ware­house gene­risch zu gestal­ten, bedarf es Kon­fi­gu­ra­ti­ons­me­ta­da­ten. Diese steu­ern die gene­ri­schen Pro­zesse und ermög­li­chen so Modu­la­ri­tät und Wie­der­ver­wend­bar­keit von ent­wi­ckel­ten Kom­po­nen­ten. Durch die gezielte Ver­wen­dung von Meta­da­ten kann das Frame­work auf Ver­än­de­run­gen und neue Daten­quel­len agil reagie­ren, ohne dass umfang­rei­chere Über­ar­bei­tun­gen erfor­der­lich wären. Neben den sta­ti­schen Kon­fi­gu­ra­ti­ons­me­ta­da­ten erzeugt das Data Ware­house noch dyna­mi­sche Meta­da­ten wie etwa Ein­träge in Log-Tabel­len zu gelau­fe­nen Extrak­ti­ons- oder Transformationsprozessen.

Orches­trie­rung: Naht­lose Abläufe im Data Warehouse

Die effi­zi­ente Orches­trie­rung von Abläu­fen spielt eine ent­schei­dende Rolle in jedem Data Ware­house Frame­work. Ein moder­nes, viel­sei­ti­ges und anpas­sungs­fä­hi­ges Werk­zeug für die Koor­di­na­tion und Auto­ma­ti­sie­rung kom­ple­xer Work­flows ist Apa­che Air­flow. Mit Air­flow kann eine breite Palette von Kom­po­nen­ten in der Daten­ver­ar­bei­tungs­kette gesteu­ert und über­wacht wer­den, und es eröff­net die Mög­lich­keit, dyna­misch auf Ereig­nisse zu reagieren.

Eine einfache Beispielarchitektur mit CSV und Kafka Eingägngen, Databricks als Verarbeitungstool und CSV oder SAP HANA Ausgängen.
Abbil­dung 1: Beispielarchitektur

Trans­for­ma­ti­ons­kraft im Detail: Der Bau des Robus­ten Data Warehouses

Nach­dem wir einen umfas­sen­den Ein­blick in die grund­le­gen­den Bestand­teile unse­res Data Ware­house Frame­works erhal­ten haben, ist es nun an der Zeit, tief in den Auf­bau ein­zu­tau­chen. In die­sem Kapi­tel wer­den wir den Weg durch die ver­schie­de­nen Schich­ten des Data Warehou­ses ver­fol­gen, begin­nend bei der Sta­ging-Schicht, über die Trans­for­ma­ti­ons-Schicht bis hin zur Aus­gangs-Schicht. In der Medal­lion-Archi­tek­tur wer­den diese Schich­ten Bronze, Sil­ber und Gold genannt, ent­spre­chend der zuneh­men­den Qua­li­tät und dem höhe­ren Wert der Trans­for­mier­ten Daten. Wir wer­den erkun­den, wie jedes Glied in die­ser Kette dazu bei­trägt, ein dyna­mi­sches, leis­tungs­fä­hi­ges und adap­tier­ba­res Data Ware­house zu formen.

Verschiedene Eingangsdatenformate in die Bronze Śchicht und zunehmende Qualität hin zur Goldschicht. Bereitstellung für BI, ML und Zielsysteme.
Abbil­dung 2: DWH Schichten
Sta­ging-Schicht: Ver­sio­nie­rung und His­to­ri­sie­rung der Daten

Die Sta­ging-Schicht mar­kiert den Auf­takt des Daten­trans­for­ma­ti­ons­pro­zes­ses im Data Ware­house. Hier­bei ist der erste Schritt die Über­füh­rung der Daten in die Lager­stätte. Wäh­rend Apa­che Spark bereits eine beein­dru­ckende Viel­falt an Daten­for­ma­ten unter­stützt, erwei­tert Dat­ab­ricks die­ses Reper­toire noch wei­ter, um naht­lose Ver­bin­dun­gen zu einer brei­ten Palette von Daten­quel­len zu ermög­li­chen. Ganz gleich, ob es sich um Daten in Form von CSV- oder XML-Dateien han­delt, um Strea­ming-Tech­no­lo­gien wie Apa­che Kafka (etwa in Ver­bin­dung mit CDC-Tools ), Ama­zon Kine­sis oder Azure Event Hubs oder um direk­ten Zugriff auf (No)SQL-Datenbanken – die Fle­xi­bi­li­tät von Dat­ab­ricks ermög­licht eine mühe­lose Ein­bin­dung aller Datenquellen.

Der Pro­zess star­tet damit, dass die Daten vor­über­ge­hend in eine tem­po­räre Sta­ging-Tabelle gela­den wer­den, um das Schema zu vali­die­ren. Anschlie­ßend erfolgt die Kon­so­li­die­rung und Ver­sio­nie­rung der neuen Daten­lie­fe­run­gen mit den bereits vor­han­de­nen Daten­sät­zen in der Glo­ba­len Sta­ging Area. Die Art der His­to­ri­sie­rung wird dabei von den Meta­da­ten gesteu­ert und kann leicht um wei­tere Metho­den erwei­tert wer­den, um sich den spe­zi­fi­schen Anwen­dungs­fäl­len opti­mal anzupassen.

Trans­for­ma­ti­ons-Schicht: Anrei­che­rung und Validierung

Die Trans­for­ma­ti­ons-Schicht stellt das Herz­stück des Data Warehou­ses dar, wo die Daten für wei­tere Ver­ar­bei­tungs­schritte vor­be­rei­tet wer­den. Um das Maxi­mum an Erkennt­nis­sen aus den Daten zu gewin­nen, ist eine umfas­sende Vali­die­rung und Anrei­che­rung uner­läss­lich. Diese Pro­zesse wer­den mit­hilfe von Trans­for­ma­ti­ons­jobs rea­li­siert, die auf modu­la­ren und gene­ri­schen Funk­tio­nen basie­ren. Dies sichert eine hohe Wie­der­ver­wend­bar­keit, da sowohl Funk­tio­nen in ver­schie­de­nen Jobs als auch ganze Jobs selbst für ähn­li­che Daten aus unter­schied­li­chen Quell­sys­te­men ein­ge­setzt wer­den können.

Der ETL-Job transformiert die Eingangsdaten mithilfe wiederverwendebarer Funktionen die durch dynamische und statistche Metadaten konfiguriert werden.
Abbil­dung 3: Auf­bau der Transformationsschicht
Aus­gangs-Schicht: Daten­be­reit­stel­lung für Zielanwendungen

Die Aus­gangs-Schicht stellt den fina­len Schritt dar, in dem die Daten für die ver­schie­de­nen Nut­zer und Anwen­dun­gen im Data Ware­house auf­be­rei­tet wer­den. Das kön­nen Sys­teme sein, die über Dateien, Strea­ming oder direkte Daten­bank­an­bin­dung ver­sorgt wer­den, oder spe­zi­elle Tabel­len, auf denen BI-Teams und Data Sci­en­tists ihre Ana­ly­sen durch­füh­ren. Auch in der Aus­gangs-Schicht kom­men Trans­for­ma­ti­ons­jobs zum Ein­satz, um die Daten für den jewei­li­gen Anwen­dungs­fall wei­ter zu ver­fei­nern, zu agg­re­gie­ren oder ander­wei­tig auf­zu­be­rei­ten. Die­ser Pro­zess run­det die Daten­trans­for­ma­tion ab und schafft eine solide Grund­lage für eine effek­tive Ana­lyse und Ver­wen­dung der Daten im gesam­ten Unternehmen.

Fazit

Mit dem Abschluss die­ses ers­ten Teils haben wir die Grund­lage für ein moder­nes und leis­tungs­star­kes Data Ware­house Frame­work gelegt. Wir haben die Anfor­de­run­gen an Ska­lier­bar­keit, Modu­la­ri­tät und Wart­bar­keit defi­niert und die essen­zi­el­len Kom­po­nen­ten vor­ge­stellt, die die­ses Frame­work zu einem Kata­ly­sa­tor für Cloud-Migra­tio­nen und Neu­erstel­lun­gen von Data Warehou­ses machen.

Im nächs­ten Arti­kel wer­den wir tie­fer in die Trans­for­ma­ti­ons­schicht ein­tau­chen und den detail­lier­ten Auf­bau des Data Warehou­ses inner­halb von Dat­ab­ricks erkun­den. Wir wer­den uns mit den Mög­lich­kei­ten der Daten­an­rei­che­rung und ‑vali­die­rung befas­sen und zei­gen, wie modu­lare und gene­ri­sche Funk­tio­nen eine fle­xi­ble und wie­der­ver­wend­bare Daten­ver­ar­bei­tung ermöglichen.