{"id":387,"date":"2014-01-07T22:58:11","date_gmt":"2014-01-07T21:58:11","guid":{"rendered":"http:\/\/konsilium.de\/blog\/?p=387"},"modified":"2022-07-07T21:42:01","modified_gmt":"2022-07-07T19:42:01","slug":"erwin-tool-tipp-source-to-target-mapping-erstellen","status":"publish","type":"post","link":"https:\/\/konsilium.de\/blog\/2014\/01\/07\/erwin-tool-tipp-source-to-target-mapping-erstellen\/","title":{"rendered":"ERwin Tipp #001"},"content":{"rendered":"\n<p>Source-To-Target-Mapping erstellen<\/p>\n\n\n\n<p>Eine wesentliche Aufgabe in BI Projekten ist die Erstellung einer sogenannten &#8222;Source-To-Target Mapping&#8220; (kurz: STT). R. Kimball nennt sie in seinen Werken auch gerne &#8222;Logical Data Map&#8220; (LDM). Die STT Map definiert, wie die vom Fachbereich angeforderten, analytisch relevanten Attribute bewirtschaftet werden. Sie beschreibt pro Attribut aus welchen Quellsystem-Attributen die Informationen geladen werden sollen und ob ggfls. eine Transformationen auf die urspr\u00fcngliche Informationen angewendet werden soll. Dieser Artikel beschreibt wie mit Hilfe von ERwin Data Modeler ein Source-To-Target Mapping w\u00e4hrend der Modellierung in ERwin abgebildet werden kann.<\/p>\n\n\n\n<p>Doch bevor die Umsetzung im Detail beschrieben wird, noch ein paar Anmerkungen, welchen Nutzen dies bringen kann. Grunds\u00e4tzlich ist es ja meist so, dass der Business Analyst im Rahmen seiner T\u00e4tigkeit zun\u00e4chst ein logisches Datenmodell und daraus abgeleitet ein physisches Datenmodell erstellt. ERwin kann eine STT Map nur f\u00fcr ein physisches Datenmodell abbilden &#8211; obwohl dies bereits auch f\u00fcr ein logisches Datenmodell Sinn machen w\u00fcrde. Durch die Abbildung einer STT bereits im Datenmodell k\u00f6nnen Abh\u00e4ngigkeitsanalysen (&#8222;Impact Analysis&#8220;) gefahren werden, um z.Bsp. im sp\u00e4teren Betrieb erkennen zu k\u00f6nnen, welche Auswirkung die \u00c4nderungen einer Quellsystem-Schnittstelle auf die Data Marts des BI-Systems haben. Sind die relevanten Informationen einmal eingepflegt, so kann die eigentliche Abh\u00e4ngigkeitsanalyse leicht mittels SQL Zugriff auf das ERwin Repository ausgef\u00fchrt werden. Gl\u00fccklicherweise ist seit ERwin v8 das Repository via SQL &#8222;frei&#8220; zug\u00e4nglich.<\/p>\n\n\n\n<p>Ein weiterer Vorteil ist, das bereits w\u00e4hrend der Entwicklungsphase durch den Business Analysten tool-unterst\u00fctzt eine STT Map als Arbeitsanweisung f\u00fcr den ETL-Entwickler generiert werden kann. Diese Arbeit steht in jedem Fall auf der to-do Liste des Analysten &#8211; da er diese Information im Rahmen der Spezifikationserstellung dokumentieren muss. Woher soll der ETL-Entwickler sonst wissen, mit welchen Daten nach welchen Regeln welches Attribut zu bewirtschaften ist?<\/p>\n\n\n\n<p>Vielfach werde ich gefragt, &#8222;Geh\u00f6rt denn diese Informationen \u00fcberhaupt in ein Datenmodell?&#8220;. Ich sage &#8222;Ja!&#8220;. Denn im Datenmodell ist diese Information wesentlich besser &#8222;platziert&#8220; &#8211; weil verkn\u00fcpft &#8211; als in einem Textdokument; dort veraltet die Information auch am schnellsten. Diese Dokumentation steht auch nicht in &#8222;Konkurrenz&#8220; von Metadaten-Werkzeugen wie zum Bsp. &#8222;Informatica Metadata Manager&#8220;. Die STT Dokumentation im Datenmodell ist sinnvoll, weil das Datenmodell ein sehr wichtiges Kommunikationsmedium gegen\u00fcber dem Fachbereich darstellt. Dieser ben\u00f6tigt eine STT Information, die er &#8222;verstehen&#8220; kann &#8211; also beispielsweise eine Transformationslogik in nat\u00fcrlicher Sprache oder in Pseudo-Code Schreibweise. Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"WENN Quellsystemattribut A gleich \"23\" \nDANN speichere \"Premium-Artikel\" \nSONST speichere \"Standard-Artikel\"<\/code><\/pre>\n\n\n\n<p>Die auf dem Markt angebotenen Metadaten Integrationswerkzeuge, die s\u00e4mtliche Metadaten-Inseln der BI Landschaft &#8222;anzapfen&#8220; und integrieren, stehen hierzu nicht in Konkurrenz. Die extrahierte Transformationslogik eines ETL Mappings aus Informatica PowerCenter zum Bsp. ist f\u00fcr einen Fachbereichsmitarbeiter nicht interpretierbar. Typische Metadaten-Inseln einer BI-Landschaft sind bspw. das ETL-Repository von Informatica, der Content-Store von Cognos, der IBM DB2 System-Catalog oder das Datenmodellierungsrepository von Erwin.<\/p>\n\n\n\n<p>Die Aktualit\u00e4t der dokumentierten STT Informationen kann durch einen entsprechenden Prozess sichergestellt werden, d.h. durch eine Organisationsma\u00dfnahme.<\/p>\n\n\n\n<p>Jetzt zur eigentlichen Umsetzung in Erwin. Zun\u00e4chst muss f\u00fcr das Datenmodell, in dem eine STT Information hinterlegt werden soll, die &#8222;Data Movement&#8220; Option aktiviert werden.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-model-prop.-data-movement.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-model-prop.-data-movement.bmp\" alt=\"erwin, model prop. data movement\" class=\"wp-image-388\"\/><\/a><\/figure>\n\n\n\n<p>Erst dann steht der Menu-Eintrag &#8222;Data Sources&#8220; zur Verf\u00fcgung:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-01.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-01.bmp\" alt=\"erwin, data source editor, 01\" class=\"wp-image-389\"\/><\/a><\/figure>\n\n\n\n<p>Durch Klick auf das Symbol f\u00fcr Neuanlage, wird eine neue &#8222;Data Source&#8220; angelegt:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-02.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-02.bmp\" alt=\"erwin, data source editor, 02\" class=\"wp-image-390\"\/><\/a><\/figure>\n\n\n\n<p>Im Beispiel hei\u00dft die neue &#8222;Data Source&#8220;, &#8222;Quellsystem SAP&#8220;. Nun stehen 3 M\u00f6glichkeiten bereit, Quellsystem-Informationen auf Attribut-Ebene in das Datenmodell zu \u00fcbernehmen: Option 1: Manuelle Eingabe (nicht zu empfehlen). Option 2: Import einer CSV Datei (bedingt zu empfehlen). Option 3: &#8222;Import Other&#8220; &#8211; mit dieser Funktion lassen sich die Informationen anderer ERwin Modelle in das Zieldatenmodell importieren. So k\u00f6nnte man z.B. ein Reverse-Engneering auf ein Quellsystem durchf\u00fchren und als ERwin Modell abspeichern. Die Metainformationen dieses Quellsystemmodells k\u00f6nnen dann in das Zielmodell importiert werden. Hierbei entsteht keine Verlinkung &#8211; die Metadaten des Quellmodells k\u00f6nnen ausschlie\u00dflich importiert werden.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-03.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-03.bmp\" alt=\"erwin, data source editor, 03\" class=\"wp-image-391\"\/><\/a><\/figure>\n\n\n\n<p>Es \u00f6ffnen sich Dialoge, die \u00e4hnlich den Dialogen der &#8222;Model Compare&#8220; Funktion sind. Das linke Modell ist immer das &#8222;Target&#8220;-Modell. Das rechte wird ge\u00f6ffnet &#8211; entweder als Datei oder aus dem Erwin-MART (das Repository):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-04.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-04.bmp\" alt=\"erwin, data source editor, 04\" class=\"wp-image-392\"\/><\/a><\/figure>\n\n\n\n<p>\u00dcber &#8222;Type Selektion&#8220; kann man noch die Detailtiefe der zu importierenden Metadaten bestimmen:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-05.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-05.bmp\" alt=\"erwin, data source editor, 05\" class=\"wp-image-393\"\/><\/a><\/figure>\n\n\n\n<p>In der Ansicht &#8222;Left Object Selection&#8220; kann man bestimmten, welcher &#8222;Data Source&#8220; die zu importierenden Metadaten zugeordnet werden sollen. Wir w\u00e4hlen unseren Beispieleintrag &#8222;Quellsystem SAP&#8220;:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-06.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-06.bmp\" alt=\"erwin, data source editor, 06\" class=\"wp-image-394\"\/><\/a><\/figure>\n\n\n\n<p>Es folgt der bekannte &#8222;Abgleichsdialog&#8220;. Hier muss man nicht gro\u00dfartig &#8222;nachdenken&#8220;. In der Regel \u00fcbernimmt man alles von rechts nach links. Was man m\u00f6glicherweise zuviel importiert hat, kann man im Target-Modell wieder sp\u00e4ter leicht l\u00f6schen:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-07.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-07.bmp\" alt=\"erwin, data source editor, 07\" class=\"wp-image-395\"\/><\/a><\/figure>\n\n\n\n<p>Als Ergebnis bekommt man im &#8222;Data Source&#8220; Editor die importierten Quellsystem-Tabellen angezeigt. Neben dem Tabellennamen wurden auch Attributnamen, Datentyp und Spaltenkommentar \u00fcbernommen (falls im Quellmodell vorhanden &#8230;):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-08.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-08.bmp\" alt=\"erwin, data source editor, 08\" class=\"wp-image-396\"\/><\/a><\/figure>\n\n\n\n<p>Jetzt kommt die eigentliche Arbeit &#8211; die Zuordnung von Quellsysteminformationen zu Zielattributen. Im Beispiel soll die Tabelle &#8222;Beispiel_Tabelle&#8220; die STT Informationen aufnehmen:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-09.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-09.bmp\" alt=\"erwin, data source editor, 09\" class=\"wp-image-397\"\/><\/a><\/figure>\n\n\n\n<p>Ansicht &#8222;Column Editor&#8220;, Registerkarte &#8222;Data Soruce&#8220;. Im Feld &#8222;DS Comment&#8220; kann&nbsp; Transformationslogik in Pseudo-Code Formulierung dokumentiert werden. Im Feld &#8222;Data Soruces&#8220; kann kein Freitext eingeben werden, sondern durch Klick auf den rot markierten Button, k\u00f6nnen beliebig viele Quellsystem-Attribute aus den zuvor importierten Metadaten ausgew\u00e4hlt werden:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-10.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-10.bmp\" alt=\"erwin, data source editor, 10\" class=\"wp-image-398\"\/><\/a><\/figure>\n\n\n\n<p>Beispiel f\u00fcr die Auswahl eines Quellsystem-Attributs:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-11.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-11.bmp\" alt=\"erwin, data source editor, 11\" class=\"wp-image-399\"\/><\/a><\/figure>\n\n\n\n<p>Hier ein Ergebnis einer STT Definition f\u00fcr ein Ziel-Attribut. Im Bespiel sind zwei Quellsystem Attribute f\u00fcr die Bewirtschaftung eines Ziel-Attributes plus&nbsp;Transformationslogik definiert worden:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-12.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-12.bmp\" alt=\"erwin, data source editor, 12\" class=\"wp-image-400\"\/><\/a><\/figure>\n\n\n\n<p>Nachdem man dies f\u00fcr alle Zielattribute durchgef\u00fchrt hat, kann man f\u00fcr die ETL-Entwickler eine STT Map via SQL generieren. Zur Ausf\u00fchrung der SQL-Abfrage kann der Anwender w\u00e4hlen zwischen eingebautem &#8222;Query Tool&#8220; oder der ODBC-Schnittstelle. Hier ein Bsp. \u00fcber das &#8222;Query Tool&#8220;:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-13.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-13.bmp\" alt=\"erwin, data source editor, 13\" class=\"wp-image-401\"\/><\/a><\/figure>\n\n\n\n<p>Connect:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-14.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-14.bmp\" alt=\"erwin, data source editor, 14\" class=\"wp-image-402\"\/><\/a><\/figure>\n\n\n\n<p>SQL Query definieren und ausf\u00fchren. Das Ergebnis kann als CSV gespeichert und nach Excel importiert werden:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-15.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-15.bmp\" alt=\"erwin, data source editor, 15\" class=\"wp-image-403\"\/><\/a><\/figure>\n\n\n\n<p>Hier ein Bsp. zur Nutzung der ODBC-Schnittstelle \u00fcber den SQL-Editor Toad (nicht Bestandteil von Erwin):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-16.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-16.bmp\" alt=\"erwin, data source editor, 16\" class=\"wp-image-404\"\/><\/a><\/figure>\n\n\n\n<p>SQL-Query mit Syntax-Highlighting, Toad Metadaten Browser und Resultset der Abfrage:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-17.bmp\"><img decoding=\"async\" src=\"http:\/\/konsilium.de\/blog\/wp-content\/uploads\/2014\/01\/erwin-data-source-editor-17.bmp\" alt=\"erwin, data source editor, 17\" class=\"wp-image-405\"\/><\/a><\/figure>\n\n\n\n<p>Viel Spa\u00df damit!<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>Getestet mit Erwin 8.2 Workgroup Edition<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Source-To-Target-Mapping erstellen Eine wesentliche Aufgabe in BI Projekten ist die Erstellung einer sogenannten &#8222;Source-To-Target Mapping&#8220; (kurz: STT). R. Kimball nennt sie in seinen Werken auch gerne &#8222;Logical Data Map&#8220; (LDM). Die STT Map definiert, wie die vom Fachbereich angeforderten, analytisch relevanten Attribute bewirtschaftet werden. Sie beschreibt pro Attribut aus welchen Quellsystem-Attributen die Informationen geladen werden&hellip;&nbsp;<a href=\"https:\/\/konsilium.de\/blog\/2014\/01\/07\/erwin-tool-tipp-source-to-target-mapping-erstellen\/\" class=\"\" rel=\"bookmark\">Weiterlesen &raquo;<span class=\"screen-reader-text\">ERwin Tipp #001<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2254,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[10,6],"tags":[15,30,29,28,77],"_links":{"self":[{"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/posts\/387"}],"collection":[{"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/comments?post=387"}],"version-history":[{"count":18,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/posts\/387\/revisions"}],"predecessor-version":[{"id":2674,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/posts\/387\/revisions\/2674"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/media\/2254"}],"wp:attachment":[{"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/media?parent=387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/categories?post=387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/konsilium.de\/blog\/wp-json\/wp\/v2\/tags?post=387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}