Meta­da­ten sind ein oft über­se­he­ner, aber unver­zicht­ba­rer Bestand­teil von Data Warehou­ses. Sie die­nen als Beschrei­bung der Struk­tur und Bedeu­tung der im Data Ware­house gespei­cher­ten Daten und ermög­li­chen es, diese bes­ser zu ver­ste­hen und zu nut­zen. In die­sem Blog-Ein­trag wer­den wir uns genauer mit den Vor­tei­len und mög­li­chen Nach­tei­len von Meta­da­ten im Data Ware­house-Kon­text aus­ein­an­der­set­zen und ein Bei­spiel für ein mini­mal aus­ge­leg­tes Meta­da­ten­kon­strukt vor­stel­len, das sich inkre­men­tell wei­ter ent­wi­ckeln lässt. Wir wer­den auch auf die Rolle von Meta­da­ten beim Manage­ment von Data Warehou­ses ein­ge­hen und zei­gen, wie sie zu einem wesent­li­chen Fak­tor für den Erfolg von Data Ware­house-Pro­jek­ten wer­den können.

Data­ware­house Meta­da­ten 

In die­sem Blog wer­den wir zwei ver­schie­dene Arten von Meta­da­ten unter­schei­den: Sta­ti­sche Meta­da­ten und dyna­mi­sche Meta­da­ten. Sta­ti­sche Meta­da­ten beschrei­ben die Struk­tur und Bedeu­tung von Daten im Data Ware­house und blei­ben in der Regel über einen län­ge­ren Zeit­raum unver­än­dert. Bei­spiele für sta­ti­sche Meta­da­ten sind die Namen und Daten­ty­pen von Fel­dern in einer Tabelle oder Para­me­ter von einem gene­ri­schen Pro­zess. Dyna­mi­sche Meta­da­ten hin­ge­gen beschrei­ben den aktu­el­len Sta­tus oder die aktu­elle Nut­zung von Daten und kön­nen sich häu­fi­ger ändern. Bei­spiele für dyna­mi­sche Meta­da­ten sind Daten, die fest­hal­ten, wann bestimmte Daten zuletzt ver­ar­bei­tet wur­den oder wann ein Pro­zess zuletzt aus­ge­führt wurde.

Vor­teile von sta­ti­schen Metadaten

Um die ver­schie­de­nen Vor­teile von den Meta­da­ten ein biss­chen genauer zu erläu­tern, schauen wir uns noch ein­mal ein paar Bei­spiele für sta­ti­sche Meta­da­ten an und zei­gen auf, was sie alles an Vor­teile mit sich bringen:

  • Para­me­tri­sie­rung von Pro­zes­sen
    Die Para­me­tri­sie­rung von gene­ri­schen Pro­zes­sen durch Meta­da­ten hat einige Vor­teile. Der größte Vor­teil ist die Wie­der­ver­wend­bar­keit die­ser Pro­zesse. Man kann bei­spiels­weise einen Pro­zess für meh­rere Quell­sys­teme ver­wen­den, indem man Quell- und Ziel-Tabel­len als Para­me­ter mit­gibt, anstatt für jedes Quell­sys­tem einen neuen Pro­zess erstel­len zu müs­sen. Ein wei­te­rer Vor­teil ist die Anpas­sungs­fä­hig­keit des Pro­zes­ses, da man nicht den gesam­ten Pro­zess anpas­sen muss, son­dern ledig­lich die Meta­da­ten, die den Pro­zess steu­ern. Auch zukünf­tige Anpas­sun­gen, die am Pro­zess oder an den Meta­da­ten vor­ge­nom­men wer­den müs­sen, sind weni­ger auf­wen­dig, da der Code und die Para­me­ter getrennt gehal­ten werden.
  • Namen von Daten­ele­mente
    Diese Meta­da­ten ermög­li­chen es Benut­zern, leicht Zusam­men­hänge zwi­schen den Daten im Data Ware­house zu erken­nen. Das kann zu einem bes­se­ren Ver­ständ­nis der Daten bei­tra­gen. Ein wei­te­rer Vor­teil ist, dass man durch eine Liste aller Objekte in einer Daten­bank Aus­rei­ßer erken­nen kann. Diese Aus­rei­ßer könn­ten auf mög­li­che Feh­ler in der Struk­tur hinweisen.
  • Meta­da­ten als Refe­renz Daten
    Die Ver­wen­dung von Meta­da­ten als Refe­renz Daten, wie zum Bei­spiel eine Tabelle, die alle mög­li­chen Feh­ler, wel­che in die­sem Data Ware­house auf­tau­chen kön­nen, ent­hält, gewähr­leis­tet die Kon­sis­tenz der Daten und ermög­licht eine zen­trale Ver­wal­tung der Daten. Dadurch wird das Erwei­tern oder die Aktua­li­sie­rung erleich­tert. Durch die Ver­wen­dung von Meta­da­ten kann auch die Data Gover­nance ver­bes­sert wer­den, da man Ände­run­gen an den Refe­renz­da­ten mit­hilfe der Meta­da­ten ver­fol­gen kann.

