Lekérdezés összecsukása natív lekérdezéseken
A Power Queryben meghatározhat egy natív lekérdezést, és futtathatja 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. Az ebben a cikkben ismertetett folyamat használatával azonban a lekérdezés nem használja ki 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:
- Amazon Redshift
- Dataverse (továbbfejlesztett számítás használatakor)
- Google BigQuery
- PostgreSQL
- SAP HANA
- Snowflake
- SQL Server
Csatlakozás a célhoz 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és-összecsukási képességeket 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 jelen cikkben szereplő példában ez a csomópont a kiszolgálón belüli adatbázisszint.
Miután meghatározta a kapcsolat beállításait, és megadja a kapcsolat hitelesítő adatait, megnyílik az adatforrás navigációs párbeszédpanelje. A navigációs párbeszédpanel tartalmazza 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 jelölje ki és tartsa lenyomva az adatbáziscsomópontot (vagy kattintson rá a jobb gombbal), é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.
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.
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 negyedik paraméteréhez, amelynél az EnableFolding rekordmező értéke igaz.
Feljegyzés
A Value.NativeQuery függvényről a hivatalos dokumentációs cikkben olvashat bővebben.
A képlet megadása után megjelenik egy figyelmeztetés, amely megköveteli a natív lekérdezések futtatását az adott lépéshez. Válassza a folytatást a kiértékelendő lépéshez.
Ez az SQL-utasítás csak három sorból és két oszlopból álló táblát eredményez.
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 úgy, hogy azok értéke ne legyen egyenlő 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 adatforrásnak küldött lekérdezés további ellenőrzéséhez jelölje ki és tartsa lenyomva a Szűrt sorok lépést (vagy kattintson rá a jobb gombbal), majd válassza a Lekérdezésterv megtekintése lehetőséget az adott lépés lekérdezéstervének ellenőrzéséhez.
A lekérdezésterv nézetben láthatja, hogy egy Value.NativeQuery nevű csomópont, amely nézet részletei hivatkozással rendelkezik. Ezt a hivatkozást választva megtekintheti az SQL Server-adatbázisnak küldött pontos lekérdezést.
A natív lekérdezés egy másik SELECT utasítás köré van burkolva, hogy létrehozhasson egy alqueryt az eredetiből. 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.
Tipp.
Olyan forgatókönyvek esetén, ahol a lekérdezések összecsukása nem lehetséges, javasoljuk, hogy ellenőrizze a lépéseket az eredeti natív lekérdezés allekérdezéseként, és ellenőrizze, hogy vannak-e szintaxis- vagy környezetütközések.