Antiminták elkerülése

Az antiminták olyan gyakorlatok, amelyek hasznosnak tűnnek, de teljesítményproblémákhoz, erőforrás-hatékonysági problémákhoz és a munkafolyamatok lehetséges hibáihoz vezetnek. Ha megérti és elkerüli ezeket az anti-mintákat, optimalizálhatja a felhőfolyamatokat a jobb teljesítmény és megbízhatóság érdekében.

Kerülje a beágyazott For each hurkokat

Beágyazva Minden egyes hurok erőforrás-igényes műveletek lehetnek a felhőfolyamatokban, és befolyásolhatják a teljesítményt és az erőforrás-felhasználást.

  • Végrehajtási idő: A beágyazott hurkok gyorsan megtöbbszörözhetik az iterációk teljes számát. Ha például két hurokkal rendelkezik, amelyek mindegyike 10 iterációval rendelkezik, az iterációk teljes száma 10 x 10 = 100 lesz. Ez az exponenciális növekedés meghosszabbíthatja a folyamat végrehajtási idejét, különösen akkor, ha minden iteráció nagy adathalmazokat dolgoz fel, vagy összetett műveleteket hajt végre.
  • Korlátok és kvóták: Power Automate korlátokat és kvótákat kényszerít ki, például a hurokban engedélyezett iterációk maximális számát és a teljes végrehajtási időt. A beágyazott hurkok gyorsan megközelíthetik ezeket a korlátokat, ami folyamathibákhoz vagy szabályozáshoz vezethet, különösen nagy adathalmazok vagy gyakori végrehajtások esetén.
  • Teljesítményre gyakorolt hatás: A beágyazott hurok minden iterációja feldolgozási teljesítményt és memóriát használ. Az iterációk számának növekedésével a rendszererőforrások iránti igény növekszik, ami lelassíthatja a teljes folyamatot.

További információ: Egyidejűségi hurkok és kötegek megszüntetésének korlátai

A forgatókönyvtől függően elkerülheti a beágyazott hurkokat, ha egy szülőtábla kapcsolódó rekordjait dolgozza fel. A következőket kell fontolóra venni:

  • Forgatókönyv: Egy külső hurok a Sorok listázása művelettel kéri le a termékkategóriák listáját a ProductCategory táblából, ahol az IsPromotion oszlop igaz. A belső hurok ezután feldolgozza a Product tábla kapcsolódó rekordjait a külső hurok által lekért minden kategóriához.

  • Alternatív megközelítés: Az OData-lekérdezésbővítés használatával egyszerűsítheti ezt a folyamatot. Ez a módszer lehetővé teszi, hogy egyetlen For each hurokkal dolgozzon, és a kérések Dataverse teljes számát egyetlen RetrieveMultiple hívásra csökkentse.

Az OData-lekérdezés bővítésének megvalósítása:

  • A Lekérdezés kibontása paraméterrel adja meg a keresőoszlop nevét, amely a ProductCategory táblát a Product táblához csatolja. Ez a megközelítés egyetlen lekérdezésben kéri le a kapcsolódó rekordokat. Állítsa például a Lekérdezés kibontása paramétert a következőre: Products($select=ProductName,Price) .
  • A $select paraméterrel korlátozhatja a kapcsolódó táblából visszaadott oszlopokat.
  • A releváns rekordok lekérése és feldolgozása a feltételek közvetlenül a keresési tábla oszlopaira való alkalmazásával a Sorok szűrése paraméterrel . Állítsa például a Sorok szűrése paramétert a következőre IsPromotion eq true: .

Képernyőkép a Lekérdezés kibontása és a Sorok szűrése paraméter használatáról az OData-lekérdezés bővítésének megvalósításához.

Végtelen hurkok elkerülése

Power AutomateA folyamatok végtelenül aktiválhatók, például amikor a folyamat ugyanazt a táblát frissíti, amely aktiválja.

Amikor olyan folyamatot ment, amely végtelen eseményindító hurkot eredményezhet,figyelmeztet Power Automate .

Képernyőkép a figyelmeztetésről, amelyet a készítő kap, amikor megpróbál menteni egy folyamatot, amely végtelen hurkot eredményezhet.

A végtelen ciklusok elkerülése:

  • Eseményindító feltételek használata: Az eseményindító feltételek biztosítják, hogy a folyamat csak akkor fusson, ha bizonyos feltételek teljesülnek, így megakadályozzák a szükségtelen végrehajtásokat. Az eseményindító feltételeinek megvalósításához adjon hozzá egy feltételt az eseményindítóhoz, amely bizonyos értékeket vagy állapotokat ellenőriz a folyamat folytatása előtt. Ha például a folyamat frissít egy állapotmezőt, beállíthat egy eseményindító feltételt, hogy csak akkor futtassa a folyamatot, ha az állapot még nincs beállítva a kívánt értékre.
  • A folyamat leállítása: Egy másik megközelítés a folyamat folytatásának leállítása, ha olyan feltételt észlel, amely végtelen hurkot okozna. Állítsa le a folyamatot, ha egy adott feltétel teljesül a Leállítás művelettel . Ez a megközelítés biztosítékként használható a további műveletek megakadályozására, ha a folyamat egy végtelen hurokba készül. Ha például a folyamat azt észleli, hogy már feldolgozott egy rekordot, az újrafeldolgozás elkerülése érdekében leállíthatja magát.

Nagyszámú adatátalakítási művelet elkerülése

Nagy léptékű adatátalakítások esetén érdemes lehet kinyerni, átalakítási, betöltési (ETL) folyamatot használni. Például ahelyett, hogy felhőfolyamatot használna Power Automate egy nagy Excel-számolótábla adatainak olvasására, végezzen adatformázást vagy -ellenőrzést, majd írja be Dataverse az adatokat. Célszerűbb lehet adatfolyamokat Power Platform vagy más ETL-eszközt használni .

