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:
- Amazon Redshift
- Dataverse (pri použití rozšíreného výpočtu)
- Google BigQuery
- PostgreSQL
- SAP HANA
- Snehová vločka
- SQL Server
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.
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.
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.
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.
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.
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.
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.
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.
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.