Poznámka
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete sa skúsiť prihlásiť alebo zmeniť adresáre.
Na prístup k tejto stránke sa vyžaduje oprávnenie. Môžete skúsiť zmeniť adresáre.
V Power Query môžete definovať natívny dotaz a spustiť ho na vašom dátovom zdroji. Článok Import dát z databázy pomocou natívneho databázového dotazu vysvetľuje, ako tento proces vykonať s viacerými zdrojmi dát. Ale použitím procesu opísaného v tom článku váš dotaz nevyužíva žiadne skladanie dotazov z nasledujúcich krokov dotazu.
Tento článok predstavuje alternatívnu metódu, ako vytvárať natívne dotazy voči vášmu zdrojovému zdroju pomocou funkcie Value.NativeQuery a udržiavať mechanizmus skladania dotazov aktívny pre ďalšie kroky vášho dotazu.
Nota
Odporúčame vám prečítať si dokumentáciu o query folding a indikátoroch query foldingu , aby ste lepšie pochopili koncepty použité v tomto článku.
Podporované dátové konektory
Metóda opísaná v nasledujúcich sekciách sa vzťahuje na nasledujúce dátové konektory:
- Červený posun Amazonu
- Dataverse(pri použití vylepšeného výpočtu)
- Google BigQuery
- PostgreSQL
- SAP HANA
- Snehová vločka
- SQL Server
Pripojiť sa k cieľu z dátového zdroja
Nota
Na prezentáciu tohto procesu tento článok používa SQL Server konektor a ukážkovú databázu AdventureWorks2019. Skúsenosti sa môžu líšiť od konektora ku konektoru, ale tento článok ukazuje základy, ako umožniť schopnosť query folding oproti natívnym dotazom pre podporované konektory.
Pri pripájaní na zdroj dát je dôležité, aby ste sa pripojili k uzlu alebo úrovni, kde chcete vykonať natívny dotaz. Pre príklad v tomto článku je tento uzol na úrovni databázy vo vnútri servera.
Po definovaní nastavení pripojenia a zadáte prihlasovacie údaje pre vaše pripojenie sa otvorí navigačné okno pre váš dátový zdroj. Navigačné okno obsahuje všetky dostupné objekty, ku ktorým sa môžete pripojiť.
Z tohto zoznamu musíte vybrať objekt, v ktorom sa spustí natívny dotaz (známy aj ako cieľ). V tomto príklade je tým objektom úroveň databázy.
V navigačnom okne Power Query vyberte a podržte (alebo kliknite pravým tlačidlom) na databázový uzol v navigačnom okne a vyberte možnosť Transformovať dáta . Výber tejto možnosti vytvorí nový dotaz na celkový pohľad vašej databázy, ktorý je cieľom, ktorý potrebujete na spustenie natívneho dotazu.
Keď váš dotaz skončí v editore Power Query, v paneli Aplikované kroky by sa mal zobraziť iba krok Zdrojový kód . Tento krok obsahuje tabuľku so všetkými dostupnými objektmi vo vašej databáze, podobne ako boli zobrazené v okne Navigátora.
Použite funkciu Value.NativeQuery
Cieľom tohto procesu je vykonať nasledujúci SQL kód a aplikovať ďalšie transformácie pomocou Power Query, ktoré je možné vrátiť späť do zdroja.
SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'
Prvým krokom bolo definovať správny cieľ, ktorým je v tomto prípade databáza, v ktorej sa spúšťa SQL kód.
Keď má krok správny cieľ, môžete tento krok vybrať – v tomto prípade Zdroj v aplikovaných krokoch – a potom zvoliť tlačidlo fx v lište vzorcov, aby ste pridali vlastný krok. V tomto príklade nahradíme 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 súčasťou tohto vzorca je použitie voliteľného záznamu pre štvrtý parameter funkcie, ktorá má pole záznamu EnableFolding nastavené na true.
Nota
Viac o funkcii Value.NativeQuery si môžete prečítať v oficiálnom dokumentačnom článku.
Po zadaní vzorca sa zobrazí varovanie, ktoré vyžaduje, aby ste povolili natívne dotazy pre váš konkrétny krok. Vyberte pokračovať, aby sa tento krok vyhodnotil.
Tento SQL príkaz dáva tabuľku len s tromi riadkami a dvoma stĺpcami.
Skladanie testovacích dotazov
Na testovanie query folding vášho dotazu môžete skúsiť aplikovať filter na ktorýkoľvek stĺpec a zistiť, či indikátor query folding v sekcii aplikovaných krokov ukazuje krok ako zložený. V tomto prípade môžete stĺpec DepartmentID filtrovať tak, aby hodnoty neboli rovné dvom.
Po pridaní tohto filtra môžete skontrolovať, či indikátory query folding stále ukazujú, že query folding prebieha v tomto novom kroku.
Na ďalšie overenie, aký dotaz sa posiela do dátového zdroja, môžete vybrať a podržať (alebo kliknúť pravým tlačidlom) na krok Filtrované riadky a zvoliť možnosť Zobraziť plán dotazu , aby ste skontrolovali plán dotazu pre daný krok.
V zobrazení plánu dotazu môžete vidieť uzol s názvom Value.NativeQuery, ktorý má hypertextový odkaz View Details . Môžete zvoliť tento hypertextový odkaz, aby ste si pozreli presný dotaz, ktorý sa posiela do databázy SQL Server.
Natívny dotaz je obalený okolo ďalšieho príkazu SELECT, čím sa vytvorí poddotaz pôvodného dotazu. Power Query sa snaží vytvoriť čo najoptimálnejší dotaz vzhľadom na použité transformácie a natívny dotaz.
Prepitné
V situáciách, kde sa objavujú chyby, pretože query folding nebol možný, odporúčame skúsiť overiť svoje kroky ako poddotaz pôvodného natívneho dotazu, aby ste zistili, či neexistujú nejaké konflikty v syntaxi alebo kontexte.