Vor­teile von dyna­mi­schen Metadaten

Auch hier gehen wir noch­mals auf ein paar Bei­spiele ein.

  • Pro­to­kol­lie­rung von Pro­zes­sen
    Die Ver­wen­dung von Meta­da­ten bei der Pro­to­kol­lie­rung von Pro­zes­sen bie­tet meh­rere Vor­teile. Zunächst kann es die Nach­voll­zieh­bar­keit von Pro­zes­sen ver­bes­sern, indem es wich­tige Infor­ma­tio­nen wie Start- und End­zeit, Dauer und Ergeb­nisse fest­hält. Im Falle von Pro­ble­men kön­nen Meta­da­ten auch dabei hel­fen, die Ursa­che schnell zu iden­ti­fi­zie­ren und zu behe­ben, indem sie Ein­ga­be­pa­ra­me­ter, Feh­ler­mel­dun­gen und Pro­to­kolle bereit­stel­len. Sie kön­nen auch zur Ver­bes­se­rung der Per­for­mance bei­tra­gen, indem sie Aus­füh­rungs­zei­ten von Pro­zes­sen bereit­stel­len, die bei der Opti­mie­rung von Pro­zes­sen hilf­reich sind. Schließ­lich kön­nen Meta­da­ten dazu bei­tra­gen, Com­pli­ance-Anfor­de­run­gen ein­zu­hal­ten, indem sie eine Auf­zeich­nung von Pro­zes­sen bereit­stel­len, die bei Audits ver­wen­det wer­den kann.
  • Meta­da­ten zur Daten­qua­li­tät
    Meta­da­ten zur Daten­qua­li­tät tra­gen dazu bei, die Qua­li­tät von Daten zu ver­bes­sern, indem Feh­ler oder Pro­bleme ein­fa­cher iden­ti­fi­ziert und beho­ben wer­den kön­nen. Sie hel­fen bes­ser infor­mierte Ent­schei­dun­gen, auf der Grund­lage von Daten zu tref­fen, ins­be­son­dere in Bran­chen, in denen Daten­qua­li­tät von gro­ßer Bedeu­tung ist. Sie kön­nen auch dazu bei­tra­gen, die Effi­zi­enz zu ver­bes­sern, indem sie ver­hin­dern, dass Zeit und Res­sour­cen in Pro­zesse ver­schwen­det wer­den, die auf feh­ler­haf­ten Daten basieren.
  • Meta­da­ten zur Data Lineage
    Data Lineage Meta­da­ten ermög­li­chen es, die Her­kunft von Daten im Laufe der Zeit zu ver­fol­gen. Somit erleich­tern sie die Qua­li­tät und Nach­voll­zieh­bar­keit von Daten und hel­fen dabei Feh­ler oder Pro­bleme mit der Daten­qua­li­tät zu iden­ti­fi­zie­ren. Je nach Orga­ni­sa­tion kann ver­langt wer­den, dass die Her­kunft und Ver­wen­dung von Daten ver­folgt wird. Dies kann auch durch Data Lineage Meta­da­ten garan­tiert wer­den. Wei­ter­hin kön­nen Data Lineage Meta­da­ten dazu bei­tra­gen, die Data Gover­nance zu ver­bes­sern und sicher­zu­stel­len, dass Daten kon­sis­tent und kor­rekt im gesam­ten Unter­neh­men ver­wen­det werden.

Meta­da­ten Frame­work für ein DWH

Ein Minimalbeispiel von einem DWH Metadaten Framework mit nur strukturellen Metadaten.
Abbil­dung 1 Mini­mal­bei­spiel eines DWH Metadaten-Framework

Ein Mini­mal­bei­spiel von einem Meta­da­ten­frame­work, wie es in der Abbil­dung 1 auf­ge­zeigt ist, könnte vor­erst mal nur die struk­tu­rel­len Meta­da­ten beinhal­ten. So ein Frame­work ist sehr ein­fach zu imple­men­tie­ren und kann für klei­nere Pro­jekte geeig­net sein. Durch diese Meta­da­ten ist es ein­fa­cher einen Über­blick über die Struk­tur behal­ten zu kön­nen. Außer­dem wird die Zusam­men­ar­beit zwi­schen ver­schie­de­nen Benut­zern und Sys­te­men ver­ein­facht, indem eine gemein­same Basis für die Namens­ge­bung von den Objek­ten gege­ben ist.

Metadaten Framework für ein Data Warehouse mit Prozess und Referenz und wenigen strukturellen Metadaten.
Abbil­dung 2 Erwei­ter­tes Meta­da­ten Framework 