Az adatfolyamok hatékonyan kezelik a nagy mennyiségű adatot, és jobb teljesítményt nyújtanak az ETL-feladatokhoz, mint a felhőfolyamatok. Az ETL-eszközök speciális funkciókat kínálnak az adatátalakításhoz, az ellenőrzéshez és a betöltéshez, amelyek leegyszerűsíthetik az összetett adatfeldolgozási feladatokat.

Ha a felhőfolyamatok vezénylési logikájával szeretné kezelni az adatterhelést, kombinálja a felhőfolyamatokat az adatfolyamokkal. Ennek módja az alábbi:

  1. Adatfolyam-frissítés meghívása

    • Művelet: Az adatfolyam-összekötővel Power Automate aktiválhat egy frissítési műveletet, és elindíthatja az adatfolyamban meghatározott ETL-folyamatot.
    • Példa: Állítson be egy felhőfolyamatot, amely ütemezés (például napi) vagy esemény (például új fájl mappába SharePoint való feltöltése) alapján aktiválja az adatfolyam frissítését.
  2. ETL utáni műveletek

    • Eseményindító: Az adatfolyam-frissítés befejezésekor eseményindítóval Power Automate műveleteket hajthat végre az ETL-folyamat befejezése után.
    • Példa: Az adatfolyam befejezése után felhőalapú folyamat használatával értesítéseket küldhet, frissítheti a rekordokat vagy adatfeldolgozást végezhet.

Képernyőkép az adatfolyam-műveletek felhőfolyamatban való használatáról.

Kerülje a For each loop használatát nagy számú rekord frissítéséhez

A felhasználóknak gyakran több ezer rekordot kell létrehozniuk vagy frissíteniük egy adatforrásban, amikor egy folyamat aktiválódik Power Automate. Sok felhasználó használja a For each hurkot az egyes rekordok egymás utáni feldolgozásához, ami késést és késéseket okoz.

A teljesítmény javítása érdekében próbálja ki az alábbi két módszert:

  1. Kötegelt műveletek

    • Leírás: Rekordok létrehozása vagy frissítése kötegekben. Számos összekötő és szolgáltatás biztosít API-végpontokat, amelyek támogatják a kötegelt kéréseket. Ez a megközelítés lehetővé teszi, hogy több műveletet egyetlen HTTP-kérésbe csoportosítson.
    • Megvalósítás: A kötegelt művelet funkcióval egyszerre több létrehozási vagy frissítési kérést is küldhet. Ezeket a műveleteket a rendszer egymás után hajtja végre a kötegelt kérelemben megadott sorrendben. A válaszok sorrendje megegyezik a kötegelt műveletben lévő kérések sorrendjével.
    • Előnyök: Csökkenti az adatforrásnak küldött egyedi kérések számát, minimalizálja a késést és javítja a teljesítményt.

    Képernyőkép, amely bemutatja az SharePoint API használatát egy kötegelt kérés végrehajtásához.

  2. Párhuzamosság az egyes ciklusokhoz

    • Leírás: Engedélyezte a párhuzamos feldolgozást a For Each cikluson belül több rekord egyidejű kezeléséhez.
    • Megvalósítás: Konfigurálja a For Each hurkot úgy, hogy legfeljebb 50 rekordot dolgozzon fel párhuzamosan. Ez a megközelítés olyan szolgáltatások esetében hasznos, amelyek nem támogatják a kötegelt műveleteket.
    • Előnyök: Jelentősen csökkenti a teljes feldolgozási időt több rekord egyidejű kezelésével.

A kötegelt kérésekkel kapcsolatos információkért tekintse meg a következő REST API dokumentációt:

Tömeges műveletek használata a következőben Dataverse

A Dataverse tömeges műveletek webes API-jainak használatával csökkentheti a szükséges műveletek számát, egyszerűsítheti a folyamatokat és növelheti a teljesítményt.

Tömeges műveletek A webes API-k jelentős előnyt kínálnak a kötegelt műveletekkel szemben. Íme, miben különböznek egymástól:

  • Kötegelt műveletek: Bár a kötegelt műveletek egyetlen kérelemben vannak feladva, több különálló műveletként vannak végrehajtva. A kötegen belüli minden művelet feldolgozása külön történik.
  • Tömeges műveletek: Ezzel szemben a tömeges műveletek egyetlen műveletként kerülnek feladásra és végrehajtásra. A teljes tömeges kérés egy műveletnek számít, ami jelentősen csökkentheti a műveletek számát és javíthatja a hatékonyságot.

Tömeges műveletek meghívása:

  • HTTP használata azonosítóval Microsoft Entra : A tömeges műveletek webes API-ját azonosítóval hitelesített Microsoft Entra HTTP-kérésekkel hívhatja meg.
  • A HTTP-összekötő használata szolgáltatásnévvel: Másik lehetőségként használhatja a HTTP-összekötőt Power Automate a szolgáltatásnevek használatakor az API-k meghívásához.

Ebben a példában a rekordokat JSON formátumban készítjük elő a Kiválasztás művelettel:

Képernyőkép egy Kiválasztás művelet használatáról a tartalom előkészítéséhez a tömeges kérelemhez.

Ezután HTTP azonosítóval Microsoft Entra küldjük el a kérést a CreateMultiple webes API használatával:

Képernyőkép egy HTTP-kérés tömeges művelet végrehajtásához való meghívásáról.

Ha 100 rekord van a JSON-kimenetben, ez a megközelítés csak egyetlen műveletet igényel a 100 Sor létrehozása művelet helyett Dataverse.