{"id":234,"date":"2024-09-04T13:20:42","date_gmt":"2024-09-04T13:20:42","guid":{"rendered":"https:\/\/oberle-it-beratung.de\/?p=234"},"modified":"2024-09-04T13:20:42","modified_gmt":"2024-09-04T13:20:42","slug":"genrawvault-wie-man-aus-einer-steuerdatei-ein-ganzes-dwh-generieren-kann","status":"publish","type":"post","link":"https:\/\/www.elrebo.de\/index.php\/2024\/09\/04\/genrawvault-wie-man-aus-einer-steuerdatei-ein-ganzes-dwh-generieren-kann\/","title":{"rendered":"GenRawVault: wie man aus einer Steuerdatei ein ganzes DWH generieren kann"},"content":{"rendered":"\n<p>In meinem letzten Beitrag <a href=\"https:\/\/elrebo.de\/willibald-data-uebernahme-der-kunden-ins-data-warehouse\" data-type=\"post\" data-id=\"191\">Willibald-Data: \u00dcbernahme der Kunden ins Data Warehouse<\/a> habe ich am Beispiel der Schnittstelle f\u00fcr Kundendaten aus der Willibald Challenge beschrieben, wie diese mit Hilfe von dbt und dem dbt-Plugin AutomateDV in den Raw Vault des Data Warehouse \u00fcbernommen werden k\u00f6nnen. Und schon in meinem Beitrag <a href=\"https:\/\/elrebo.de\/die-kraft-der-abstraktion\" data-type=\"post\" data-id=\"155\">Die Kraft der Abstraktion<\/a> habe ich an einem kleinen Beispiel gezeigt, wie man sich eine noch kompaktere Darstellung vorstellen kann, die alle ben\u00f6tigten Definitionen f\u00fcr das DWH enth\u00e4lt.<\/p>\n\n\n\n<p>In diesem Beitrag zeige ich die gesamte Steuerdatei RawVault.xml, in der ich alle Definitionen f\u00fcr den Raw Vault des DWH der Willibald Challenge in insgesamt nur 917 Zeilen beschreibe.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"475\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2024\/09\/Bildschirmfoto-2024-09-03-um-20.26.05-1024x475.png\" alt=\"\" class=\"wp-image-236\" srcset=\"https:\/\/www.elrebo.de\/wp-content\/uploads\/2024\/09\/Bildschirmfoto-2024-09-03-um-20.26.05-1024x475.png 1024w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2024\/09\/Bildschirmfoto-2024-09-03-um-20.26.05-300x139.png 300w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2024\/09\/Bildschirmfoto-2024-09-03-um-20.26.05-768x356.png 768w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2024\/09\/Bildschirmfoto-2024-09-03-um-20.26.05.png 1026w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Im Abschnitt &lt;system&gt; werden Parameter zur Steuerung des Systems gesammelt. <\/p>\n\n\n\n<p>Im Abschnitt &lt;file_imports&gt; werden die Schnittstellen beschrieben, mit denen die Daten aus den operativen Systemen gelesen und in Tabellen in ein Source-Schema der DWH-Datenbank geschrieben werden.<\/p>\n\n\n\n<p>Im Abschnitt &lt;db_sources&gt; werden die Datenquellen beschrieben, die im dbt-Modell als Sourcen verwendet werden.<\/p>\n\n\n\n<p>Im Abschnitt &lt;stages&gt; werden alle Informationen zu den Stage-Tabellen des DWH gesammelt. Mit Hilfe dieser Informationen werden die Tabellen der Persistant Staging Area (PSA), der RawStage und der Stage definiert.<\/p>\n\n\n\n<p>Im Abschnitt &lt;dv_tables&gt; werden die Objekte des RawVault beschrieben: die Hubs, Links, Satellites und die &#8220;Last Seen&#8221;-Tabellen. Die hier gesammelten Informationen werden auch zur Definition von Views auf die Links und Satellites verwendet.<\/p>\n\n\n\n<p>Die vollst\u00e4ndige RawVault.xml sieht so aus: <a href=\"https:\/\/elrebo.de\/wp-content\/uploads\/2024\/09\/RawVault.xml\" data-type=\"attachment\" data-id=\"239\">RawVault.xml<\/a>. <\/p>\n\n\n\n<p>Aus dieser Steuerdatei werden mit xslt-Transformationen die Skripte erzeugt, die f\u00fcr den RawVault des DWH ben\u00f6tigt werden:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>11 Skripte f\u00fcr die PSA<\/li>\n\n\n\n<li>12 Skripte f\u00fcr die Raw Stage<\/li>\n\n\n\n<li>12 Skripte f\u00fcr die Stage <\/li>\n\n\n\n<li>13 Skripte f\u00fcr Hubs<\/li>\n\n\n\n<li>9 Skripte f\u00fcr Links<\/li>\n\n\n\n<li>37 Skripte f\u00fcr &#8220;Last Seen&#8221;-Tabellen<\/li>\n\n\n\n<li>18 Skripte f\u00fcr Satellites<\/li>\n\n\n\n<li>9 Skripte f\u00fcr Views auf Links<\/li>\n\n\n\n<li>36 Skripte f\u00fcr Views auf Satellites und<\/li>\n\n\n\n<li>9 yml-Skripte zur Beschreibung der Sourcen und Tabellen des dbt-Modells<\/li>\n<\/ul>\n\n\n\n<p>Alle diese Skripte sind in der automatisch generierten dbt-Dokumentation enthalten: <a href=\"https:\/\/willibald.oberle-it-beratung.de\">https:\/\/willibald.oberle-it-beratung.de<\/a><\/p>\n\n\n\n<p>Dar\u00fcberhinaus werden noch 24 Skripte zum \u00dcbernehmen der 12 Schnittstellen aus den csv-Dateien in die Source-Schemata erzeugt, sowie 12 Skripte zum Erstellen der csv-Dateien aus dem operativen System von Willibald.<\/p>\n\n\n\n<p>Einen \u00dcberblick \u00fcber das Konzept dieses DWH-Systems finden sie hier: <a href=\"https:\/\/elrebo.de\/ein-dwh-mit-git-linux-docker-postgresql-dbt-und-automatedv\" data-type=\"post\" data-id=\"137\">Ein DWH mit git, Linux, Docker, PostgreSQL, dbt und AutomateDV<\/a>.<\/p>\n\n\n\n<p>Fazit: Es ist m\u00f6glich, die gesamte Definition f\u00fcr die \u00dcbernahme der Schnittstellen aus einem operativen System in den RawVault eines DWH in einer Steuerdatei zusammenzufassen und daraus alle ben\u00f6tigten Skripte f\u00fcr die Transformation der Daten aus dem operativen System in das DWH zu generieren. Dieser Ansatz erlaubt es, auch sp\u00e4t im Entwicklungsprozess noch \u00c4nderungen vorzunehmen, die sonst, wegen des gro\u00dfen Anpassungsaufwands in vorhandenen Skripten nur schwer durchzuf\u00fchren w\u00e4ren.<\/p>\n\n\n\n<p>So, wenn Sie jetzt Fragen zu dieser L\u00f6sung haben, dann sagen Sie mir bitte Bescheid. Bis dahin werde ich mich vorerst wieder mit Sand, Strand und Urlaub besch\u00e4ftigen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"480\" height=\"640\" src=\"https:\/\/elrebo.de\/wp-content\/uploads\/2024\/09\/IMG_3765.png\" alt=\"\" class=\"wp-image-254\" srcset=\"https:\/\/www.elrebo.de\/wp-content\/uploads\/2024\/09\/IMG_3765.png 480w, https:\/\/www.elrebo.de\/wp-content\/uploads\/2024\/09\/IMG_3765-225x300.png 225w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>In meinem letzten Beitrag Willibald-Data: \u00dcbernahme der Kunden ins Data Warehouse habe ich am Beispiel der Schnittstelle f\u00fcr Kundendaten aus der Willibald Challenge beschrieben, wie diese mit Hilfe von dbt und dem dbt-Plugin AutomateDV in den Raw Vault des Data Warehouse \u00fcbernommen werden k\u00f6nnen. Und schon in meinem Beitrag Die Kraft der Abstraktion habe ich [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,14,18],"tags":[22,29,30,33,35,59,63],"class_list":["post-234","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dwh","category-dv20","category-werkzeuge","tag-automatedv","tag-data-warehouse","tag-dbt","tag-dv2-0","tag-dwh","tag-willibald-challenge","tag-xslt"],"_links":{"self":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/posts\/234","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=234"}],"version-history":[{"count":0,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/media\/249"}],"wp:attachment":[{"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elrebo.de\/index.php\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}