Megosztás a következőn keresztül:


Átalakítások optimalizálása

Az alábbi stratégiák segítségével optimalizálhatja az átalakítások teljesítményét az Azure Data Factory és az Azure Synapse Analytics-folyamatok adatfolyamainak leképezésében.

Illesztések, létezők és keresések optimalizálása

Műsorszolgáltatás

Illesztések, keresések és létező átalakítások esetén, ha egy vagy mindkét adatfolyam elég kicsi ahhoz, hogy elférjen a feldolgozó csomópont memóriájában, optimalizálhatja a teljesítményt az Broadcasting engedélyezésével. A műsorszórás akkor történik, ha kis adatkereteket küld a fürt összes csomópontjának. Ez lehetővé teszi a Spark-motor számára, hogy a nagy adatfolyamban lévő adatok átrendezése nélkül csatlakozzon. Alapértelmezés szerint a Spark-motor automatikusan eldönti, hogy az illesztés egyik oldalát közvetíti-e. Ha ismeri a bejövő adatokat, és tudja, hogy az egyik stream kisebb, mint a másik, válassza a Rögzített műsorszórás lehetőséget. A javítás a Sparkot a kiválasztott stream közvetítésére kényszeríti.

Ha a közvetített adatok mérete túl nagy a Spark-csomóponthoz, memóriahiba jelenhet meg. A memóriakihasználtság elkerülése érdekében használjon memóriaoptimalizált fürtöket. Ha adatfolyam-végrehajtások során időtúllépéseket tapasztal a közvetítés során, kikapcsolhatja a közvetítés optimalizálását. Ez azonban lassabb adatáramlást eredményez.

Ha olyan adatforrásokkal dolgozik, amelyek lekérdezése hosszabb időt vehet igénybe, például nagy adatbázis-lekérdezéseket, ajánlott kikapcsolni a közvetítést az illesztésekhez. A hosszú lekérdezési időtúllépéssel rendelkező forrás Spark-időtúllépéseket okozhat, amikor a fürt a számítási csomópontokra próbál szórást adni. A közvetítés kikapcsolásához egy másik jó választás, ha az adatfolyam egy olyan adatfolyamot tartalmaz, amely a keresési átalakítás során később használható értékeket összesítő adatfolyamot tartalmaz. Ez a minta összezavarhatja a Spark-optimalizálót, és időtúllépéseket okozhat.

Join Transformation optimize

Keresztcsatlakozások

Ha konstans értékeket használ az illesztés feltételeiben, vagy több egyezés van az illesztés mindkét oldalán, a Spark keresztcsatlakozásként futtatja az illesztést. A keresztcsatlakozás egy teljes cartesian termék, amely ezután kiszűri az összekapcsolt értékeket. Ez lassabb, mint a többi illesztéstípus. A teljesítményhatás elkerülése érdekében győződjön meg arról, hogy az illesztési feltételek mindkét oldalán vannak oszlophivatkozások.

Rendezés illesztések előtt

Az egyesítési illesztéstől eltérően az olyan eszközökben, mint az SSIS, az illesztés átalakítása nem kötelező egyesítési műveletet. Az illesztési kulcsok nem igényelnek rendezést az átalakítás előtt. A rendezési átalakítások használata nem ajánlott a leképezési adatfolyamokban.

Ablakátalakítási teljesítmény

A leképezési adatfolyam ablak-transzformációja érték szerint particionálja az adatokat az oszlopokban, amelyeket az over() átalakítási beállítások záradékának részeként választ ki. Számos népszerű összesítő és elemzési függvény érhető el a Windows-átalakítás során. Ha azonban a használati eset egy ablak létrehozása a teljes adatkészleten a rangsoroláshoz rank() vagy a sorszámhoz rowNumber(), javasoljuk, hogy ehelyett a Rang átalakítást és a helyettesítő kulcs átalakítást használja. Ezek az átalakítások ismét jobban teljes adathalmaz-műveleteket hajtanak végre ezen függvények használatával.

Ferde adatok újraparticionálása

Bizonyos átalakítások, például illesztések és összesítések átrendezik az adatpartíciókat, és esetenként ferde adatokhoz vezethetnek. A ferde adatok azt jelentik, hogy az adatok nem egyenletesen oszlanak el a partíciók között. A nagymértékben eltúlzott adatok lassabb alsóbb rétegbeli átalakításokhoz és fogadó írásokhoz vezethetnek. A monitorozási kijelzőn az átalakításra kattintva ellenőrizheti az adatok eltérését egy adatfolyam bármely pontján.

Skewness and kurtosis

A monitorozási kijelző bemutatja, hogyan oszlanak el az adatok az egyes partíciókon két metrikával, ferdeséggel és kurtózissal. A ferdeség annak mértéke, hogy az adatok mennyire aszimmetrikusak, és pozitív, nulla, negatív vagy nem definiált értékkel rendelkezhetnek. A negatív ferdeség azt jelenti, hogy a bal farok hosszabb, mint a jobb. A kurtózis annak mértéke, hogy az adatok nagyszélűek vagy világosszélűek-e. A magas kurtózisértékek nem kívánatosak. Az ideális ferdeségi tartományok -3 és 3 között vannak, és a kurtosis tartományai kisebbek, mint 10. A számok értelmezésének egyszerű módja a partíciódiagram megtekintése és annak megtekintése, hogy az 1 sáv nagyobb-e a többinél.

Ha az adatok nem lesznek egyenletesen particionálva egy átalakítás után, az optimalizálási lapon újraparticionálást végezhet. Az adatok átrendezése időt vesz igénybe, és előfordulhat, hogy nem javítja az adatfolyam teljesítményét.

Tipp.

Ha újraparticionálja az adatokat, de az adatokat újrakonformáló alsóbb rétegbeli átalakításokkal rendelkezik, használjon kivonatparticionálást egy illesztési kulcsként használt oszlopon.

Megjegyzés:

Az adatfolyamon belüli átalakítások (a Fogadó átalakítás kivételével) nem módosítják az inaktív adatok fájl- és mappaparticionálását. Az egyes átalakítási folyamatok particionálása újraparticionál adatokat az ADF által az egyes adatfolyam-végrehajtásokhoz kezelt ideiglenes kiszolgáló nélküli Spark-fürt adatkereteiben.

További Adatfolyam teljesítményre vonatkozó cikkek: