Aggregator-transformatie is een actieve transformatie die wordt gebruikt om geaggregeerde berekeningen uit te voeren, zoals som, gemiddelde, enz.
Als u bijvoorbeeld de som van de salarissen van alle medewerkers per afdeling wilt berekenen, kunnen we de Aggregator-transformatie gebruiken.
De geaggregeerde bewerkingen worden uitgevoerd over een groep rijen, dus een tijdelijke plaatshouder is vereist om al deze records op te slaan en de berekeningen uit te voeren.
Hiervoor wordt het cachegeheugen van de aggregator gebruikt. Dit is een tijdelijk hoofdgeheugen dat wordt toegewezen aan de aggregatortransformatie om dergelijke bewerkingen uit te voeren.
In dit voorbeeld zullen we de som van de salarissen per afdeling berekenen. Hiervoor hebben we een nieuwe kolom nodig om deze som op te slaan. We gaan dus allereerst een nieuwe column voorbereiden.
Stap 1 - Maak een nieuwe database-doeltabel, zeg bijvoorbeeld "sum_sal_deptwise", met behulp van het onderstaande script. U zult zien dat de nieuwe database-doeltabel wordt gemaakt onder Doelmap in de volgende stap.
Download het bovenstaande Create_table_sal_deptwise.txt-bestand
Stap 2 - Maak een nieuwe mapping "m_ sum_sal_deptwise".
Om een nieuwe mapping te maken, hebben we een brontabel (EMP) en een doeltabel (sum_sal_deptwise) nodig, beide in de mapping-ontwerper, daarvoor moeten we
- Importeer de doeltabel "sum_sal_deptwise" in de mapping.
- Importeer de brontabel "emp".
Stap 3 - In de mapping,
- Verwijder uit de bronkwalificatie de kolommen empno, ename, job, mgr, hiredate & comm, zodat alleen de kolommen afdno en sal overblijven.
- Maak een nieuwe aggregatortransformatie met behulp van het toolboxmenu, zoals weergegeven in de schermafbeelding. Wanneer u op het aggregatorpictogram klikt, wordt een nieuwe aggregatortransformatie gemaakt.
Stap 4 - Versleep SAL & DEPTNO-kolommen van bronkwalificatie (SQ_EMP) naar de aggregatortransformatie
Stap 5 - Dubbelklik op de aggregatortransformatie om de eigenschappen ervan te openen, en dan
- Voeg een nieuwe poort toe aan de transformatie
- Hernoem de poortnaam naar SUM_SAL
- Wijzig het gegevenstype van deze nieuwe poort in verdubbeling
- Maak van deze poort een uitvoerpoort door het selectievakje van de uitvoerpoort te selecteren.
- Klik op de uitdrukkingoptie
Stap 6 - In het uitdrukkingsvenster
- Voeg uitdrukking - som (SAL) toe, u moet deze uitdrukking schrijven.
- Selecteer de Ok-knop, dit zal het bewerktransformatie-venster terugbrengen.
Stap 7 - Selecteer in het transformatievenster de optie "GroupBy" door het selectievakje naast de kolom afdelingsnummer aan te vinken en klik op OK (door groep op te selecteren naast het afdelingsnummer, geven we Informatica de opdracht om de salarissen te groeperen op afdelingsnummer)
Stap 8 - Koppel de kolommen afdno en sum_sal van de aggregatortransformatie aan de doeltabel
Sla nu de mapping op en voer deze uit na het aanmaken van een nieuwe sessie voor deze mapping. De doeltabel zou de som van de salarissen per afdeling bevatten. Op deze manier kunnen we aggregatortransformatie gebruiken om geaggregeerde resultaten te berekenen.