Transformacja agregatora w informatyce z przykładem
Co to jest transformacja agregatora?
Transformacja agregatorowa to aktywna transformacja używana do wykonywania obliczeń zbiorczych, takich jak suma, średnia itp.
Na przykład, jeśli chcesz obliczyć sumę wynagrodzeń wszystkich pracowników w podziale na działy, możesz skorzystać z transformacji agregatora.
Operacje agregacji są wykonywane na grupie wierszy, więc do przechowywania wszystkich tych rekordów i wykonywania obliczeń wymagany jest tymczasowy symbol zastępczy.
W tym celu używana jest pamięć podręczna agregatora. Jest to tymczasowa pamięć główna, która jest przydzielana transformacji agregatora w celu wykonywania takich operacji.
W tym przykładzie obliczymy sumę wynagrodzeń według działów. W tym celu potrzebujemy nowej kolumny do przechowywania tej sumy. Więc najpierw przygotujemy nową kolumnę.
Krok 1) Utwórz nową docelową tabelę bazy danych, na przykład „sum_sal_deptwise”, używając poniższego skryptu. Zobaczysz, że nowa docelowa tabela bazy danych jest tworzona pod Target folderze w następnym kroku.
Pobierz powyższy plik Create_table_sal_deptwise.txt
Krok 2) Utwórz nowe mapowanie „m_ sum_sal_deptwise”.
Aby utworzyć nowe mapowanie, potrzebujemy tabeli źródłowej (EMP) i tabeli docelowej (sum_sal_deptwise) w projektancie mapowania. W tym celu musimy:
- Zaimportuj tabelę docelową „sum_sal_deptwise” do mapowania.
- Zaimportuj tabelę źródłową „emp”.
Krok 3) W mapowaniu
- Z Kwalifikator źródła, usuń kolumny empno, ename, job, mgr, Hiredate & Comm, pozostawiając tylko kolumny deptno i sal.
- Utwórz nową transformację agregatora za pomocą menu skrzynki narzędziowej, jak pokazano na zrzucie ekranu. Po kliknięciu ikony agregatora zostanie utworzona nowa transformacja agregatora.
Krok 4) Przeciągnij i upuść kolumny SAL i DEPTNO z kwalifikatora źródła (SQ_EMP) do transformacji agregatora
Krok 5) Double kliknij transformację agregatora, aby otworzyć jej właściwości, a następnie
- Dodaj nowy port w transformacji
- Zmień nazwę portu na SUM_SAL
- Zmień typ danych tego nowego portu na podwójny
- Ustaw ten port jako port wyjściowy, zaznaczając pole wyboru portu wyjściowego.
- Kliknij opcję wyrażenia
Krok 6) W oknie wyrażeń
- Dodaj wyrażenie- suma(SAL), musisz napisać to wyrażenie.
- Wybierz przycisk OK, co spowoduje powrót do okna edycji transformacji.
Krok 7) W oknie edycji transformacji wybierz opcję „Grupuj według”, zaznaczając pole wyboru przy kolumnie deptno i kliknij OK (wybierając grupuj według przy kolumnie deptno, instruujemy Informaticę, aby grupowała wynagrodzenia według deptno).
Krok 8) Połącz kolumny deptno i sum_sal z transformacji agregatora z tabelą docelową
Teraz zapisz mapowanie i wykonaj ją po utworzeniu nowej sesji dla tego mapowania. Tabela docelowa będzie zawierać sumę wynagrodzeń według działów. W ten sposób możemy użyć transformacji agregatora do obliczenia wyników zbiorczych.








