Összesítő átalakítás a leképezési adatfolyamban

Vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Data Factory a Microsoft Fabric a Azure Data Factory következő generációja, egyszerűbb architektúrával, beépített AI-vel és új funkciókkal. Ha még nem ismerkedik az adatintegrációval, kezdje a Fabric Data Factoryvel. A meglévő ADF-számítási feladatok frissíthetők Fabric használatával, hogy elérjék az adatkutatás, a valós idejű elemzés és a jelentéskészítés új képességeit.

Az adatfolyamok Azure Data Factory folyamatokban és Azure Synapse Analytics folyamatokban is elérhetők. Ez a cikk az adatfolyamok leképezésére vonatkozik. Ha még nem ismerkedik az átalakításokkal, tekintse meg az Adatok átalakítása leképezési adatfolyamokkal című bevezető cikket.

Tipp.

Az adatfolyam Gen2-ben a megfelelő átalakítást (csoportosítási szempont) az Adatfolyam Gen2-ben az adatfolyam-felhasználók leképezésére vonatkozó útmutatóban találja.

Az összesített átalakítás az adatfolyamok oszlopainak összesítését határozza meg. A Kifejezésszerkesztővel különböző típusú összesítéseket definiálhat, például a SUM, a MIN, a MAX és a COUNT függvényt meglévő vagy számított oszlopok szerint csoportosítva.

Csoportosítás szempontja:

Jelöljön ki egy meglévő oszlopot, vagy hozzon létre egy új számított oszlopot, amelyet az összesítéshez használ csoportonkénti záradékként. Meglévő oszlop használatához válassza ki a legördülő listából. Új számított oszlop létrehozásához vigye az egérmutatót a záradék fölé, és kattintson a Számított oszlop elemre. Ekkor megnyílik az adatfolyam-kifejezésszerkesztő. Miután létrehozta a számított oszlopot, adja meg a kimeneti oszlop nevét a Név mező alatt . Ha további csoportot szeretne hozzáadni záradék szerint, mutasson egy meglévő záradékra, és kattintson a plusz ikonra.

Átalakítási csoport összesítése beállítások szerint

A csoportosítási záradék nem kötelező összesített átalakítás esetén.

Összesített oszlopok

Az összesítési kifejezések létrehozásához lépjen az Összesítések lapra. Felülírhat egy meglévő oszlopot összesítéssel, vagy létrehozhat egy új mezőt új névvel. Az aggregációs kifejezés a jobb oldali mezőbe kerül az oszlopnév-választó mellett. A kifejezés szerkesztéséhez kattintson a szövegdobozra, és nyissa meg a kifejezésszerkesztőt. További összesítő oszlopok hozzáadásához kattintson a Hozzáadás gombra az oszloplista fölött vagy a meglévő összesítő oszlop melletti plusz ikonra. Válassza az Oszlop hozzáadása vagy az Oszlopminta hozzáadása lehetőséget. Minden összesítési kifejezésnek legalább egy összesítő függvényt kell tartalmaznia.

Összesítő beállítások

Feljegyzés

Hibakeresési módban a kifejezésszerkesztő nem tud összesítő függvényekkel rendelkező adatelőnézeteket létrehozni. Az összesítő átalakítások adatelőnézeteinek megtekintéséhez zárja be a kifejezésszerkesztőt, és tekintse meg az adatokat az "Adatok előnézete" lapon.

Oszlopminták

Az oszlopminták használatával ugyanazt az összesítést alkalmazhatja egy oszlopkészletre. Ez akkor hasznos, ha a bemeneti sémából több oszlopot is meg szeretne őrizni, mivel alapértelmezés szerint elveti őket. Használjon heurisztikus megoldást, például first() a bemeneti oszlopok aggregáción keresztüli megőrzéséhez.

Sorok és oszlopok újracsatlakoztatása

Az összesítési átalakítások hasonlóak az SQL-összesítő választó lekérdezésekhez. Azok az oszlopok, amelyek nem szerepelnek a GROUP BY záradékban vagy az összesítő függvényekben, nem haladnak át az összesítő transzformáció kimenetén. Ha más oszlopokat is fel szeretne venni az összesített kimenetbe, hajtsa végre az alábbi módszerek egyikét:

  • Használjon aggregátumfüggvényt, például last() vagy first(), hogy tartalmazza azt a további oszlopot.
  • Fűzze össze újra az oszlopokat a kimeneti adatfolyamával az önillesztés mintával.

Ismétlődő sorok eltávolítása

Az összesítési átalakítás gyakori használata a forrásadatok ismétlődő bejegyzéseinek eltávolítása vagy azonosítása. Ezt a folyamatot deduplikációnak nevezzük. A kulcsok szerinti csoport alapján válasszon egy heurisztikus megoldást, amellyel meghatározhatja, hogy melyik ismétlődő sort tartsa meg. A gyakori heurisztika a first(), last()és max()min(). Oszlopminták használatával a szabályt minden oszlopra alkalmazhatja, kivéve a csoportonkénti oszlopokat.

Deduplikáció

A fenti példában a ProductID és Name oszlopokat csoportosításhoz használják. Ha két sor ugyanazokkal az értékekkel rendelkezik a két oszlophoz, azok duplikáltnak minősülnek. Ebben az összesített átalakításban a rendszer megtartja az első egyező sor értékeit, és az összes többit elveti. Az oszlopminta szintaxisával minden olyan oszlop, amelynek a neve nem ProductID és Name, megfeleltetve van a meglévő oszlopnévhez, és az első egyező sorok értékét kapják meg. A kimeneti séma megegyezik a bemeneti sémával.

Adatérvényesítési forgatókönyvek esetén a függvény használható a count() duplikált példányok számának megszámlálására.

Adatfolyamszkript

Szintaxis

<incomingStream>
    aggregate(
           groupBy(
                <groupByColumnName> = <groupByExpression1>,
                <groupByExpression2>
               ),
           <aggregateColumn1> = <aggregateExpression1>,
           <aggregateColumn2> = <aggregateExpression2>,
           each(
                match(matchExpression),
                <metadataColumn1> = <metadataExpression1>,
                <metadataColumn2> = <metadataExpression2>
               )
          ) ~> <aggregateTransformationName>

Példa

Az alábbi példa egy bejövő streamet MoviesYear vesz fel, és oszloponként yearcsoportosítja a sorokat. Az átalakítás létrehoz egy összesített oszlopot avgrating , amely az oszlop Ratingátlagát értékeli ki. Ez az összesített átalakítás neve AvgComedyRatingsByYear.

A felhasználói felületen ez az átalakítás az alábbi képhez hasonlóan néz ki:

Csoportosítás példa szerint

Összesített példa

Az átalakítás adatfolyam-szkriptje az alábbi kódrészletben található.

MoviesYear aggregate(
                groupBy(year),
                avgrating = avg(toInteger(Rating))
            ) ~> AvgComedyRatingByYear

Adatfolyam-szkript összesítése

MoviesYear: Év- és címoszlopokat AvgComedyRatingByYearmeghatározó származtatott oszlop: A komikák átlagos minősítésének összesített átalakítása év avgratingszerint csoportosítva: Az összesített érték tárolásához létrehozandó új oszlop neve

MoviesYear aggregate(groupBy(year),
	avgrating = avg(toInteger(Rating))) ~> AvgComedyRatingByYear