E-mail melléklet mentése SharePointba a Power Automate segítségével
Ebből a blogból megtudhatja, hogyan mentheti automatikusan az e-mail mellékleteket a SharePointba, majd törölheti az e-maileket a Power Automate segítségével.
Amikor az adatmodellt és a DAX for LuckyTemplates-hez optimalizálja, érdemes megjegyezni, hogy a színfalak mögött két motor fut – a képletmotor és a tárolómotor .
Ez a két motor együtt dolgozik, hogy visszaadja a szükséges eredményeket a felhasználónak. Az eredményeket táblázat vagy skálaérték formájában adják meg.
Tartalomjegyzék
A Formula Motor szerepe
Ebben a cikkben a formulamotorra fogunk összpontosítani.
A képletmotor a legfelső szintű motor, amely a lekérdezés teljes architektúráját kezeli.
Bármit is csinál egy lekérdezés végrehajtása közben, vagy miközben egy számított oszlopot vagy egy számított táblázatot hoz létre, a képletmotor beindul.
A képletmotor nemcsak a DAX-ban, hanem az MDX-ben is megérti a kapott lekérdezéseket. Például az Excel használatakor pivot-modelleket hoz létre pivot-táblázatok alapján, és a kimutatástáblázatok valójában MDX nyelvet használnak.
Itt lép be a képletmotor. Mivel a DAX-ot és az MDX-et is megérti, használhat egy másik LuckyTemplates modellt is. Az ebből az adatmodellből küldött lekérdezések DAX-ot, míg a pivot-modellből érkező lekérdezések MDX-et fognak használni.
Hogyan működik a Formula Engine
Az MDX-forrásból vagy a DAX-forrásból származó lekérdezések megértése csak egy tényező a képletmotor teljesítményében. Más lépéseken is keresztülmegy, amelyek segítenek a lekérdezéseken.
Először is létre kell hoznia egy lekérdezési tervet, amelyet a tárolómotor megért . Az alacsonyabb szintű motorként a tárolómotor valójában nem tudja, hogy az Excelben lévő pivot tábla vagy a LuckyTemplates vizualizációja végrehajtotta-e a lekérdezést.
Lekérdezési terv létrehozásakor a képletmotor először egy logikai lekérdezési tervet készít, majd egy fizikai lekérdezési tervet. A logikai és a fizikai lekérdezési tervnek is hasonlítania kell egymásra.
A fizikai lekérdezési terv teljesítése után a felhasználó vagy az ügyféleszköz megkapja az eredménykészletet. Innentől kezdve az ügyféleszköz határozza meg, hogyan fogja használni az eredményeket vagy az adatkészletet, hogy megjelenítse a végeredményt a felhasználó számára.
A Formula motor fő korlátai
A képletmotor óriási szerepet játszik, amikor a DAX-ot LuckyTemplateshez optimalizálja a DAX Studio használatával. Ez azonban bizonyos korlátozásokkal is jár.
Először is, a formulamotor mindig egyetlen magot használ a teljes működés kezelésére, függetlenül attól, hogy hány CPU mag áll rendelkezésre a rendszerben .
Amikor megnyitom a Feladatkezelőt, látni fogja, hogy a CPU-m hat maggal rendelkezik.
Ennek ellenére a formulamotor továbbra is kiválaszt egyet a hat mag közül, amellyel dolgozni, míg a tárolómotort hagyja a többi használatára.
Másodszor, a képletmotornak nincs közvetlen hozzáférése az adatbázishoz . E korlátozás miatt az adatokat vagy a belső memóriában kell tárolnia, vagy tárolhatja az adatbázisban, és létrehozhat egy DirectQuery-t az adatbázison keresztül.
A tárolómotorra is támaszkodik, hogy az adatokat adatgyorsítótár formájában kapja meg. A képletmotor ezután iterál az adatgyorsítótáron, és folytatja, mielőtt eredményeket tudna nyújtani a végfelhasználónak.
Hogyan segít a Formula Engine optimalizálni a DAX-ot LuckyTemplates számára?
Néha, amikor megpróbálja optimalizálni az adatmodellt vagy a DAX-ot LuckyTemplateshez, észreveszi, hogy a tárolómotor lelassul, miközben lekérdezéseket hajt végre. Ebben az esetben használhatja a képletmotort a teljes számítás elvégzéséhez a folyamat optimalizálása érdekében.
Vegye figyelembe, hogy ha a képletmotor végül a teljes táblát önmagában építi fel, a folyamat során létrehozott eredményhalmaz nem kerül felhasználásra a következő lekérdezésekben, amelyeket az ügyféleszköz generál, ha azok hasonlóak a korábban végrehajtott lekérdezésekhez . De abban az esetben, ha a tárolómotor biztosítja az adatgyorsítótárat, akkor az adott adatgyorsítótár a memóriában tartható, így optimalizálni tudja az ügyféleszköztől érkező kéréseket.
Hogyan fog ez működni?
Tegyük fel, hogy írunk egy lekérdezést, amelyet teljes egészében a tárolómotor hajt végre, de néhány szempontot a képletmotornak kell kiszámítania. Ebben az esetben a tárolómotor visszaküld egy adatgyorsítótárat a képletmotornak, és ez az adatgyorsítótár (ha egyszerű) a memóriában tárolható.
Most, ha néhány másodperccel később érkezik egy hasonló lekérdezés, ahelyett, hogy a teljes adatmodellt még egyszer átvizsgálná, a képletmotor vagy a tárolómotor az adott adatgyorsítótárat használja, így csökkenthető a lekérdezési idő és a felhasználói élmény. javított.
A Formula motor terhelésének csökkentése
A formulamotor ismét megérti a DAX és MDX kódokat.
Tehát ha használod,és egyéb feladatok, a formula motor ismeri a DAX nyelven belül használt összes függvényt, és képes lesz mindezt önállóan megoldani. Ez azonban hatással lehet a lekérdezés teljesítményére, különösen mivel a képletmotor mindent egyetlen mag használatával próbál meg végrehajtani.
Éppen ezért ügyelnünk kell a formulamotor terhelésének csökkentésére és a tárolómotor terhelésének növelésére is.
Jó példa arra, hogy a képletmotoron belüli számítások mennyire eltérnek a tárolómotortól, a CROSSJOIN használata.
A CROSSJOIN használatakor csak korlátozott mennyiségű adat halad át a tárolómotoron. Ami a számítás többi részét illeti, mindezt a képletmotor hajtja végre. Összehasonlításképpen, a SUMMARIZE használata azt jelenti, hogy a teljes lekérdezést végrehajtják a tárolómotoron belül.
Természetesen ez attól is függ, hogy az SUMMARIZE-t hogyan használják.
Ha a SUMMARIZE-t használjuk a legbelső funkcióként, akkor az mindenképpen lenyomódik a tárolómotorra. Bizonyos esetekben azonban az SUMMARIZE egy másik kóddal együtt használatos, amely a képletmotor működését igényli. Ebben az esetben a képletmotor közbelép és elvégzi a munkát.
Annak ismerete, hogy hol halad a terhelés, segíthet optimalizálni a lekérdezés teljesítményét, különösen akkor, ha szem előtt tartja az Ön rendelkezésére álló motorok kapacitását és korlátait.
Eszközök, amelyek segíthetnek optimalizálni a DAX-ot LuckyTemplates számára
A DAX optimalizálása könnyebb lesz, ha maximalizálja az ezt lehetővé tevő eszközöket. A DAX Studio az egyik ilyen eszköz.
Vegyük a korábbi példát, ahol a képletmotor átveszi a számítás befejezésének teljes terhét az ÖSSZEFOGLALÁS függvény használatakor. A DAX Studio segíthet a kód átírásában oly módon, hogy az SUMMARIZE-t a tárolómotorba tolja, felszabadítva a formulamotor terhelését. Ez potenciálisan javítja az adatmodell és a lekérdezések teljesítményét.
Természetesen ennek zökkenőmentesen kell működnie egyszerű lekérdezések esetén. Vannak bonyolultabb forgatókönyvek is.
Például létrehozhat olyan összetett modelleket, amelyek két tárolómotort használnak magán az adatmodellben. Az egyik a Vertipaq, a másik pedig a DirectQuery számára. Ebben az esetben az adatbázist úgy kell optimalizálni, hogy a generált lekérdezések az adott relációs adatmodellhez épüljenek fel.
Tegyük fel, hogy a dátummodellben két tábla van – a Termékek tábla és az Értékesítés tábla. A Termékek tábla a Vertipaq tárolóban található, míg az Értékesítési tábla, mivel egy nagyobb tábla, közvetlenül az adatbázison belül van tárolva egy DirectQuery kapcsolaton keresztül.
Tételezzük fel azt is, hogy a mátrixba húzza a Márka oszlopot, valamint a DirectQuery kapcsolaton belüli értékesítési táblából származó Teljes értékesítés mértékét.
Ebben az esetben a képletmotornak kell végrehajtania a műveletet a két motor között.
Először is lekéri a Termékkulcs és Márka oszlopokat a Termékek táblázatból. Ezután lekéri a Nettó ár, Mennyiség és Termékkulcs oszlopokat az Értékesítési táblázatból. Miután mind a Vertipaq, mind a DirectQuery adatgyorsítótárával rendelkezik, a képletmotornak fel kell vennie az adatgyorsítótárat, és meg kell próbálnia csatlakozni hozzájuk, hogy az eredményeket a végfelhasználónak lássa.
Következtetés
A formula motor valóban óriási szerepet játszik, amikor a DAX-szal dolgozik. Mindazonáltal kritikus fontosságú annak megértése, hogyan működik, mielőtt belevágna. A képletmotor és a tárolómotor zökkenőmentes együttműködésének elsajátítása kulcsfontosságú, különösen akkor, ha azt szeretné, hogy DAX-lekérdezései jobban teljesítsenek.
Az elemzési szolgáltatások architektúrájának legfelső szintű motorjaként a képletmotornak sok műveletet kell végrehajtania. De miután megértette a tárolómotor csínját-bínját is, kitalálhatja, hogy melyik műveletet helyezze be a tárolómotorba, és melyiket hagyja a képletmotoron belül.
Egy külön oktatóanyagban mélyebbre ásunk a tárolómotorral.
Minden jót,
Ebből a blogból megtudhatja, hogyan mentheti automatikusan az e-mail mellékleteket a SharePointba, majd törölheti az e-maileket a Power Automate segítségével.
A Microsoft LuckyTemplates irányítópult 18 legjobb példája 2023
Ismerje meg, hogyan hozhat létre <strong>Power Automate</strong> folyamatokat a semmiből. Sablon használata helyett mi magunk hozzuk létre a kiváltó okokat és a műveleteket.
4 módszer a Pi használatára a Pythonban példákkal
Ebben az útmutatóban bemutatom, hogyan lehet Pénzügyi információk mátrixát létrehozni a Profit és veszteség (P&L) kimutatással a LuckyTemplates alkalmazásban.
Fedezze fel, hogyan lehet dinamikusan egyesíteni oszlopokat a Power Query Table.CombineColumns függvény segítségével.
Ismerje meg, hogyan adhatjuk hozzá és szinkronizálhatjuk SharePoint-fájljainkat az asztalon és a OneDrive-on.
Tudja meg, miért fontos egy dedikált dátumtáblázat a LuckyTemplatesben, és ismerje meg ennek leggyorsabb és leghatékonyabb módját.
Ez a rövid oktatóanyag kiemeli a LuckyTemplates mobil jelentési funkcióját. Megmutatom, hogyan készíthet hatékony jelentéseket mobileszközökön.
Ebben a LuckyTemplates bemutatóban olyan jelentéseket tekintünk át, amelyek professzionális szolgáltatáselemzést mutatnak be egy olyan cégtől, amely több szerződéssel és ügyfél-elkötelezettséggel rendelkezik.