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.

  • ๐Ÿงฎ Gruppierte Berechnung: Die Gruppen werden durch die Gruppierung nach Ports definiert, und der Integrationsdienst gibt fรผr jede eindeutige Kombination eine Zeile zurรผck.
  • ๐Ÿ’พ Zwei Caches: Gruppenwerte werden im Indexcache gespeichert, wรคhrend Zeilendaten im Datencache gespeichert werden.
  • ๐Ÿงช Ausgearbeitetes Beispiel: Der Ausdruck sum(SAL) gruppiert nach DEPTNO lรคdt die Abteilungssummen in SUM_SAL_DEPTWISE.
  • ๐Ÿ”€ Sortierte Eingabe: Durch die Vorsortierung nach Ports kann der Integrationsdienst jede Gruppe frรผhzeitig freigeben und deutlich weniger Daten zwischenspeichern.
  • ๐Ÿ“ˆ Inkrementelle Lรคufe: Bei der inkrementellen Aggregation wird der historische Cache wiederverwendet, sodass nur neue Quellzeilen berechnet werden.
  • ๐Ÿšซ Verschachtelungslimit: Eine einzelne Transformation kann entweder Funktionen auf einer einzigen Ebene oder verschachtelte Funktionen enthalten, niemals beides.

Aggregatortransformation in Informatica

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

  1. Importieren Sie die Zieltabelle โ€žsum_sal_deptwiseโ€œ in die Map.ping.
  2. Importieren Sie die Quelltabelle โ€žempโ€œ.

Beide Definitionen erscheinen nun auf der Leinwand, wie unten dargestellt.

Karteping Designer mit der EMP-Quelle, SQ_EMP und dem importierten Ziel SUM_SAL_DEPTWISE

Schritt 3) Auf der Karteping,

  1. Von dem QuellqualifikatorLรถschen Sie die Spalten empno, ename, job, mgr, hiredate und comm, sodass nur die Spalten deptno und sal รผbrig bleiben.
  2. 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.

Das Aggregator-Symbol in der Symbolleiste erstellt AGGTRANS neben dem gekรผrzten SQ_EMP.

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.

Die Ports SAL und DEPTNO wurden von SQ_EMP in die Aggregator-Transformation AGGTRANS gezogen.

Schritt 5) DoubleKlicken Sie auf die Aggregator-Transformation, um deren Eigenschaften zu รถffnen, und dann

  1. Fรผgen Sie der Transformation einen neuen Port hinzu
  2. Benennen Sie den Port in SUM_SAL um.
  3. ร„ndern Sie den Datentyp dieses neuen Ports auf double
  4. Machen Sie diesen Port zu einem Ausgangsport, indem Sie das Kontrollkรคstchen des Ausgangsports aktivieren.
  5. Klicken Sie auf die Ausdrucksoption

Auf der Registerkarte โ€žPortsโ€œ werden nun SAL, DEPTNO und der neue Ausgangsport SUM_SAL angezeigt.

Registerkarte โ€žPortsโ€œ von AGGTRANS mit dem neuen Ausgabeport SUM_SAL, der auf den Datentyp โ€ždoubleโ€œ eingestellt ist.

Schritt 6) Im Ausdruckseditor-Fenster

  1. Fรผgen Sie den Ausdruck sum(SAL) hinzu; Sie mรผssen diesen Ausdruck selbst schreiben.
  2. Klicken Sie auf die Schaltflรคche OK. Dadurch wird das Fenster โ€žTransformationen bearbeitenโ€œ wieder angezeigt.

Im Ausdruckseditor wird der SUM_SAL zugewiesene Aggregatausdruck angezeigt.

Ausdruckseditor fรผr den Port SUM_SAL, der den Aggregatausdruck sum(SAL) enthรคlt

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.

Registerkarte โ€žPortsโ€œ, wobei das Kontrollkรคstchen โ€žGroupByโ€œ neben dem Port โ€žDEPTNOโ€œ aktiviert ist.

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.

DEPTNO und SUM_SAL sind von AGGTRANS mit der Zieldefinition SUM_SAL_DEPTWISE verknรผpft.

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.

Hรคufig gestellte Fragen

Die aggregierte Familie umfasst AVG, COUNT, FIRST, LAST, MAX, MEDIAN, MIN, PERCENTILE, STDDEV, SUM und VARIANCE. Jede dieser Funktionen gibt einen zusammenfassenden Wert fรผr die Nicht-Null-Werte im ausgewรคhlten Port zurรผck.

Die gesamte Eingabe wird als eine Gruppe behandelt, daher wird fรผr alle Eingabezeilen eine einzige Zeile zurรผckgegeben. Diese Zeile enthรคlt das Gesamtergebnis zusammen mit der letzten Zeile, die die Transformation empfangen hat.

Der Index-Cache speichert die Gruppenwerte, also die Werte der mit โ€žGruppieren nachโ€œ markierten Ports. Der Daten-Cache speichert die fรผr die Berechnung verwendeten Zeilendaten. รœberschรผssige Daten werden in Cache-Dateien geschrieben.

Es leitet nur neue Quelldaten durch die Karte.ping und kombiniert diese Daten mit dem historischen Cache aus frรผheren Durchlรคufen, sodass die Summen aktualisiert statt neu berechnet werden. Diese Funktion ist nicht mit der Option fรผr sortierte Eingaben kombinierbar.

StandardmรครŸig behandelt der Integrationsdienst Nullwerte als NULL und รผberspringt sie, sodass leere Gehaltsangaben bei einer Summe ignoriert werden. Der Dienst kann stattdessen so konfiguriert werden, dass Nullwerte in Aggregatfunktionen als Null behandelt werden.

In das Verzeichnis, das durch die Einstellung โ€žCache-Verzeichnisโ€œ angegeben wird. StandardmรครŸig wird hier die im Workflow Manager konfigurierte Prozessvariable โ€ž$PMCacheDirโ€œ verwendet. Stellen Sie sicher, dass dieses Verzeichnis existiert und รผber ausreichend freien Speicherplatz verfรผgt.

KI-Assistenten analysieren Quelldaten und Arbeitslastverlauf, um vorzuschlagen, zu welcher Gruppe ein Gesamtwert gehรถrt.ping Die Schlรผssel sind entscheidend, und es wird ermittelt, wo in der Datenbank eine Berechnung am gรผnstigsten ist. Maschinelles Lernen hilft dabei, die Optionen zu bewerten, und ein Ingenieur gibt sie frei.

Copilot erstellt schnell Ausdrรผcke und den zugehรถrigen SQL-Code, was Zeit bei wiederkehrenden Portierungsarbeiten spart. Da Copilot weder Ihre Cache-GrรถรŸen noch die Portreihenfolge einsehen kann, sollten Sie jeden Vorschlag im Ausdruckseditor vor dem Speichern รผberprรผfen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: