A lekérdezések kiértékelésének és a lekérdezések összecsukásának áttekintése a Power Queryben
Ez a cikk alapvető áttekintést nyújt az M-lekérdezések feldolgozásáról és adatforrás-kérelmekké alakításáról.
Power Query M-szkript
A Power Query által létrehozott, a speciális szerkesztőben manuálisan írt vagy üres dokumentummal beírt lekérdezések a Power Query M képletnyelvének függvényeiből és szintaxisából állnak. Ezt a lekérdezést a Power Query-motor értelmezi és kiértékeli az eredmények kimenete érdekében. Az M-szkript szolgál a lekérdezés kiértékeléséhez szükséges utasítások készleteként.
Tipp.
Az M-szkriptre úgy gondolhat, mint egy receptre, amely leírja, hogyan készítse elő az adatokat.
Az M-szkriptek létrehozásának leggyakoribb módja a Power Query-szerkesztő használata. Ha például egy adatforráshoz, például egy SQL Server-adatbázishoz csatlakozik, figyelje meg a képernyő jobb oldalán, hogy van egy alkalmazott lépések nevű szakasz. Ez a szakasz megjeleníti a lekérdezésben használt összes lépést vagy átalakítást. Ebben az értelemben a Power Query-szerkesztő felületként szolgál, amely segít létrehozni a megfelelő M-szkriptet az utána következő átalakításokhoz, és biztosítja, hogy a használt kód érvényes legyen.
Feljegyzés
Az M szkriptet a Power Query-szerkesztő a következőre használja:
- Jelenítse meg a lekérdezést lépések sorozataként, és engedélyezze az új lépések létrehozását vagy módosítását.
- Diagramnézet megjelenítése.
Az előző képen az alkalmazott lépések szakasz látható, amely a következő lépéseket tartalmazza:
- Forrás: Az adatforráshoz való kapcsolatot hozza létre. Ebben az esetben ez egy SQL Server-adatbázishoz való kapcsolat.
- Navigáció: Az adatbázis egy adott táblájához navigál.
- A többi oszlop el lett távolítva: Kiválasztja, hogy mely oszlopokat tartsa meg a táblából.
- Rendezett sorok: A táblázat rendezése egy vagy több oszlop használatával.
- Felső sorok megtartva: Szűri a táblázatot, hogy csak bizonyos sorokat tartson a táblázat tetejétől.
Ez a lépésnevek halmaza felhasználóbarát módja annak az M-szkriptnek, amelyet a Power Query hozott létre. A teljes M szkript többféleképpen is megtekinthető. A Power Queryben a Nézet lapon választhatja ki a Speciális szerkesztő. A Kezdőlap lap Lekérdezés csoportjában Speciális szerkesztő is választhat. A Power Query egyes verzióiban a szerkesztőléc nézetét is módosíthatja a lekérdezési szkript megjelenítéséhez a Nézet lapra lépve, majd az Elrendezés csoportban válassza a Szkriptnézet>lekérdezési szkriptet.
Az Alkalmazott lépések panelen található nevek többsége az M-szkripthez hasonlóan is használatos. A lekérdezés lépéseit az M nyelven azonosítók használatával nevezik el. Néha a további karakterek az M lépésnevek köré vannak csomagolva, de ezek a karakterek nem jelennek meg az alkalmazott lépésekben. Ilyen például az #"Kept top rows"
idézett azonosítóként kategorizálva a további karakterek miatt. Az idézett azonosítók segítségével tetszőleges, nulla vagy több Unicode-karakterből álló sorozat használható azonosítóként, beleértve a kulcsszavakat, a szóközöket, a megjegyzéseket, az operátorokat és az írásjeleket. Ha többet szeretne megtudni az M nyelven található azonosítókról, tekintse meg a lexikális struktúrát.
A lekérdezésben a Power Query-szerkesztőn keresztül végzett módosítások automatikusan frissítik a lekérdezés M szkriptét. Ha például az előző képet használja kiindulási pontként, ha a Felső sorok megtartása lépésnevet a 20. sor első sorára módosítja, ez a módosítás automatikusan frissül a szkriptnézetben.
Bár azt javasoljuk, hogy a Power Query-szerkesztővel hozza létre az M-szkript egészét vagy többségét, manuálisan is hozzáadhatja vagy módosíthatja az M-szkript egyes részeit. Ha többet szeretne megtudni az M nyelvről, látogasson el az M nyelv hivatalos dokumentációs webhelyére.
Feljegyzés
Az M-szkript, más néven M-kód, a Power Query M nyelvét használó kódokhoz használt kifejezés. A cikk kontextusában az M-szkript egy Power Query-lekérdezésben található, a speciális szerkesztőablakban vagy a szerkesztősáv szkriptnézetén keresztül elérhető kódra is hivatkozik.
Lekérdezések kiértékelése a Power Queryben
Az alábbi ábra azt a folyamatot mutatja be, amely akkor fordul elő, amikor egy lekérdezés kiértékelése történik a Power Queryben.
- A speciális szerkesztőben található M-szkript a Power Query motorhoz lesz elküldve. Egyéb fontos információk is szerepelnek, például a hitelesítő adatok és az adatforrás adatvédelmi szintjei.
- A Power Query meghatározza, hogy milyen adatokat kell kinyerni az adatforrásból, és kérést küld az adatforrásnak.
- Az adatforrás úgy válaszol a Power Query kérésére, hogy a kért adatokat átadja a Power Querynek.
- A Power Query megkapja a bejövő adatokat az adatforrásból, és szükség esetén elvégzi az átalakításokat a Power Query motor használatával.
- Az előző pontból származó eredmények betöltve lesznek egy célhelyre.
Feljegyzés
Bár ez a példa egy SQL Database-et adatforrásként tartalmazó lekérdezéseket mutat be, a fogalom az adatforrással vagy anélkül végzett lekérdezésekre vonatkozik.
Amikor a Power Query beolvassa az M-szkriptet, egy optimalizálási folyamaton keresztül futtatja a szkriptet a lekérdezés hatékonyabb kiértékelése érdekében. Ebben a folyamatban meghatározza, hogy a lekérdezés mely lépései (átalakításai) tölthetők ki az adatforrásba. Azt is meghatározza, hogy mely további lépéseket kell kiértékelni a Power Query-motor használatával. Ezt az optimalizálási folyamatot lekérdezés-összecsukásnak nevezzük, ahol a Power Query a lehető legtöbb végrehajtást megpróbálja leküldni az adatforrásba a lekérdezés végrehajtásának optimalizálása érdekében.
Fontos
A Rendszer a Power Query M képletnyelvének (más néven M nyelvnek) minden szabályát követi. Különösen a lusta értékelés fontos szerepet játszik az optimalizálási folyamat során. Ebben a folyamatban a Power Query megérti, hogy milyen átalakításokat kell kiértékelni a lekérdezésből. A Power Query azt is megérti, hogy a többi átalakítást nem kell kiértékelni, mert nincs rájuk szükség a lekérdezés kimenetében.
Emellett több forrás bevonása esetén az egyes adatforrások adatvédelmi szintjét is figyelembe kell venni a lekérdezés kiértékelésekor. További információ: Az adatvédelmi tűzfal színfalak mögött
Az alábbi ábra az optimalizálási folyamat lépéseit mutatja be.
- A speciális szerkesztőben található M-szkript a Power Query motorhoz lesz elküldve. Egyéb fontos információk is elérhetők, például a hitelesítő adatok és az adatforrás adatvédelmi szintjei.
- A lekérdezés-összecsukási mechanizmus metaadat-kéréseket küld az adatforrásnak az adatforrás képességeinek, a táblasémáknak, az adatforrás különböző táblái közötti kapcsolatoknak és egyebeknek a meghatározásához.
- A kapott metaadatok alapján a lekérdezés-összecsukási mechanizmus határozza meg, hogy milyen információkat kell kinyerni az adatforrásból, és milyen átalakításokat kell elvégeznie a Power Query motoron belül. Az utasításokat két másik összetevőnek küldi el, amelyek gondoskodnak az adatok adatforrásból való lekéréséről és szükség esetén a Power Query-motor bejövő adatainak átalakításáról.
- Miután a Power Query belső összetevői megkapták az utasításokat, a Power Query egy adatforrás-lekérdezéssel küld egy kérést az adatforrásnak.
- Az adatforrás megkapja a kérést a Power Querytől, és átadja az adatokat a Power Query motornak.
- Miután az adatok a Power Queryben vannak, a Power Query átalakítási motorja (más néven összefésülő motor) elvégzi azokat az átalakításokat, amelyeket nem lehetett visszahajtani vagy kipakolva az adatforrásba.
- Az előző pontból származó eredmények betöltve lesznek egy célhelyre.
Feljegyzés
Az M-szkriptben használt átalakításoktól és adatforrástól függően a Power Query meghatározza, hogy streameli vagy puffereli-e a bejövő adatokat.
A lekérdezések összecsukásának áttekintése
A lekérdezések összecsukásának célja, hogy a lekérdezések kiértékelésének minél nagyobb részét kicsomagolja vagy leküldje egy olyan adatforrásba, amely ki tudja számítani a lekérdezés átalakítását.
A lekérdezés-összecsukási mechanizmus ezt a célt úgy éri el, hogy az M-szkriptet egy olyan nyelvre fordítja, amelyet az adatforrás értelmezhet és hajthat végre. Ezután leküldi a kiértékelést az adatforrásnak, és elküldi a kiértékelés eredményét a Power Querynek.
Ez a művelet gyakran gyorsabb lekérdezés-végrehajtást biztosít, mint az összes szükséges adat kinyerése az adatforrásból, és a Power Query motorban szükséges összes átalakítás futtatása.
Az adatbeolvasási felület használatakor a Power Query végigvezeti önt azon a folyamaton, amely végső soron lehetővé teszi az adatforráshoz való csatlakozást. Ha így tesz, a Power Query az M nyelven az adatfüggvények eléréseként kategorizált függvények sorozatát használja. Ezek az adott függvények mechanizmusokat és protokollokat használnak az adatforráshoz való csatlakozáshoz egy olyan nyelv használatával, amelyet az adatforrás megért.
A lekérdezésben követendő lépések azonban azok a lépések vagy átalakítások, amelyeket a lekérdezés-összecsukási mechanizmus optimalizálni próbál. Ezután ellenőrzi, hogy ki lehet-e tölteni őket az adatforrásba ahelyett, hogy a Power Query-motor használatával dolgozzák fel őket.
Fontos
Minden adatforrásfüggvény, amely általában egy lekérdezés Forrás lépéseként jelenik meg, az adatforrásban lévő adatokat az anyanyelvén kérdezi le. A lekérdezés-összecsukási mechanizmus az adatforrásfüggvény után a lekérdezésre alkalmazott összes átalakításon használható, így azokat egyetlen adatforrás-lekérdezésre vagy annyi átalakítóra lehet lefordítani és kombinálni, amely ki lehet tölteni az adatforrásba.
A lekérdezés felépítésétől függően a lekérdezés összecsukási mechanizmusának három lehetséges kimenete lehet:
- Teljes lekérdezés-összecsukás: Amikor az összes lekérdezésátalakítás vissza lesz küldve az adatforrásba, és minimális feldolgozás történik a Power Query motoron.
- Részleges lekérdezés-összecsukás: Ha a lekérdezésben csak néhány átalakítás van, és nem az összes, vissza lehet küldeni az adatforrásba. Ebben az esetben az átalakítások csak egy részhalmaza történik az adatforrásban, a többi lekérdezésátalakítás pedig a Power Query motorban történik.
- Nincs összecsukható lekérdezés: Ha a lekérdezés olyan átalakításokat tartalmaz, amelyeket nem lehet lefordítani az adatforrás natív lekérdezési nyelvére, vagy azért, mert az átalakítások nem támogatottak, vagy az összekötő nem támogatja a lekérdezések összecsukását. Ebben az esetben a Power Query lekéri a nyers adatokat az adatforrásból, és a Power Query motor használatával éri el a kívánt kimenetet a szükséges átalakítások Power Query-motor szintjén történő feldolgozásával.
Feljegyzés
A lekérdezés-összecsukási mechanizmus elsősorban strukturált adatforrások, például a Microsoft SQL Server és az OData-hírcsatorna összekötőiben érhető el. Az optimalizálási fázis során előfordulhat, hogy a motor átrendezi a lekérdezés lépéseit.
Ha olyan adatforrást használ, amely több feldolgozási erőforrással rendelkezik, és lekérdezés-összecsukási képességekkel rendelkezik, felgyorsíthatja a lekérdezések betöltési idejét, mivel a feldolgozás az adatforrásban történik, és nem a Power Query motoron.
Kapcsolódó tartalom
A lekérdezés-összecsukási mechanizmus három lehetséges kimenetére vonatkozó részletes példákért tekintse meg a lekérdezés-összecsukási példákat.
Az Alkalmazott lépések panelen található lekérdezés-összecsukási jelzőkkel kapcsolatos információkért lépjen a Lekérdezés összecsukható mutatóira