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


Lekérdezés összecsukása natív lekérdezéseken

A Power Queryben meghatározhat egy natív lekérdezést, és futtathatja azt az adatforráson. Az adatok importálása adatbázisból natív adatbázis-lekérdezéssel című cikk bemutatja, hogyan hajthatja végre ezt a folyamatot több adatforrással. A cikkben ismertetett folyamat használatával azonban a lekérdezés nem fogja kihasználni a lekérdezés további lépéseiből származó összecsukható lekérdezések előnyeit.

Ez a cikk egy alternatív módszert mutat be, amellyel natív lekérdezéseket hozhat létre az adatforráson a Value.NativeQuery függvénnyel, és aktív marad a lekérdezés összecsukási mechanizmusa a lekérdezés későbbi lépéseihez.

Feljegyzés

Javasoljuk, hogy olvassa el a lekérdezés-összecsukási dokumentációt és a lekérdezés-összecsukási mutatókat, hogy jobban megértse a cikkben használt fogalmakat.

Támogatott adatösszekötők

A következő szakaszokban ismertetett módszer a következő adatösszekötőkre vonatkozik:

Csatlakozás célként adatforrásból

Feljegyzés

A folyamat bemutatásához ez a cikk az SQL Server-összekötőt és az AdventureWorks2019 mintaadatbázist használja. A felhasználói élmény összekötőnként eltérő lehet, de ez a cikk bemutatja, hogyan engedélyezheti a lekérdezések összecsukási képességeit a támogatott összekötők natív lekérdezéseihez.

Az adatforráshoz való csatlakozáskor fontos, hogy a natív lekérdezés végrehajtásához használt csomóponthoz vagy szinthez csatlakozzon. A cikkben szereplő példában ez a csomópont lesz az adatbázis szintje a kiszolgálón belül.

Csatlakozás ion settings dialog for the connection to the AdventureWorks2019 database on a local instance of SQL Server.

A kapcsolati beállítások megadása és a kapcsolat hitelesítő adatainak megadása után a rendszer az adatforrás navigációs párbeszédpanelére kerül. Ebben a párbeszédpanelen láthatja az összes elérhető objektumot, amelyhez csatlakozhat.

Ebben a listában ki kell választania azt az objektumot, amelyben a natív lekérdezés fut (más néven cél). Ebben a példában ez az objektum az adatbázis szintje.

A Power Query kezelőablakában kattintson a jobb gombbal az adatbáziscsomópontra a kezelőablakban, és válassza az Adatok átalakítása lehetőséget. Ha ezt a lehetőséget választja, új lekérdezést hoz létre az adatbázis teljes nézetéről, amely a natív lekérdezés futtatásához szükséges cél.

Az a kép, amelyen a felhasználó a jobb gombbal az adatbáziscsomópontra kattintott a kezelőben, az Adatok átalakítása menüelem kiemelésével.

Ha a lekérdezés a Power Query-szerkesztőbe kerül, csak a Forrás lépés jelenik meg az Alkalmazott lépések panelen. Ez a lépés tartalmaz egy táblát, amely tartalmazza az adatbázis összes elérhető objektumát, hasonlóan ahhoz, ahogyan azok a Kezelő ablakban voltak megjelenítve.

Lekérdezés csak a forráslépéssel.

A Value.NativeQuery függvény használata

Ennek a folyamatnak a célja a következő SQL-kód végrehajtása, és további átalakítások alkalmazása a Power Queryvel, amelyek visszahajthatók a forrásra.

SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'

Az első lépés a megfelelő cél meghatározása volt, amely ebben az esetben az az adatbázis, ahol az SQL-kód fut. Ha egy lépés rendelkezik a megfelelő célval, kiválaszthatja ezt a lépést – ebben az esetben a Forrás az alkalmazott lépésekben –, majd a szerkesztőlécen az fx gombot választva hozzáadhat egy egyéni lépést. Ebben a példában cserélje le a Source képletet a következő képletre:

Value.NativeQuery(Source, "SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'  ", null, [EnableFolding = true])

A képlet legfontosabb összetevője az opcionális rekord használata annak a függvénynek a következő paraméteréhez, amelynél az EnableFolding rekordmező értéke igaz.

Új egyéni lépésképlet a Value.NativeQuery függvény és az explicit SQL-lekérdezés használatával.

Feljegyzés

A Value.NativeQuery függvényről a hivatalos dokumentációs cikkben olvashat bővebben.

Miután megadta a képletet, megjelenik egy figyelmeztetés, amely megköveteli a natív lekérdezések futtatását az adott lépéshez. A folytatás gombra kattintva kiértékelheti ezt a lépést.

Ez az SQL-utasítás csak három sorból és két oszlopból álló táblát eredményez.

A céladatbázison kiértékelt natív lekérdezés.

Lekérdezés összecsukásának tesztelése

A lekérdezés lekérdezés-összecsukásának teszteléséhez megpróbálhat szűrőt alkalmazni bármelyik oszlopra, és ellenőrizheti, hogy az alkalmazott lépések szakaszában látható-e a lekérdezés összecsukható jelzője. Ebben az esetben szűrheti a DepartmentID oszlopot, hogy két érték ne legyen egyenlő.

A DepartmentID oszlop szűrése, hogy csak olyan értékek legyenek, amelyek nem egyenlők kettővel.

A szűrő hozzáadása után ellenőrizheti, hogy a lekérdezés összecsukási mutatói továbbra is azt mutatják-e, hogy a lekérdezés összecsukása az új lépésben történik-e.

Az alkalmazott lépések szakaszban az adatforráshoz visszahajtva megjelenített szűrőlépés.

Az adatforrásnak küldött lekérdezés további ellenőrzéséhez kattintson a jobb gombbal a Szűrt sorok lépésre, és válassza ki azt a beállítást, amely beolvassa a Lekérdezésterv megtekintése lehetőséget az adott lépés lekérdezési tervének ellenőrzéséhez.

A lekérdezésterv nézetben láthatja, hogy egy Value.NativeQuery nevű csomópont a képernyő bal oldalán, amely egy hivatkozásszöveggel rendelkezik, amely beolvassa a Nézet részleteit. Erre a hivatkozásszövegre kattintva megtekintheti az SQL Server-adatbázisnak küldött pontos lekérdezést.

A natív lekérdezés egy másik Standard kiadás LECT utasítás köré van burkolva az eredeti rész lekérdezésének létrehozásához. A Power Query a lehető legoptimálisabb lekérdezést hozza létre a használt átalakítások és a natív lekérdezések alapján.

A Szűrt sorok lépés lekérdezési terve.

Tipp.

Azokban az esetekben, amikor hibák lépnek fel, mert a lekérdezések összecsukása nem lehetséges, javasoljuk, hogy próbálja meg ellenőrizni a lépéseket az eredeti natív lekérdezés allekérdezéseként, hogy ellenőrizze, vannak-e szintaxis- vagy környezeti ütközések.