nie mam żadnego dokumentu do udostępnienia na temat tych zagnieżdżonych pętli i nie jestem już częścią zespołu projektowego, więc wszystko, co mogę o tym powiedzieć, jest z głowy. Więc mam nadzieję, że zrozumiesz, dlaczego nie mogę zdradzić zbyt wielu szczegółów.
zasadniczo musiałem wykonać trzy różne rodzaje Wyszukiwania na tej samej tabeli dla tak zwanej reguły niestandardowej w oprogramowaniu do zarządzania danymi testowymi (TDM). Te reguły niestandardowe są implementowane jako mapplety i muszą zawierać wyłącznie pasywne transformacje. Bez routerów, bez filtrów, bez agregatorów, bez aktywnych transformacji Java, tylko wyrażenia, transformacje Lookup i tym podobne.
teraz dla dwóch najbardziej złożonych reguł niestandardowych musiałem zaimplementować kilka tabel pomocniczych zawierających te dane Wyszukiwania na różnych poziomach agregacji. Wypełnienie tych tabel z PowerCenter nie było zbyt łatwe, ponieważ plik źródłowy składa się z 4,5 GB tekstu (app. 43 mln rekordów); tabele wyszukiwania zawierają dane na trzech różnych poziomach agregacji z różnymi kryteriami wyszukiwania. I nie chciałem dzielić mapowania na trzy. Więc musiałem dbać o identyfikację” tego samego ” rekordu na własną rękę, nie mogłem korzystać z agregatorów sam.
o ile dobrze pamiętam, w tradycyjnym języku programowania, takim jak Java, potrzebowałbym do pięciu zagnieżdżonych pętli do analizy danych źródłowych i utworzenia odpowiednich rekordów wyszukiwania z tych danych wejściowych. Wykonywanie różnych poziomów agregacji z kilkoma zmiennymi portami w jednym EXP nie jest zbyt łatwe do utrzymania, ale moje początkowe próby ujawniły, że nadal był to najlepszy wybór; jak wspomniano, mogłem podzielić mapowanie na trzy, ale każde mapowanie miałoby prawie taki sam poziom złożoności jak jeden „ogólny” EXP, więc nie uznałem za warte wysiłku, aby utrzymać trzy różne ścieżki ładowania w tym mapowaniu.
jestem przekonany, że każdy z pewnym doświadczeniem w PowerCenter może – po pewnym namyśle-wymyślić podobną historię nietrywialnych wymagań mapowania z własnej praktyki. Możemy nawet nie zdawać sobie sprawy z takiej złożoności, ale ona wciąż istnieje.
jako przykład, weź wątek z 2014 lub 2015, w którym ktoś zapytał, jak generować liczby pierwsze w PowerCenter. Nie za łatwo. Kto buduje takie rozwiązanie, musi myśleć (i pracować) poza znanymi ścieżkami. To bez wątpienia niezwykłe osiągnięcie w PowerCenter. Może to nie jest duży przykład, ale może być dobrym przykładem bardziej złożonej logiki mapowania.
jako kolejny przykład spójrz na dowolny system koordynujący wykonywanie przepływów pracy w określonej kolejności. Być może z pewnymi dodatkowymi warunkami, takimi jak „liczba rekordów z właściwością XYZ równą wartości ABC”. Wszystkie te rzeczy mogą stać się arbitralnie złożone i – jak wspomniano powyżej-jestem przekonany, że wiele osób zbudowało coś podobnie złożonego raz lub więcej razy, nawet jeśli tego nie rozpoznali.