Die­ses Frame­work kann gut aus­ge­baut wer­den, indem wir zusätz­lich zu den struk­tu­rel­len Meta­da­ten die Pro­zess und Refe­renz Meta­da­ten brau­chen (Abbil­dung 2). Die Refe­renz Meta­da­ten tra­gen dazu bei, dass die Qua­li­tät von den Daten sowie auch die Data Gover­nance durch eine zen­tra­li­sierte Quelle für die Refe­renz­da­ten ver­bes­sert wird. Wei­ter­hin kön­nen Refe­renz Meta­da­ten dazu bei­tra­gen, die Ent­schei­dungs­fin­dung auf der Grund­lage von Daten zu ver­bes­sern, indem sie die Her­kunft und Ver­wen­dung von Daten nach­voll­zieh­bar machen.

Pro­zess­me­ta­da­ten kön­nen dazu bei­tra­gen, die Effi­zi­enz von Data Ware­house-Pro­zes­sen zu ver­bes­sern. Sie ermög­li­chen die Benut­zung von gene­ri­schen Pro­zes­sen, wel­che durch Meta­da­ten gesteu­ert wer­den. Dies redu­ziert den Ent­wick­lungs­auf­wand und ermög­licht die ein­fa­che Über­wa­chung von Leis­tungs­in­di­ka­to­ren durch das Log­gen von Infor­ma­tio­nen dar­über, wann und wie die Daten ver­ar­bei­tet wur­den. Schließ­lich kön­nen sowohl die Pro­zess- als auch die Refe­renz-Meta­da­ten gleich wie die struk­tu­rel­len Meta­da­ten, die Struk­tur und die Bedeu­tung der Daten hervorheben.

Metadaten Framework für ein Data Warehouse mit strukturellen, Prozess und Referenz Metadaten.
Abbil­dung 3 Meta­da­ten Frame­work mit allen Kern Metadaten.

Wir kön­nen das Meta­da­ten­kon­strukt noch wei­ter aus­bauen (Abbil­dung 3), indem wir bei­spiels­weise wei­tere struk­tu­relle Meta­da­ten bezüg­lich der Infrastruktur und der Data Lineage hin­zu­fü­gen. Diese wür­den wie­der zu einer ver­bes­ser­ten Data Gover­nance und bes­se­ren Nach­voll­zieh­bar­keit der Daten führen. 

Es gibt noch viele wei­tere Meta­da­ten, wel­che wir in unse­rem Bei­spiel nicht ange­schaut haben. Aller­dings ist es wich­tig, sich vorab bewusst zu machen, wel­che Meta­da­ten für den eige­nen Anwen­dungs­fall rele­vant sind, da sie auch gewisse Pro­bleme mit sich brin­gen können. 

Poten­zi­elle Nach­teile von Metadaten

Wie wir in unse­rem obi­gen Bei­spiel gese­hen haben, kann die Kom­ple­xi­tät von Meta­da­ten schnell anwach­sen. Ein wei­te­rer Haupt­nach­teil ist der Auf­wand, der erfor­der­lich ist, um Meta­da­ten zu erstel­len, zu ver­wal­ten und zu pfle­gen. Dies kann beson­ders auf­wen­dig sein, wenn es viele ver­schie­dene Sys­teme und Daten­quel­len gibt, die inte­griert wer­den müs­sen. Wenn dies nicht kon­se­quent gemacht wird, besteht die Gefahr, dass bei Ver­än­de­run­gen in den Daten die Meta­da­ten inkon­sis­tent oder ver­al­tet wer­den. Letzt­end­lich besteht noch das Pro­blem von den Berech­ti­gun­gen auf den Meta­da­ten. Einer­seits soll­ten die Berech­ti­gun­gen mög­lichst ein­ge­schränkt sein, damit sich Benut­zer und Sys­teme nicht mit Meta­da­ten von ande­ren Sys­te­men her­um­schla­gen müs­sen. Ande­rer­seits müs­sen die Berech­ti­gun­gen immer locker genug sein, dass kein Benut­zer bei der Arbeit ein­ge­schränkt wird.

Fazit

Ein gut imple­men­tier­tes Meta­da­ten­frame­work kann enor­men Mehr­wert bie­ten. Es ver­bes­sert die Benut­zer­freund­lich­keit und Qua­li­tät der Daten, macht es ein­fa­cher, das Sys­tem zu ver­ste­hen, und kann viel Arbeit durch die Wie­der­ver­wend­bar­keit von Pro­zes­sen spa­ren. Jedoch sollte man sich auch die mög­li­chen Risi­ken bewusst sein, die durch ein schlecht kon­zi­pier­tes oder ein nicht auf das spe­zi­fi­sche Data Ware­house abge­stimm­tes Meta­da­ten­frame­work ver­ur­sacht werden.