Aggregatortransformation in Informatica mit Beispiel
โก Intelligente Zusammenfassung
Die Aggregator-Transformation in Informatica ist das aktive Objekt, das Berechnungen wie Summe, Durchschnitt und Anzahl รผber eine Gruppe von Zeilen durchfรผhrt und diese Zeilen in einem Aggregat-Cache speichert, bis jede Gruppe abgeschlossen ist.

Was ist Aggregator-Transformation?
Die Aggregator-Transformation ist eine aktive Transformation, die Aggregatberechnungen wie Summe, Durchschnitt und Anzahl durchfรผhrt.
Wenn Sie beispielsweise die Summe der Gehรคlter aller Mitarbeiter abteilungsweise berechnen mรถchten, kรถnnen Sie die Aggregator-Transformation verwenden.
Die Aggregatvorgรคnge werden รผber eine Gruppe von Zeilen ausgefรผhrt, sodass ein temporรคrer Platzhalter erforderlich ist, um alle diese Datensรคtze zu speichern und die Berechnungen durchzufรผhren.
Hierfรผr wird der Aggregator-Cache verwendet. Dies ist ein temporรคrer Hauptspeicher, der der Aggregator-Transformation zur Durchfรผhrung solcher Operationen zugewiesen wird und in zwei Teile unterteilt ist: Der Index-Cache speichert die Gruppenwerte, wรคhrend der Daten-Cache die zu aggregierenden Zeilendaten speichert.
Die Transformation ist aktiv, da sie die Anzahl der Zeilen in der Pipeline รคndert. Mehrere tausend Mitarbeiterdatensรคtze kรถnnen hineingelangen, und nur eine Zeile pro Abteilung verlรคsst sie.
Wie man die Aggregator-Transformation in Informatica verwendet
In diesem Beispiel berechnen wir die Summe der Gehรคlter nach Abteilungen. Dazu benรถtigen wir eine neue Spalte, um diese Summe zu speichern. Also bereiten wir zunรคchst eine neue Spalte vor.
Schritt 1) Erstellen Sie mithilfe des unten stehenden Skripts eine neue Datenbankzieltabelle, beispielsweise โsum_sal_deptwiseโ. Die neue Datenbankzieltabelle wird anschlieรend unter folgendem Pfad angezeigt: TargetIm nรคchsten Schritt den Ordner โsโ ansteuern.
Laden Sie die obige Datei Create_table_sal_deptwise.txt herunter
Schritt 2) Erstelle eine neue Karteping โm_sum_sal_deptwiseโ.
Um die neue Karte zu erstellenpingWir benรถtigen die Quelltabelle (EMP) und die Zieltabelle (sum_sal_deptwise) in Map.ping Designer, also mรผssen wir
- Importieren Sie die Zieltabelle โsum_sal_deptwiseโ in die Map.ping.
- Importieren Sie die Quelltabelle โempโ.
Beide Definitionen erscheinen nun auf der Leinwand, wie unten dargestellt.
Schritt 3) Auf der Karteping,
- Von dem QuellqualifikatorLรถschen Sie die Spalten empno, ename, job, mgr, hiredate und comm, sodass nur die Spalten deptno und sal รผbrig bleiben.
- Erstellen Sie eine neue Aggregator-Transformation รผber das Werkzeugmenรผ, wie im Screenshot gezeigt. Durch Klicken auf das Aggregator-Symbol wird eine neue Aggregator-Transformation erstellt.
Das neue AGGTRANS-Objekt erscheint neben dem gekรผrzten Source Qualifier.
Schritt 4) Ziehen Sie die Spalten SAL und DEPTNO aus dem Source Qualifier (SQ_EMP) per Drag & Drop in die Aggregator-Transformation. Die beiden Ports sind nun mit AGGTRANS verbunden.
Schritt 5) DoubleKlicken Sie auf die Aggregator-Transformation, um deren Eigenschaften zu รถffnen, und dann
- Fรผgen Sie der Transformation einen neuen Port hinzu
- Benennen Sie den Port in SUM_SAL um.
- รndern Sie den Datentyp dieses neuen Ports auf double
- Machen Sie diesen Port zu einem Ausgangsport, indem Sie das Kontrollkรคstchen des Ausgangsports aktivieren.
- Klicken Sie auf die Ausdrucksoption
Auf der Registerkarte โPortsโ werden nun SAL, DEPTNO und der neue Ausgangsport SUM_SAL angezeigt.
Schritt 6) Im Ausdruckseditor-Fenster
- Fรผgen Sie den Ausdruck sum(SAL) hinzu; Sie mรผssen diesen Ausdruck selbst schreiben.
- Klicken Sie auf die Schaltflรคche OK. Dadurch wird das Fenster โTransformationen bearbeitenโ wieder angezeigt.
Im Ausdruckseditor wird der SUM_SAL zugewiesene Aggregatausdruck angezeigt.
Schritt 7) Im Fenster โTransformationen bearbeitenโ wรคhlen Sie die Option โGruppieren nachโ, indem Sie das Kontrollkรคstchen neben der Spalte โdeptnoโ aktivieren, und klicken auf โOKโ. Durch die Auswahl von โGruppieren nachโ fรผr โdeptnoโ weisen wir Informatica an, die Gehรคlter nach Abteilungsnummer zu gruppieren.
Schritt 8) Verknรผpfen Sie die Spalten โdeptnoโ und โsum_salโ aus der Aggregator-Transformation mit der Zieltabelle. Die Zuordnungping ist dann von der Quelle zum Ziel vollstรคndig.
Speichere nun die Karteping und fรผhren Sie es nach dem Erstellen eines neuen Session fรผr diese KartepingDie Zieltabelle wรผrde die Summe der Gehรคlter nach Abteilungen enthalten. Auf diese Weise kรถnnen wir die Aggregator-Transformation verwenden, um aggregierte Ergebnisse zu berechnen.
Gruppierung nach Ports in der Aggregator-Transformation
Im vorherigen Schritt wurde ein einzelner Port als โGruppieren nachโ markiert, wodurch die unternehmensweite Summe in eine Summe pro Abteilung umgewandelt wurde. Jeder Eingangs-, Eingangs-/Ausgangs-, Ausgangs- oder variable Port kann auf dieselbe Weise markiert werden.
Drei Regeln bestimmen das Ergebnis:
- Eine Reihe pro Gruppe. Wenn Werte gruppiert werden, erzeugt der Integrationsdienst fรผr jede eindeutige Kombination der Gruppierungs-Ports eine Zeile.
- Keine Gruppierung, eine Zeile. Wenn kein Port markiert ist, wird die gesamte Eingabe als eine einzige Gruppe behandelt und fรผr alle Eingabezeilen wird eine Zeile zurรผckgegeben.
- Die letzte Reihe gewinnt. Zusammen mit dem Gesamtergebnis รผbergibt der Integrationsdienst รผblicherweise die letzte empfangene Zeile der Gruppe, es sei denn, eine Funktion wie FIRST gibt eine andere Zeile an.
Wenn mehrere Hรคfen markiert sind, bestimmt die Reihenfolge der Hรคfen die Gruppierung.ping Die Reihenfolge ist entscheidend, und die Reihenfolge kann das Ergebnis beeinflussen.ping nach DEPTNO und dann JOB ist nicht dasselbe wie Gruppeping nach JOB und dann DEPTNO, da die Werte in der zweiten Spalte nicht unbedingt eindeutig sind.
Aggregator-Transformationseigenschaften
Im Eigenschaften-Tab des Fensters โTransformationen bearbeitenโ finden Sie die Einstellungen, die festlegen, wo der Cache gespeichert wird und wie groร er ist. Die folgende Tabelle listet diese Einstellungen auf.
| Rahmen | Was es steuert |
|---|---|
| Cache-Verzeichnis | Das lokale Verzeichnis, in dem der Integrationsdienst die Index- und Datencachedateien erstellt. Standardmรครig wird die im Workflow Manager festgelegte Prozessvariable $PMCacheDir verwendet. |
| Tracing Level | Detailgrad der im Sitzungsprotokoll fรผr diese Transformation geschriebenen Informationen. |
| Sortierte Eingabe | Gibt an, dass die eingehenden Daten bereits nach Ports gruppiert und sortiert sind. Wรคhlen Sie diese Option nur aus, wenn die Karteping Liefert tatsรคchlich sortierte Daten. |
| Grรถรe des Aggregator-Datencaches | Grรถรe des Datencaches. Der Standardwert betrรคgt 2,000,000 Byte, und die Einstellung โAutoโ รผberlรคsst die Grรถรenbestimmung dem Integrationsdienst. |
| Grรถรe des Aggregator-Index-Cache | Grรถรe des Index-Caches. Der Standardwert betrรคgt 1,000,000 Byte, und die Option โAutoโ รผberlรคsst die Grรถรenbestimmung dem Integrationsdienst. |
| Transformationsbereich | Wendet die Logik auf jede Transaktion oder auf alle eingehenden Daten an. Bei โAlle Eingabenโ werden die Grenzen eingehender Transaktionen entfernt. |
Wenn die inkrementelle Aggregation aktiviert ist, schreibt der Integrationsdienst bei jedem Durchlauf eine Sicherungskopie der Cache-Dateien, sodass das Cache-Verzeichnis zwei Sรคtze von Dateien anstatt nur einen enthalten muss.
Regeln fรผr Aggregatausdrรผcke und Tipps zur Leistungsoptimierung
Ein Aggregatausdruck kann eine Aggregatfunktion mit bedingten Klauseln und Nicht-Aggregatfunktionen kombinieren, wodurch bedingte Summen und Zรคhlungen innerhalb eines Ports mรถglich sind. Zwei Regeln schrรคnken die Mรถglichkeiten ein.
- Eine Verschachtelungsebene. Nur eine Aggregatfunktion darf in einer anderen verschachtelt sein, und der innere Ausdruck wird zuerst ausgewertet.
- Kein Mischen. Eine Transformation kann entweder einstufige oder verschachtelte Funktionen enthalten, niemals beides. Enthรคlt sie beides, markiert der Designer die Zuordnung.ping Ungรผltig, daher wird die Logik auf zwei Aggregator-Transformationen aufgeteilt.
Was die Klangabstimmung angeht, erledigen drei Einstellungen den grรถรten Teil der Arbeit:
- Sortierte Eingabe. Wenn Zeilen sortiert nach den Gruppierungs-Ports eintreffen, kann jede Gruppe freigegeben werden, sobald ihre letzte Zeile eingetroffen ist. Dadurch werden deutlich weniger Daten zwischengespeichert und die Sitzung wird schneller ausgefรผhrt. Sortierte Eingaben kรถnnen nicht mit inkrementeller Aggregation kombiniert werden.
- Inkrementelle Aggregation. Neue Quellzeilen werden durch die Map geleitetping und kombiniert mit dem historischen Cache anstatt die Historie neu zu berechnen, was fรผr eine nรคchtliche Aktualisierung auf eine laufende Summe geeignet ist.
- Frรผhzeitig filtern. Zeilen, die niemals zu einer Gesamtsumme beitragen, sollten vor dem Aggregator entfernt werden, entweder in der Quellqualifiziererabfrage oder in einem FiltertransformationDenn jede Zeile, die den Aggregator erreicht, benรถtigt Cache-Speicher. Dies ist eine der Standardprรผfungen wรคhrend des Vorgangs. Leistungsoptimierung.







