{"id":514,"date":"2024-03-30T16:38:21","date_gmt":"2024-03-30T16:38:21","guid":{"rendered":"https:\/\/oberle-it-beratung.de\/?p=109"},"modified":"2024-03-30T16:38:21","modified_gmt":"2024-03-30T16:38:21","slug":"data-vault-2-0","status":"publish","type":"post","link":"https:\/\/www.elrebo.de\/index.php\/2024\/03\/30\/data-vault-2-0\/","title":{"rendered":"Data Vault 2.0"},"content":{"rendered":"\n<p>Auf deutsch \u00fcbersetzt ist ein Data Vault ein Datentresor. Das bedeutet wohl, dass die Daten sicher sind, dass sie nicht mehr verloren gehen. <\/p>\n\n\n\n<p>In Wikipedia kann man \u00fcber &#8220;Data Vault&#8221; von Dan Linstedt folgendes lesen: <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Data Vault<\/strong>&nbsp;ist eine Modellierungstechnik f\u00fcr&nbsp;Data Warehouses, die insbesondere f\u00fcr&nbsp;agile&nbsp;Data Warehouses geeignet ist. Sie bietet eine hohe Flexibilit\u00e4t bei Erweiterungen, eine vollst\u00e4ndige&nbsp;unitemporale Historisierung&nbsp;der Daten und erlaubt eine starke Parallelisierung der Datenladeprozesse.<\/p>\n<cite>aus https:\/\/de.wikipedia.org\/wiki\/Data_Vault, abgerufen am 23.3.2024<\/cite><\/blockquote>\n\n\n\n<p>In dieser kurzen Beschreibung sind die wichtigsten Features dieses Data Warehouse Konzepts bereits enthalten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Flexibilit\u00e4t bei Erweiterungen<\/li>\n\n\n\n<li>Historisierung der Daten, selbst wenn die Quellsysteme keine Historisierung bieten<\/li>\n\n\n\n<li>Parallelisierung der Datenladeprozesse<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Wie werden diese Ziele mit Data Vault 2.0 (DV2.0) erreicht?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Die Daten der Quellsysteme werden ohne fachliche Bereinigung und Transformation im Data Warehouse (im Raw Vault) abgelegt. Es handelt sich hier also eher um einen ELT- als um einen ETL-Prozess (Extract-Load-Transform statt Extract-Transform-Load). Dadurch entspricht der Stand im Data Warehouse immer dem Stand der operativen Systeme zum Zeitpunkt der \u00dcbernahme in das Data Warehouse.<\/li>\n\n\n\n<li>Unterschiedliche Datenbest\u00e4nde der Quellsysteme (verschiedene Versionen oder Daten aus verschiedenen Quellsystemen) werden auch im Raw Vault getrennt abgelegt. Deshalb k\u00f6nnen die Datenladeprozesse parallel ausgef\u00fchrt werden. <\/li>\n\n\n\n<li>Die Daten der Quellsysteme werden periodisch in einer Staging-Umgebung bereitgestellt. Dadurch werden Snapshots der operativen Daten erfasst, die zur Historisierung der Daten im Data Warehouse verwendet werden.<\/li>\n\n\n\n<li>Aus der Staging-Umgebung werden die ver\u00e4nderten Daten in den Raw Vault \u00fcbernommen (jede \u00c4nderung f\u00fchrt zu einem neuen Datenstand).<\/li>\n\n\n\n<li>Fachliche Transformationen der Daten im Raw Vault bilden den Business Vault.<\/li>\n\n\n\n<li>Wenn die Daten der Staging-Umgebung archiviert werden, dann spricht man von einer Persistent Staging Area (PSA). Wenn eine PSA vorhanden ist, dann kann das Data Warehouse jederzeit gel\u00f6scht und mit der Historie aus der PSA komplett neu aufgebaut werden. So k\u00f6nnen Fehler beim Aufbau des DWH korrigiert werden, auch wenn sie erst sp\u00e4t erkannt werden.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2024\/03\/Bildschirmfoto-2024-03-27-um-22.08.36-1024x490.png\" alt=\"\" class=\"wp-image-129\" \/><\/figure>\n\n\n\n<p>In diesem Bild wird der Weg der Informationen aus den operativen Systemen \u00fcber die PSA und die Stage in das DWH gezeigt.<\/p>\n\n\n\n<p>Das DWH besteht <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>aus dem Raw Vault, in dem die Daten aus den Quellsystemen ohne fachliche Bereinigung abgelegt sind<\/li>\n\n\n\n<li>aus dem Business Vault, in dem die bereinigten Daten aus dem Raw Vault abgelegt sind und<\/li>\n\n\n\n<li>aus den Data Marts, in denen die Informationen in der Form aufbereitet werden, wie sie f\u00fcr die weitere Benutzung ben\u00f6tigt werden. Siehe hierzu auch die Beschreibung von Data Marts im Beitrag <a href=\"https:\/\/elrebo.de\/reporting-fuer-kleinere-unternehmen\">&#8220;Reporting f\u00fcr kleinere Unternehmen&#8221;<\/a>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hubs, Links und Satellites<\/h3>\n\n\n\n<p>Der Raw Vault speichert die Daten aus den Stage-Tabellen in drei Tabellen-Typen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hubs: hier werden die nat\u00fcrlichen Schl\u00fcssel (Natural Keys) der Daten abgelegt. Beispiele sind Kundennummern, Vertragsnummern und Produktschl\u00fcssel. Alle Natural Keys, die in den operativen Systemen vorkommen, werden hier gespeichert. Auch &#8220;falsche&#8221; Natural Keys werden hier abgelegt, wenn sie in den Daten vorkommen. Es werden keine weiteren Daten neben den Natural Keys gespeichert. Hubs werden aus allen Stage-Tabellen gespeist, in denen der Natural Key des Hubs enthalten ist. Hub-Datens\u00e4tze werden nur dann geschrieben, wenn sie im Hub noch nicht vorhanden sind. <\/li>\n\n\n\n<li>Links: hier werden Kombinationen von nat\u00fcrlichen Schl\u00fcsseln abgelegt, die in den operativen Systemen vorkommen. Beispiele sind die Zuordnung von Vertr\u00e4gen zu Kunden und die Zuordnung von Produkten zu Vertr\u00e4gen. Alle Kombinationen, die in den operativen Systemen vorkommen, werden hier gespeichert. Auch Kombinationen, die nicht mehr g\u00fcltig sind, oder Kombinationen, die aufgrund von Fehleingaben im operativen System erfasst worden sind, werden hier abgelegt. Es werden keine weiteren Daten neben den Kombinationen der Natural Keys gespeichert. Links werden aus allen Stage-Tabellen gespeist, in denen die Kombination der Natural Keys des Links enthalten ist. Link-Datens\u00e4tze werden nur dann geschrieben, wenn sie im Link noch nicht vorhanden sind. <\/li>\n\n\n\n<li>Satellites: hier werden alle Daten abgelegt, die zu einem Hub oder einem Link geh\u00f6ren. Satelliten beziehen sich immer genau auf einen Hub oder genau auf einen Link. Die Daten eines Satelliten stammen aus genau einer Datenquelle, d.h. sie kommen aus genau einem operativen System und genau einer Stage-Tabelle. Die Daten in Satelliten sind historisiert. Jede Ver\u00e4nderung dieser Daten in der Stage-Tabelle aus dem operativen System werden hier im Satelliten protokolliert.<\/li>\n<\/ul>\n\n\n\n<p>Da Hubs und Links nur die Natural Keys enthalten, k\u00f6nnen sie aus allen Stage-Tabellen ohne R\u00fccksicht auf andere Informationen jederzeit gef\u00fcllt werden. Hub- und Link-Datens\u00e4tze werden nie gel\u00f6scht, da Hubs und Links keine Informationen \u00fcber die G\u00fcltigkeit der Daten enthalten.<\/p>\n\n\n\n<p>Da sich Satelliten immer genau auf einen Hub oder genau auf einen Link beziehen und immer aus genau einer Stage-Tabelle \u00fcbernommen werden, k\u00f6nnen sie ohne R\u00fccksicht auf andere Stage-Tabellen jederzeit gef\u00fcllt werden. Satelliten-Datens\u00e4tze werden nur dann geschrieben, wenn sich die Daten gegen\u00fcber dem vorherigen Stand ver\u00e4ndert haben.<\/p>\n\n\n\n<p>Diese klare Strukturierung der Tabellen ist die Basis f\u00fcr die eingangs erw\u00e4hnten Features der Modellierungsmethode Data Vault: Parallelisierung, Historisierung und Flexibilit\u00e4t. <\/p>\n\n\n\n<p>Auch der Business Vault, in dem die fachlich bereinigten und transformierten Daten abgelegt werden, wird aus Hubs, Links und Satellites gebildet. <\/p>\n\n\n\n<p>F\u00fcr einen \u00dcberblick zu DV2.0 empfehle ich diese YouTube-Serie von data-vault.com. Hier werden die Prinzipien in 7 kleinen YouTube-Filmen vorgestellt: <a href=\"https:\/\/youtube.com\/playlist?list=PLPz42gh12w04u1VKr4R5Cwbg3EvD1aZdC&amp;feature=shared\">https:\/\/youtube.com\/playlist?list=PLPz42gh12w04u1VKr4R5Cwbg3EvD1aZdC&amp;feature=shared<\/a><br>In Folge 5 von 7 wird die Modellierung eines Beispiels in Hubs, Links und Satellites beschrieben.<\/p>\n\n\n\n<p>Vom Erfinder von Data Vault 2.0 selbst, von Dan Linstedt, gibt es das Buch &#8220;Building a Scalable Data Warehouse with Data Vault 2.0&#8221;. Hier beschreibt er umfassend, wie ein Data Warehouse mit Data Vault 2.0 aufgebaut wird. <\/p>\n\n\n\n<p>Nach dieser kurzen Einf\u00fchrung in DV2.0 m\u00f6chte ich eine technische L\u00f6sung vorstellen, mit der auch kleine Unternehmen ein DWH nach DV2.0 implementieren k\u00f6nnen. Das beschreibe ich im n\u00e4chsten Beitrag &#8220;Ein DWH mit git, Linux, Docker, PostgreSQL, dbt und AutomateDV&#8221;.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auf deutsch \u00fcbersetzt ist ein Data Vault ein Datentresor. Das bedeutet wohl, dass die Daten sicher sind, dass sie nicht mehr verloren gehen. In Wikipedia kann man \u00fcber &#8220;Data Vault&#8221; von Dan Linstedt folgendes lesen: Data Vault&nbsp;ist eine Modellierungstechnik f\u00fcr&nbsp;Data Warehouses, die insbesondere f\u00fcr&nbsp;agile&nbsp;Data Warehouses geeignet ist. Sie bietet eine hohe Flexibilit\u00e4t bei Erweiterungen, eine [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":396,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,14],"tags":[],"class_list":["post-514","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dwh","category-dv20"],"_links":{"self":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/posts\/514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/comments?post=514"}],"version-history":[{"count":0,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/posts\/514\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/media\/396"}],"wp:attachment":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/media?parent=514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/categories?post=514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/tags?post=514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}