Aggregátor transzformáció az informatikában példával

⚡ Okos összefoglaló

Az Informaticában az aggregátor transzformáció az az aktív objektum, amely olyan számításokat végez, mint az összegzés, az átlagolás és a darabszám egy sorcsoporton belül, és ezeket a sorokat egy összesített gyorsítótárban tárolja, amíg az egyes csoportok be nem fejeződnek.

  • 🧮 Csoportosított számítás: A portok szerinti csoportosítás határozza meg a csoportokat, és az Integration Service minden egyedi kombinációhoz egy sort ad vissza.
  • 💾 Két gyorsítótár: A csoportértékek az index gyorsítótárában tárolódnak, míg a soradatok az adat gyorsítótárban.
  • 🧪 Működő példa: A DEPTNO szerint csoportosított sum(SAL) kifejezés betölti a részlegek összesítéseit a SUM_SAL_DEPTWISE függvénybe.
  • 🔀 Rendezett bemenet: A csoport portok szerinti előzetes rendezése lehetővé teszi az integrációs szolgáltatás számára, hogy az egyes csoportokat korábban felszabadítsa, és sokkal kevesebb adatot gyorsítótárazzon.
  • 📈 Növekményes futtatások: Az inkrementális aggregáció újrafelhasználja a korábbi gyorsítótárat, így csak az új forrássorok kerülnek kiszámításra.
  • ???? Fészkelés korlátja: Egyetlen transzformáció tartalmazhat egyszintű függvényeket vagy beágyazott függvényeket, soha nem mindkettőt.

Aggregátor átalakítás az informatikában

Mi az aggregátor transzformáció?

Az aggregátor transzformáció egy aktív transzformáció, amely összesített számításokat végez, például összegzést, átlagolást és darabszámot.

Például, ha az összes alkalmazott fizetésének összegét szeretnéd kiszámolni részlegenként, használhatod az Aggregátor transzformációt.

Az összesített műveletek egy sorcsoporton keresztül kerülnek végrehajtásra, ezért az összes rekord tárolásához és a számítások elvégzéséhez ideiglenes helyőrzőre van szükség.

Erre az aggregátor gyorsítótárát használják. Ez egy ideiglenes fő memória, amelyet az Aggregátor transzformáció számára foglalnak le az ilyen műveletek végrehajtásához, és két részben tárolódik: az index gyorsítótár a csoportértékeket, míg az adat gyorsítótár az aggregált soradatokat tárolja.

Az átalakítás azért aktív, mert megváltoztatja a folyamatban lévő sorok számát. Több ezer alkalmazotti rekord kerülhet be, és részlegenként csak egy sor távozik belőle.

Az aggregátor transzformáció használata Informaticában

Ebben a példában a fizetések összegét fogjuk kiszámítani osztályonként. Ehhez új oszlopra van szükségünk ennek az összegnek a tárolására. Tehát mindenekelőtt egy új rovatot készítünk.

Step 1) Hozz létre egy új adatbázis-céltáblát, például a „sum_sal_deptwise”-t az alábbi szkript segítségével. Látni fogod, hogy az új adatbázis-céltábla a következő alatt jön létre: Targets mappát a következő lépésben.

Töltse le a fenti Create_table_sal_deptwise.txt fájlt

Step 2) Újat csinálni térképping „m_összeg_mélységben”.

Az új térkép elkészítéséhezping, szükségünk van a forrástáblára (EMP) és a céltáblára (sum_sal_deptwise) a Map-benping Tervező, tehát nekünk kell

  1. Importálja a „sum_sal_deptwise” céltáblát a térképbeping.
  2. Importálja az „emp” forrástáblát.

Mindkét definíció megjelenik a vásznon, ahogy az alább látható.

Térképping Tervező az EMP forrással, az SQ_EMP-vel és az importált SUM_SAL_DEPTWISE céllal

Step 3) A térképenping,

  1. Tól Forrás minősítő, törölje az empno, ename, job, mgr, hiredate és comm oszlopokat, csak a deptno és sal oszlopokat hagyja meg.
  2. Hozz létre egy új Aggregator transzformációt az eszköztár menüjének segítségével, ahogy a képernyőképen látható. Amikor az aggregator ikonra kattintasz, egy új Aggregator transzformáció jön létre.

Az új AGGTRANS objektum a levágott forrásminősítő mellett jelenik meg.

Aggregátor ikon az eszköztáron, amely AGGTRANS-t hoz létre a levágott SQ_EMP mellett

Step 4) Húzd át a SAL és DEPTNO oszlopokat a Source Qualifier (SQ_EMP) transzformációból az Aggregator transzformációba. A két port most már össze van kapcsolva az AGGTRANS-szal.

SAL és DEPTNO portok áthúzása az SQ_EMP-ből az AGGTRANS Aggregator transzformációba

