Ich kann kein Dokument über diese verschachtelten Schleifen freigeben, und ich bin nicht mehr Teil des Projektteams. Ich hoffe, Sie werden verstehen, warum ich hier nicht zu viele Details erzählen kann.
Grundsätzlich musste ich drei verschiedene Arten der Suche in derselben Tabelle für eine sogenannte benutzerdefinierte Regel in der Testdatenverwaltungssoftware (TDM) durchführen. Diese benutzerdefinierten Regeln werden als Mapplets implementiert und müssen ausschließlich passive Transformationen enthalten. Keine Router, keine Filter, keine Aggregatoren, keine aktiven Java-Transformationen, nur Ausdrücke, Nachschlagetransformationen und dergleichen.
Für die beiden komplexesten benutzerdefinierten Regeln musste ich nun mehrere Hilfstabellen implementieren, die diese Nachschlagedaten auf verschiedenen Aggregationsebenen enthielten. Das Ausfüllen dieser Tabellen aus PowerCenter war nicht allzu einfach, da die Quelldatei aus 4,5 GB Text besteht (ca. 43 millionen Datensätze); die Lookup-Tabellen enthalten Daten auf drei verschiedenen Aggregationsebenen mit unterschiedlichen Lookup-Kriterien. Und ich wollte das Mapping nicht in drei Teile aufteilen. Also musste ich mich selbst um die Identifizierung des „gleichen“ Datensatzes kümmern, ich konnte Aggregatoren nicht alleine verwenden.
Soweit ich mich erinnere, hätte ich in einer traditionellen Programmiersprache wie Java bis zu fünf verschachtelte Schleifen benötigt, um die Quelldaten zu analysieren und die entsprechenden Nachschlagedatensätze aus diesen Eingabedaten zu erstellen. Das Ausführen verschiedener Aggregationsebenen mit mehreren variablen Ports in einem einzigen EXP ist nicht allzu einfach zu warten, aber meine ersten Versuche haben gezeigt, dass dies immer noch die beste Wahl war; Wie bereits erwähnt, hätte ich das Mapping in drei aufteilen können, aber jedes Mapping hätte fast den gleichen Komplexitätsgrad wie das eine „allgemeine“ EXP gehabt, daher hielt ich es nicht für die Mühe wert, drei verschiedene Lastpfade in diesem Mapping beizubehalten.
Ich bin zuversichtlich, dass jeder mit etwas Erfahrung in PowerCenter – nach einigem Nachdenken – eine ähnliche Geschichte von nicht-trivialen Mapping-Anforderungen aus seiner eigenen Praxis finden kann. Wir sind uns dieser Komplexität vielleicht nicht einmal bewusst, aber sie ist immer noch da.
Nehmen Sie als Beispiel einen Thread aus 2014 oder 2015, in dem jemand gefragt hat, wie Primzahlen in PowerCenter generiert werden. Nicht so einfach. Wer eine solche Lösung baut, muss außerhalb der bekannten Pfade denken (und arbeiten). Das ist ohne Zweifel eine außergewöhnliche Leistung in PowerCenter. Dies ist vielleicht kein großes Beispiel, aber es kann ein gutes Beispiel für komplexere Mapping-Logik sein.
Betrachten Sie als weiteres Beispiel ein beliebiges System, um die Ausführung von Workflows in einer bestimmten Reihenfolge zu koordinieren. Möglicherweise mit einigen zusätzlichen Bedingungen, z. B. „Anzahl der Datensätze mit Eigenschaft XYZ gleich Wert ABC“. All diese Dinge können beliebig komplex werden, und – wie oben erwähnt – ich bin zuversichtlich, dass viele Menschen einmal oder mehrmals etwas ähnlich Komplexes gebaut haben, auch wenn sie es nicht erkannt haben.