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, a képernyő jobb oldalán láthatja, 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 alkalmazott lépések és az adatok előnézeti nézetének képe.

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 számú sort tartson a táblázat tetejétől.

Ez a lépésnevek halmaza felhasználóbarát módon jeleníti meg a Power Query által létrehozott M-szkriptet. 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.

Kép a teljes M szkripttel és az alkalmazott lépések megfelelő nevével.

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 az Első 20 sorra módosítja, ez a módosítás automatikusan frissül a szkriptnézetben.

Az alkalmazott lépésnévvel rendelkező kép a 20. sorra módosult, amely szintén frissíti az M szkriptet.

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, az M nyelvet 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.

Lekérdezés-kiértékelési diagram áttekintésként.

  1. 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.
  2. A Power Query meghatározza, hogy milyen adatokat kell kinyerni az adatforrásból, és kérést küld az adatforrásnak.
  3. Az adatforrás úgy válaszol a Power Query kérésére, hogy a kért adatokat átadja a Power Querynek.
  4. 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.
  5. 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.

Az optimalizálási folyamatot bemutató lekérdezés-kiértékelési diagram.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Az adatforrás megkapja a kérést a Power Querytől, és átadja az adatokat a Power Query motornak.
  6. 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.
  7. 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 sokkal 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.

Következő lépések

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