Step 5) Double-kattintson az Aggregator transzformációra a tulajdonságainak megnyitásához, majd

  1. Adjon hozzá egy új portot az átalakításhoz
  2. Nevezd át a portot SUM_SAL-ra
  3. Módosítsa az új port adattípusát duplájára
  4. Tegye ezt a portot kimeneti porttá a kimeneti port jelölőnégyzetének bejelölésével.
  5. Kattintson a kifejezés lehetőségre

A Portok fül mostantól a SAL, a DEPTNO és az új SUM_SAL kimeneti portot tartalmazza.

Az AGGTRANS Ports füle, ahol az új SUM_SAL kimeneti port dupla adattípusra van állítva.

Step 6) A Kifejezésszerkesztő ablakban

  1. Add hozzá a sum(SAL) kifejezést; ezt a kifejezést magadnak kell megírnod.
  2. Válassza az OK gombot, ezzel visszahozza az Átalakítások szerkesztése ablakot.

A Kifejezésszerkesztő megjeleníti a SUM_SAL-hoz rendelt összesítő kifejezést.

Kifejezésszerkesztő a sum(SAL) összesített kifejezést tartalmazó SUM_SAL porthoz

Step 7) Az Átalakítások szerkesztése ablakban jelölje be a „Csoportosítás” lehetőséget a részlegszám oszlop melletti jelölőnégyzet bejelölésével, majd kattintson az OK gombra. A részlegszám szerinti csoportosítás kiválasztásával utasítjuk az Informaticát, hogy a fizetéseket részlegszám szerint csoportosítsa.

Portok fül, ahol a GroupBy jelölőnégyzet be van jelölve a DEPTNO port mellett

Step 8) Kapcsolja össze az Aggregator transzformációból származó deptno és sum_sal oszlopokat a céltáblával. A térképping ezután a forrástól a célig teljes.

A DEPTNO és a SUM_SAL az AGGTRANS-ból a SUM_SAL_DEPTWISE céldefinícióhoz kapcsolva

Most mentsd el a térképetping és hajtsa végre egy új létrehozása után ülés ehhez a térképhezpingA céltábla az osztályonkénti fizetések összegét tartalmazná. Így az Aggregátor transzformációval kiszámíthatjuk az összesített eredményeket.

Csoportosítás portok szerint az Aggregator transzformációban

A fenti lépés egyetlen portot jelölt meg Csoportosítás szerint (Group By), ami a vállalat egészére kiterjedő összesítést részlegenkénti összeggé alakította. Bármely bemeneti, bemeneti/kimeneti, kimeneti vagy változó port ugyanígy megjelölhető.

Három szabály szabályozza az eredményhalmazt:

  • Csoportonként egy sor. Az értékek csoportosításakor az integrációs szolgáltatás a csoport minden egyes portonkénti egyedi kombinációjához egy sort hoz létre.
  • Nincs csoportosítás, egy sor. Ha nincs megjelölve port, a teljes bemenetet egyetlen csoportként kezeli a rendszer, és az összes bemeneti sorhoz egyetlen sort ad vissza.
  • Az utolsó sor nyer. Az összesített eredmény mellett az Integrációs Szolgáltatás általában átadja a csoportban fogadott utolsó sort is, kivéve, ha egy olyan függvény, mint például a FIRST, egy másik sort nevez meg.

Ahol több kikötő van megjelölve, a kikötők sorrendje határozza meg a területet.ping sorrend, és a sorrend megváltoztathatja az eredményt. Csoportping a DEPTNO által, majd a JOB nem ugyanaz, mint a grouping a JOB, majd a DEPTNO szerint, mivel a második oszlop értékei nem feltétlenül egyediek.

Aggregátor transzformációs tulajdonságai

Az Átalakítások szerkesztése ablak Tulajdonságok lapján találhatók azok a beállítások, amelyek meghatározzák, hogy hol található a gyorsítótár, és mennyit használunk belőle. Az alábbi táblázat felsorolja ezeket.

Beállítás Mit szabályoz
Gyorsítótár könyvtár Helyi könyvtár, amelyben az Integrációs szolgáltatás létrehozza az index- és adatgyorsítótár-fájlokat. Az alapértelmezett érték a Workflow Managerben beállított $PMCacheDir folyamatváltozó.
Tracszint A munkamenet-naplóba írt részletek mennyisége ehhez az átalakításhoz.
Rendezett bemenet Deklarálja, hogy a bejövő adatok már portok szerinti csoportosításban vannak rendezve. Csak akkor válassza ki, ha a térkép...ping valóban rendezett adatokat szolgáltat.
Összesítő adatgyorsítótár mérete Az adatgyorsítótár mérete. Az alapértelmezett érték 2 000 000 bájt, az Automatikus beállítás pedig lehetővé teszi az Integrációs szolgáltatás számára a méretezést.
Aggregátor index gyorsítótár mérete Az index gyorsítótárának mérete. Az alapértelmezett érték 1 000 000 bájt, az Automatikus beállítás pedig lehetővé teszi az Integrációs szolgáltatás számára a méretezést.
Átalakítási hatókör A logikát minden egyes tranzakcióra, vagy az összes bejövő adatra alkalmazza. Az „Összes bemenet” opció elveti a bejövő tranzakciók határait.

