Zdieľať cez


Postupné posúvanie dotazov v natívnych dotazoch

V Power Query môžete definovať natívny dotaz a spustiť ho v zdroji údajov. V článku Import údajov z databázy pomocou natívneho databázového dotazu sa vysvetľuje, ako tento proces vykonať s viacerými zdrojmi údajov. Pomocou procesu opísaného v tomto článku však váš dotaz nevyužíva postupné posúvanie dotazov z nasledujúcich krokov dotazu.

V tomto článku sa prezentuje alternatívna metóda na vytvorenie natívnych dotazov voči zdroju údajov pomocou funkcie Value.NativeQuery a zachovanie mechanizmu postupného posúvania dotazov aktívneho pre nasledujúce kroky dotazu.

Poznámka

Odporúčame vám prečítať si dokumentáciu k postupnému posúvaniu dotazov a indikátorom postupného posúvania dotazov , aby ste lepšie porozumeli konceptom používaným v tomto článku.

Podporované konektory údajov

Metóda popísaná v nasledujúcich sekciách sa vzťahuje na nasledujúce konektory údajov:

Pripojenie k cieľu zo zdroja údajov

Poznámka

Tento proces predstavíme pomocou konektora SQL Servera a vzorovej databázy AdventureWorks2019. Možnosti v rámci konektora môžu byť rôzne, ale tento článok obsahuje základy toho, ako povoliť možnosti postupného posúvania dotazov v natívnych dotazoch pre podporované konektory.

Pri pripájaní k zdroju údajov je dôležité pripojiť sa k uzlam alebo úrovni, na ktorej chcete vykonať natívny dotaz. V príklade tohto článku je napríklad úroveň databázy na serveri.

Snímka obrazovky dialógového okna nastavení pripojenia pre pripojenie k databáze AdventureWorks2019 v lokálnej inštancii SQL Servera.

Po definovaní nastavení pripojenia a zadaní poverení pre pripojenie sa otvorí navigačné dialógové okno pre zdroj údajov. Dialógové okno navigácie obsahuje všetky dostupné objekty, ku ktorým sa môžete pripojiť.

V tomto zozname je potrebné vybrať objekt, na ktorom sa spustí natívny dotaz (označuje sa aj ako cieľ). V tomto príklade je daným objektom úroveň databázy.

V okne navigátora v doplnku Power Query vyberte a podržte (alebo kliknite pravým tlačidlom myši) uzol databázy v okne navigátora a vyberte možnosť Transformovať údaje . Výberom tejto možnosti sa vytvorí nový dotaz s celkovým zobrazením databázy, čo je cieľ, ktorý potrebujete na spustenie natívneho dotazu.

Snímka obrazovky znázorňujúca výber údajov, na ktoré používateľ v navigátore klikol pravým tlačidlom myši na uzol databázy, pričom je zvýraznená možnosť Transformovať údaje.

Keď sa dotaz dostane do editora Power Query, na table Použité kroky by sa mal zobraziť iba krok Zdroj . Tento krok obsahuje tabuľku so všetkými dostupnými objektmi v databáze, podobne ako boli zobrazené v okne Navigátor.

Snímka obrazovky dotazu iba s zdrojovým krokom.

Použitie funkcie Value.NativeQuery

Cieľom tohto procesu je vykonať nasledujúci kód SQL a použiť ďalšie transformácie pomocou Power Query, ktoré možno postupne posúvať späť na zdroj.

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

Prvým krokom bolo definovanie správneho cieľa, čo je v tomto prípade databáza, v ktorej je spustený kód SQL. Keď má krok správny cieľ, môžete ho vybrať – v tomto prípade Zdroj v časti Použité kroky – a potom výberom tlačidla fx v riadku vzorcov pridať vlastný krok. V tomto príklade nahraďte Source vzorec nasledujúcim vzorcom:

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

Najdôležitejšou zložkou tohto vzorca je použitie voliteľného záznamu pre štvrtý parameter funkcie, ktorý má pole záznamu EnableFolding nastavené na hodnotu true.

Snímka obrazovky nového vzorca vlastného kroku s použitím funkcie Value.NativeQuery a explicitného dotazu SQL.

Poznámka

Ďalšie informácie o funkcii Value.NativeQuery si môžete prečítať v oficiálnej dokumentácii článku.

Po zadaní vzorca sa zobrazí upozornenie, ktoré vyžaduje povolenie spúšťania natívnych dotazov pre konkrétny krok. Vyberte položku Pokračovať, aby sa tento krok vyhodnotil.

Tento príkaz SQL prináša tabuľku iba s tromi riadkami a dvomi stĺpcami.

Snímka obrazovky s výsledkami natívneho dotazu vyhodnoteného v cieľovej databáze.

Testovanie postupného posúvania dotazov

Ak chcete otestovať postupné posúvanie dotazov, môžete skúsiť použiť filter na ktorýkoľvek zo stĺpcov a zistiť, či indikátor postupného posúvania dotazov v časti Použité kroky zobrazuje krok ako postupný. V tomto prípade môžete filtrovať stĺpec DepartmentID tak, aby mal hodnoty, ktoré sa nerovná dvom.

Snímka obrazovky znázorňujúca spôsob filtrovania stĺpca DepartmentID tak, aby mal iba hodnoty, ktoré sa nerovná dvom.

Po pridaní tohto filtra môžete skontrolovať, či indikátory postupného posúvania dotazov stále zobrazujú postupné posúvanie dotazov v tomto novom kroku.

Krok filtra zobrazený ako zbalený späť do zdroja údajov v sekcii použité kroky.

Ak chcete ďalej overiť, aký dotaz sa odosiela do zdroja údajov, môžete vybrať a podržanie (alebo kliknúť pravým tlačidlom myši) na krok Filtrované riadky a vybrať možnosť Zobraziť plán dotazu na kontrolu plánu dotazov pre tento krok.

V zobrazení plánu dotazu uvidíte uzol s názvom Value.NativeQuery, ktorý obsahuje hypertextové prepojenie Zobraziť podrobnosti . Pomocou tohto hypertextového prepojenia môžete zobraziť dotaz odosielaný do databázy SQL Servera.

Natívny dotaz je omotaný okolo iného príkazu SELECT, čím sa vytvorí poddotaz pôvodného príkazu. Power Query robí maximum pre vytvorenie najoptimálnejšieho dotazu vzhľadom na použité transformácie a zadaný natívny dotaz.

Snímka obrazovky plánu dotazov pre krok Filtrované riadky.

Prepitné

V prípade scenárov, v ktorých sa vyskytnú chyby, pretože postupné posúvanie dotazov nebolo možné, odporúčame skúsiť overiť kroky ako poddotaz pôvodného natívneho dotazu a skontrolovať, či neexistuje syntax alebo kontextové konflikty.