Ha az inkrementális összesítés engedélyezve van, az integrációs szolgáltatás minden futtatáskor biztonsági másolatot készít a gyorsítótárfájlokról, így a gyorsítótár könyvtárának két fájlkészletet kell tartalmaznia egy helyett.

Összesített kifejezések szabályai és teljesítménytippek

Egy aggregált kifejezés kombinálhat egy aggregált függvényt feltételes és nem aggregált függvényekkel, ami lehetővé teszi a feltételes összegzéseket és darabszámokat egy porton belül. Két szabály korlátozza, hogy mi írható le.

  • Egy fészkelési szint. Csak egy összesítő függvény ágyazható be egy másikba, és a belső kifejezés kiértékelése történik először.
  • Nincs keverés. Egy transzformáció tartalmazhat egyszintű függvényeket vagy beágyazott függvényeket, soha nem mindkettőt. Ha mindkettőt tartalmazza, a Tervező megjelöli a térképet.ping érvénytelen, ezért oszd fel a logikát két Aggregátor transzformációra.

A hangolás terén három beállítás végzi a munka nagy részét:

  • Rendezett bemenet. Amikor a sorok portok szerinti csoportosításban rendezve érkeznek meg, minden csoport felszabadítható, amint az utolsó sora megérkezik, így sokkal kevesebb adat kerül gyorsítótárba, és a munkamenet gyorsabban fut. A rendezett bemenet nem kombinálható növekményes aggregációval.
  • Inkrementális aggregáció. Az új forrássorok áthaladnak a térképen.ping és az előzmények újraszámítása helyett a történelmi gyorsítótárral kombinálva, ami egy éjszakai betöltést tesz lehetővé egy futó összesítésben.
  • Szűrd korán. Azokat a sorokat, amelyek soha nem járulnak hozzá az összegzéshez, az Aggregator előtt kell eldobni, akár a Forrásminősítő lekérdezésben, akár egy Szűrőátalakítás, mivel minden sor, amely eléri az Aggregátort, gyorsítótár memóriát igényel. Ez az egyik szabványos ellenőrzés a folyamat során teljesítmény növelés.

GYIK

Az aggregátumcsalád lefedi AVG, COUNT, FIRST, UTOLSÓ, MAX, MEDIAN, MIN, PERCENTILIS, STDDDERM, SUM és VARIANCIA. Mindegyik egy összegző értéket ad vissza a kiválasztott port nem null értékeiről.

A teljes bemenetet egyetlen csoportként kezeli a rendszer, így az összes bemeneti sorhoz egyetlen sor kerül visszaadásra. Ez a sor tartalmazza az összesített eredményt a transzformáció által fogadott utolsó sorral együtt.

Az index gyorsítótár a csoportértékeket, azaz a Csoportosítási szempont jelölésű portok értékeit tárolja. Az adat gyorsítótár a számításban használt soradatokat tárolja. Bármelyikből túlcsordulás keletkezik, az a gyorsítótárfájlokba íródik.

Csak új forrásadatokat továbbít a térképen.ping és kombinálja a korábbi futtatások előzménygyorsítótárával, így az összesítések frissülnek az újraépítés helyett. Nem kombinálható a rendezett beviteli opcióval.

Alapértelmezés szerint az Integrációs Szolgáltatás a null értékeket NULL-ként kezeli és kihagyja őket, így az összegzés figyelmen kívül hagyja az üres fizetéseket. A szolgáltatás ehelyett beállítható úgy, hogy az összesítő függvényekben a null értékeket nullaként kezelje.

A Gyorsítótár könyvtár beállítás által megnevezett könyvtárba, amely alapértelmezés szerint a Workflow Managerben konfigurált $PMCacheDir folyamatváltozó. Győződjön meg arról, hogy a könyvtár létezik, és elegendő szabad lemezterülettel rendelkezik.

A mesterséges intelligencia asszisztensei profilt készítenek a forrásadatokról és a munkaterhelés-előzményekről, hogy javaslatokat tegyenek az összegzés hova tartozására, melyik csoportba tartozásra.ping A kulcsok számítanak, és hogy egy számítás hol olcsóbb az adatbázisban. A gépi tanuláson alapuló tanácsadók rangsorolják a lehetőségeket, és egy mérnök jóváhagyja azokat.

A Copilot gyorsan elkészíti a kifejezések és a hozzájuk tartozó SQL vázlatait, ami időt takarít meg az ismétlődő portolási munkákon. Nem látja a gyorsítótár méretét vagy a portok sorrendjét, ezért mentés előtt minden javaslatot ellenőrizni kell a Kifejezésszerkesztőben.

Foglald össze ezt a bejegyzést a következőképpen: