Zdieľať cez


Príklady postupného posúvania dotazov

Tento článok obsahuje niekoľko príkladov scenárov pre každý z troch možných výsledkov pre postupné posúvanie dotazov. Obsahuje tiež niekoľko návrhov, ako z mechanizmu postupného posúvania dotazov získať maximum a aký vplyv môže mať vo vašich dotazoch.

Scenár

Predstavte si scenár, v ktorom ste pomocou databázy Wide World Importers pre databázu Azure Synapse Analytics SQL poverení vytvorením dotazu v doplnku Power Query, ktorý sa pripojí k fact_Sale tabuľke a načíta posledných 10 predajov len s nasledujúcimi poľami:

  • Predajný kľúč
  • Kľúč zákazníka
  • Kľúč dátumu faktúry
  • Description
  • Množstvo

Poznámka

Na účely demonštrácie tento článok používa databázu uvedenú v kurze o načítavaní databázy Wide World Importers do služby Azure Synapse Analytics. Hlavným rozdielom v tomto článku je, že fact_Sale tabuľka obsahuje údaje iba za rok 2000 s celkovým počtom 3 644 356 riadkov.

Aj keď výsledky sa nemusia presne zhodovať s výsledkami, ktoré získate po kurze z dokumentácie služby Azure Synapse Analytics, cieľom tohto článku je predviesť základné koncepty a vplyv, ktorý môže mať postupné posúvanie dotazov vo vašich dotazoch.

Ukážková výstupná tabuľka odvodená z tabuľky fact_Sale databázy Wide World Importers Azure Synapse Analytics.

V tomto článku sa prezentujú tri spôsoby, ako dosiahnuť rovnaký výstup s rôznymi úrovňami postupného posúvania dotazov:

  • Žiadne postupné posúvanie dotazov
  • Postupné postupné posúvanie čiastočných dotazov
  • Úplné postupné posúvanie dotazov

Žiadny príklad postupného posúvania dotazov

Dôležité

Dotazy, ktoré používajú výlučne neštruktúrované zdroje údajov alebo ktoré nemajú výpočtové zariadenie, ako napríklad CSV alebo excelové súbory, nemajú možnosti postupného posúvania dotazov. To znamená, že Power Query vyhodnotí všetky požadované transformácie údajov pomocou nástroja Power Query.

Po pripojení k databáze a prechode k tabuľke fact_Sale vyberte transformáciu Ponechať spodné riadky na spodnej strane skupiny Zredukovať riadky na karte Domov .

Transformácia spodných riadkov sa nachádza vnútri skupiny Zredukovať riadky na karte Domov.

Po výbere tejto transformácie sa zobrazí nové dialógové okno. V tomto novom dialógovom okne môžete zadať počet riadkov, ktoré si chcete ponechať. Pre tento prípad zadajte hodnotu 10 a potom vyberte položku OK.

Zadanie hodnoty 10 v dialógovom okne Ponechať spodné riadky.

Prepitné

V tomto prípade vykonanie tejto operácie vráti výsledok posledných 10 predajov. Vo väčšine prípadov odporúčame zadať explicitnejšiu logiku, ktorá definuje, ktoré riadky sa majú zvážiť ako posledné použitím operácie zoradenia v tabuľke.

Potom vyberte transformáciu Vybrať stĺpce , ktorá sa nachádza v skupine Spravovať stĺpce na karte Domov . Potom môžete vybrať stĺpce, ktoré chcete uchovať v tabuľke, a zvyšok odstrániť.

Výber transformácie Vybrať stĺpce pre príklad bez skladania dotazov.

Nakoniec v dialógovom okne Vybrať stĺpce vyberte stĺpce Sale Key, , Invoice Date KeyCustomer Key, Descriptiona Quantity a potom vyberte položku OK.

Výberom stĺpcov Predajný kľúč, Kľúč zákazníka, Kľúč dátumu faktúry, Popis a Množstvo pre príklad skladania žiadnych dotazov.

Nasledujúca ukážka kódu je úplný M skript pre dotaz, ktorý ste vytvorili:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Kept bottom rows" = Table.LastN(Navigation, 10),
  #"Choose columns" = Table.SelectColumns(#"Kept bottom rows", {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"})
in
  #"Choose columns""

Žiadne postupné posúvanie dotazov: Informácie o vyhodnocovaní dotazu

V časti Použité kroky v editore Power Query si všimnete, že indikátory postupného posúvania dotazov pre položky Zachované spodné riadky a Vybrať stĺpce sú označené ako kroky, ktoré budú vyhodnotené mimo zdroja údajov, alebo inými slovami pomocou nástroja Power Query.

Tabla Použité kroky pre dotaz s indikátormi postupného posúvania dotazov zobrazuje kroky Skladané spodné riadky a Odstránené ostatné stĺpce.

Môžete kliknúť pravým tlačidlom myši na posledný krok dotazu, ten s názvom Vybrať stĺpce, a vybrať možnosť na čítanie položky Zobraziť plán dotazu. Cieľom plánu dotazov je poskytnúť vám podrobné zobrazenie spôsobu spustenia dotazu. Ďalšie informácie o tejto funkcii nájdete v téme Plán dotazov.

Plán dotazu pre vytvorený dotaz s viacerými uzlami, z ktorých dva sú v obdĺžniku predstavujúci uzly, ktoré bude vyhodnotené motorom Power Query.

Každé pole na predchádzajúcom obrázku sa nazýva uzol. Uzol predstavuje rozpis operácií na splnenie tohto dotazu. Uzly, ktoré predstavujú zdroje údajov, ako je napríklad SQL Server v príklade uvedenom vyššie a Value.NativeQuery uzol, predstavujú časť dotazu, ktorá je vyťažená na zdroj údajov. Ostatné uzly, v tomto prípade Table.LastN a Table.SelectColumns zvýraznené v obdĺžniku na predchádzajúcom obrázku, sú hodnotené motorom Power Query. Tieto dva uzly predstavujú dve pridané transformácie Zachované spodné riadky a Vybrať stĺpce. Zvyšok uzlov predstavuje operácie, ktoré sa vykonávajú na úrovni zdroja údajov.

Ak chcete zobraziť presnú požiadavku odoslanú do vášho zdroja údajov, v Value.NativeQuery uzle vyberte položku Zobraziť podrobnosti.

Príkaz SQL nájdený v službe Value.NativeQuery, ktorý predstavuje požiadavku všetkých polí a záznamov z tabuľky fact_Sale v databáze.

Táto požiadavka zdroja údajov je v natívnom jazyku vášho zdroja údajov. V tomto prípade je týmto jazykom SQL a tento príkaz predstavuje požiadavku pre všetky riadky a polia z fact_Sale tabuľky.

Konzultácia s touto požiadavkou zdroja údajov vám môže pomôcť lepšie pochopiť príbeh, ktorý sa plán dotazu snaží vyjadriť:

  • Sql.Database: Tento uzol predstavuje prístup k zdroju údajov. Pripojenie do databázy a odosiela žiadosti o metaúdaje, aby pochopili jej možnosti.
  • Value.NativeQuery: Predstavuje požiadavku, ktorú vygeneroval doplnok Power Query na splnenie dotazu. Power Query odošle žiadosti o údaje do zdroja údajov v natívnom príkaze SQL. V tomto prípade to predstavuje všetky záznamy a polia (stĺpce fact_Sale ) z tabuľky. V tomto scenári je tento prípad nežiaduci, pretože tabuľka obsahuje milióny riadkov a úrok je len z posledných 10.
  • Table.LastN: Keď Power Query prijme všetky záznamy z fact_Sale tabuľky, použije nástroj Power Query na filtrovanie tabuľky a uchovať iba posledných 10 riadkov.
  • Table.SelectColumns: Power Query použije výstup Table.LastN uzla a použije novú transformáciu s názvom Table.SelectColumns, ktorá vyberie konkrétne stĺpce, ktoré chcete mať v tabuľke.

Na jej vyhodnotenie musel tento dotaz stiahnuť všetky riadky a polia z fact_Sale tabuľky. Spracovanie tohto dotazu v štandardnej inštancii tokov údajov služby Power BI trvalo v priemere 6 minút a 1 sekundu (čo zodpovedá hodnoteniu a načítavaniu údajov do tokov údajov).

Príklad postupného posúvania čiastočných dotazov

Po pripojení k databáze a prechode k tabuľke fact_Sale začnite výberom stĺpcov, ktoré chcete mať v tabuľke. Vyberte transformáciu Vybrať stĺpce , ktorá sa nachádza v skupine Spravovať stĺpce na karte Domov . Táto transformácia vám pomôže explicitne vybrať stĺpce, ktoré chcete uchovať v tabuľke, a odstrániť ostatné.

Výber transformácie Vybrať stĺpce pre príklad čiastočného skladania dotazov.

V dialógovom okne Vybrať stĺpce vyberte stĺpce Sale Key, , Customer KeyInvoice Date Key, Descriptiona Quantity a potom vyberte položku OK.

Výberom stĺpcov Predajný kľúč, Kľúč zákazníka, Kľúč dátumu faktúry, Popis a Množstvo pre príklad postupného posúvania čiastočných dotazov.

Teraz vytvoríte logiku, ktorá zoradí tabuľku tak, aby mala v dolnej časti tabuľky posledný predaj. Sale Key Vyberte stĺpec, ktorý je primárnym kľúčom a prírastkovou sekvenciou alebo indexom tabuľky. Zoraďte tabuľku iba pomocou tohto poľa vo vzostupnom poradí z kontextovej ponuky pre stĺpec.

Zoraďte pole Predajný kľúč tabuľky vo vzostupnom poradí pomocou kontextovej ponuky poľa automatického filtrovania.

Potom vyberte kontextovú ponuku tabuľky a vyberte transformáciu Ponechať spodné riadky .

Vyberte možnosť Ponechať spodné riadky v kontextovej ponuke tabuľky.

Do poľa Ponechať v spodných riadkoch zadajte hodnotu 10 a potom vyberte položku OK.

Dialógové okno Zachovať spodné riadky s hodnotou 10 zadanou ako vstupnou hodnotou, aby sa udržalo iba desať spodných riadkov tabuľky.

Nasledujúca ukážka kódu je úplný M skript pre dotaz, ktorý ste vytvorili:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
  #"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Ascending}}),
  #"Kept bottom rows" = Table.LastN(#"Sorted rows", 10)
in
  #"Kept bottom rows"

Príklad postupného posúvania dotazov: Informácie o vyhodnocovaní dotazu

Po kontrole tably Použité kroky si všimnete, že indikátory postupného posúvania dotazov ukazujú, Kept bottom rowsže posledná pridaná transformácia je označená ako krok, ktorý sa bude vyhodnocovať mimo zdroja údajov, alebo inými slovami pomocou nástroja Power Query.

Tabla Použité kroky pre dotaz s indikátormi postupného posúvania dotazov ukazuje, že udržiavané spodné riadky sú označené ako krok, ktorý sa bude vyhodnocovať mimo zdroja údajov.

Môžete kliknúť pravým tlačidlom myši na posledný krok dotazu, názov Kept bottom rowsdotazu a vybrať možnosť Plán dotazu, aby ste lepšie porozumeli vyhodnoteniu dotazu.

Plán dotazu znázorňujúci viaceré uzly, kde uzol Table.LastN zobrazený vo vnútri obdĺžnika je uzol, ktorý bude vyhodnotený motorom Power Query, a nie zdrojom údajov.

Každé pole na predchádzajúcom obrázku sa nazýva uzol. Uzol predstavuje každý proces, ktorý sa musí vykonať (zľava doprava), aby sa váš dotaz mohol vyhodnotiť. Niektoré z týchto uzlov možno vyhodnotiť vo vašom zdroji údajov, zatiaľ čo iné, ako napríklad uzol pre Table.LastN, ktorý predstavuje krok Zachované spodné riadky , sa vyhodnocujú pomocou nástroja Power Query.

Ak chcete zobraziť presnú požiadavku odoslanú do vášho zdroja údajov, v Value.NativeQuery uzle vyberte položku Zobraziť podrobnosti.

Príkaz SQL v rámci funkcie Value.NativeQuery predstavujúcej požiadavku pre všetky záznamy, pričom iba požadované polia z tabuľky fact_Sales v databáze zoradenej vzostupne podľa poľa Predajný kľúč.

Táto požiadavka je v natívnom jazyku vášho zdroja údajov. V tomto prípade je jazykom SQL a tento príkaz predstavuje požiadavku pre všetky riadky, pričom sa nachádzajú iba požadované polia z fact_Sale tabuľky zoradené podľa Sale Key poľa.

Konzultácia s touto požiadavkou zdroja údajov vám môže pomôcť lepšie pochopiť príbeh, ktorý sa celý plán dotazu snaží vyjadriť. Poradie uzlov je sekvenčný proces, ktorý sa začína vyžiadaním údajov z vášho zdroja údajov:

  • Sql.Database: Pripojenie do databázy a odosiela žiadosti o metaúdaje, aby pochopili jej možnosti.
  • Value.NativeQuery: Predstavuje požiadavku, ktorú vygeneroval doplnok Power Query na splnenie dotazu. Power Query odošle žiadosti o údaje do zdroja údajov v natívnom príkaze SQL. V tomto prípade predstavujú všetky záznamy, pričom iba požadované polia z fact_Sale tabuľky v databáze sú zoradené vzostupne podľa Sales Key poľa.
  • Table.LastN: Keď Power Query prijme všetky záznamy z fact_Sale tabuľky, použije nástroj Power Query na filtrovanie tabuľky a uchovať iba posledných 10 riadkov.

Na jej vyhodnocovanie musel tento dotaz stiahnuť všetky riadky a len požadované polia z fact_Sale tabuľky. Spracovanie v štandardnej inštancii tokov údajov služby Power BI trvalo v priemere 3 minúty a 4 sekundy (čo zodpovedá hodnoteniu a načítavaniu údajov do tokov údajov).

Príklad úplného postupného posúvania dotazov

Po pripojení k databáze a prechode k tabuľke fact_Sale začnite výberom stĺpcov, ktoré chcete uchovať v tabuľke. Vyberte transformáciu Vybrať stĺpce , ktorá sa nachádza v skupine Spravovať stĺpce na karte Domov . Táto transformácia vám pomôže explicitne vybrať stĺpce, ktoré chcete uchovať v tabuľke, a odstrániť ostatné.

Výberom transformácie Vybrať stĺpce pre príklad úplného skladania dotazov.

V časti Vybrať stĺpce vyberte stĺpce Sale Key, Customer Key, Invoice Date Key, Descriptiona Quantity a potom vyberte položku OK.

Vyberiete stĺpce Predajný kľúč, Kľúč zákazníka, Kľúč dátumu faktúry, Popis a Množstvo pre príklad úplného skladania dotazov.

Teraz vytvoríte logiku, ktorá zoradí tabuľku tak, aby sa posledný predaj nachádzal v hornej časti tabuľky. Sale Key Vyberte stĺpec, ktorý je primárnym kľúčom a prírastkovou sekvenciou alebo indexom tabuľky. Zoraďte tabuľku iba pomocou tohto poľa v zostupnom poradí z kontextovej ponuky pre stĺpec.

Zoraďte pole Predajný kľúč tabuľky v zostupnom poradí pomocou kontextovej ponuky.

Potom vyberte kontextovú ponuku tabuľky a vyberte transformáciu Ponechať najvrchnejšie riadky .

Možnosť najvrchnejších riadkov sa nachádza v kontextovej ponuke tabuľky.

Do poľa Ponechať v najvrchnejších riadkoch zadajte hodnotu 10 a potom vyberte položku OK.

Dialógové okno Najvrchnejšie riadky s hodnotou desiatich zadanými ako vstupnou hodnotou, ktorá zachová iba desať prvých riadkov tabuľky.

Nasledujúca ukážka kódu je úplný M skript pre dotaz, ktorý ste vytvorili:

let
  Source = Sql.Database(ServerName, DatabaseName),
  Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
  #"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
  #"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Descending}}),
  #"Kept top rows" = Table.FirstN(#"Sorted rows", 10)
in
  #"Kept top rows"

Príklad úplného postupného posúvania dotazov: Informácie o vyhodnocovaní dotazu

Pri kontrole tably použité kroky si všimnete, že indikátory postupného posúvania dotazov zobrazujú, že pridané transformácie, Vybrať stĺpce, Zoradené riadky a Stále najvrchnejšie riadky sú označené ako kroky, ktoré sa vyhodnotia v zdroji údajov.

Všetky kroky dotazu obsahujú ikonu, ktorá ich možno postupne posúvať späť do zdroja údajov.

Môžete kliknúť pravým tlačidlom myši na posledný krok dotazu, jeden s názvom Udržiavané najvrchnejšie riadky, a vybrať možnosť na čítanie plánu dotazu.

Príkaz SQL nájdený v tabuľke Value.NativeQuery, ktorá predstavuje požiadavku z prvých desiatich záznamov tabuľky fact_Sale zoradených pomocou poľa Predajný kľúč a s iba poľami Predajný kľúč, Kľúč zákazníka, Kľúč dátumu faktúry, Popis a Množstvo.

Táto požiadavka je v natívnom jazyku vášho zdroja údajov. V tomto prípade je týmto jazykom SQL a tento príkaz predstavuje požiadavku pre všetky riadky a polia z fact_Sale tabuľky.

Konzultácia s týmto dotazom zdroja údajov vám môže pomôcť lepšie pochopiť príbeh, ktorý sa celý plán dotazu snaží vyjadriť:

  • Sql.Database: Pripojenie do databázy a odosiela žiadosti o metaúdaje, aby pochopili jej možnosti.
  • Value.NativeQuery: Predstavuje požiadavku, ktorú vygeneroval doplnok Power Query na splnenie dotazu. Power Query odošle žiadosti o údaje do zdroja údajov v natívnom príkaze SQL. V tomto prípade to predstavuje požiadavku iba pre prvých 10 záznamov fact_Sale tabuľky, pričom len požadované polia budú po zoradení v zostupnom poradí pomocou Sale Key daného poľa.

Poznámka

Hoci neexistuje žiadna klauzula, ktorá sa dá použiť na výber spodných riadkov tabuľky v jazyku T-SQL, existuje klauzula TOP, ktorá načíta najvrchnejšie riadky tabuľky.

Na vyhodnotenie tohto dotazu sa stiahne iba 10 riadkov, pričom sa nachádzajú len polia, ktoré ste požadovali fact_Sale z tabuľky. Spracovanie tohto dotazu v štandardnej inštancii tokov údajov služby Power BI trvalo v priemere 31 sekúnd (čo zodpovedá hodnoteniu a načítavaniu údajov do tokov údajov).

Porovnanie výkonu

Ak chcete lepšie porozumieť vplyvu, ktorý má postupné posúvanie dotazov v týchto dotazoch, môžete obnoviť dotazy, zaznamenať čas potrebný na ich úplné obnovenie a porovnať ich. Pre jednoduchosť tento článok poskytuje priemerné časovanie obnovenia zachytené pomocou mechaniky obnovenia tokov údajov služby Power BI pri pripojení k špecializovanému prostrediu Azure Synapse Analytics s dw2000c ako úrovňou služby.

Čas obnovenia každého dotazu bol nasledujúci:

Príklad Označenie Čas v sekundách
Žiadne postupné posúvanie dotazov None 361
Postupné postupné posúvanie čiastočných dotazov Čiastočné 184
Úplné postupné posúvanie dotazov Úplný 31

Graf, ktorý porovnáva čas obnovenia žiadneho postupného dotazu s 361 sekundami, čiastočné skladanie dotazov so 184 sekundami a úplne zbalený dotaz s 31 sekundami.

Často sa stáva, že dotaz, ktorý úplne preloží späť do zdroja údajov, prekonáva podobné dotazy, ktoré sa úplne nezbalia späť do zdroja údajov. Mohlo by to mať mnoho dôvodov, prečo je to tak. Od zložitosti transformácií vykonávaných dotazom až po optimalizáciu dotazov implementované v zdroji údajov, ako sú napríklad indexy, vyhradené výpočtové zdroje a sieťové zdroje. Napriek tomu existujú dva konkrétne kľúčové procesy, ktoré sa postupné posúvanie dotazov pokúšajú použiť na minimalizovanie vplyvu, ktorý majú oba tieto procesy so službou Power Query:

  • Prenášané údaje
  • Transformácie vykonané nástrojom Power Query

Nasledujúce časti vysvetľujú, aké vplyv majú tieto dva procesy v predtým spomínaných dotazoch.

Prenášané údaje

Po spustení dotazu sa v prvom postupe pokúša načítať údaje zo zdroja údajov. Údaje načítania zo zdroja údajov sú definované mechanizmom postupného posúvania dotazov. Tento mechanizmus identifikuje kroky z dotazu, ktorý je možné vyložiť do zdroja údajov.

Nasledujúca tabuľka uvádza počet riadkov požadovaných z fact_Sale tabuľky databázy. Tabuľka obsahuje aj stručný popis príkazu SQL odoslaného na vyžiadanie takýchto údajov zo zdroja údajov.

Príklad Označenie Požadované riadky Description
Žiadne postupné posúvanie dotazov None 3644356 Požiadavka na všetky polia a všetky záznamy z fact_Sale tabuľky
Postupné postupné posúvanie čiastočných dotazov Čiastočné 3644356 Žiadosť o všetky záznamy, ale len požadované polia z fact_Sale tabuľky po zoradení podľa Sale Key poľa
Úplné postupné posúvanie dotazov Úplný 10 Požiadavka iba pre povinné polia a prvých 10 záznamov fact_Sale tabuľky po zoradení v zostupnom poradí podľa Sale Key poľa

Graf s množstvom riadkov zhromaždených z databázy bez postupného posúvania dotazov, čiastočného postupného posúvania dotazov a úplného postupného posúvania dotazov.

Pri vyžiadaní údajov zo zdroja údajov musí zdroj údajov vypočítať výsledky pre požiadavku a potom odoslať údaje žiadateľovi. Kým už bolo spomenuté výpočtové zdroje, sieťové zdroje na premiestnenie údajov zo zdroja údajov do Power Query a následne umožňujú doplnku Power Query efektívne prijať údaje a pripraviť ich na transformácie, ktoré sa uskutočnia lokálne, môžu v závislosti od veľkosti údajov chvíľu trvať.

Pri prezentovaných príkladoch musel Power Query požiadať zo zdroja údajov o viac ako 3,6 milióna riadkov, aby nedochádzalo k postupnému posúvaniu dotazov a k čiastočnému postupnému posúvaniu dotazov. V prípade úplného príkladu skladania dotazov sa požadovalo len 10 riadkov. V prípade požadovaných polí žiadny príklad skladania dotazov nevyžadoval všetky dostupné polia z tabuľky. Čiastočné skladanie dotazov a úplné príklady postupného posúvania dotazov odoslali len žiadosť o presne tie polia, ktoré potrebovali.

Výstraha

Odporúčame implementovať riešenia prírastkového obnovenia, ktoré využívajú postupné posúvanie dotazov pre dotazy alebo tabuľky s veľkým množstvom údajov. Rôzne integrácie produktov doplnku Power Query implementujú časové limity na ukončenie dlho spracúvaných dotazov. Niektoré zdroje údajov tiež implementujú časové limity na dlhotrvajúce relácie, ktoré sa snažia vykonávať rozsiahle dotazy na svojich serveroch. Ďalšie informácie: Použitie prírastkového obnovenia s tokmi údajov a prírastkovým obnovením pre sémantické modely

Transformácie vykonané nástrojom Power Query

V tomto článku sa uvádza, ako môžete použiť plán dotazu na lepšie pochopenie toho, ako môže byť dotaz vyhodnotený. V pláne dotazu môžete vidieť presné uzly operácií transformácie, ktoré bude vykonávať nástroj Power Query.

V nasledujúcej tabuľke sa predstavia uzly z plánov dotazov predchádzajúcich dotazov, ktoré by vyhodnotil nástroj Power Query.

Príklad Označenie Transformačné uzly nástroja Power Query
Žiadne postupné posúvanie dotazov None Table.LastN, Table.SelectColumns
Postupné postupné posúvanie čiastočných dotazov Čiastočné Table.LastN
Úplné postupné posúvanie dotazov Úplný

Graf s celkovým počtom transformácií spustených nástrojom Power Query bez postupného posúvania dotazov, čiastočného postupného posúvania dotazov a úplného postupného posúvania dotazov.

V príkladoch uvedených v tomto článku príklad úplného skladania dotazov nevyžaduje žiadne transformácie v rámci nástroja Power Query, pretože požadovaná výstupná tabuľka pochádza priamo zo zdroja údajov. Naopak, ostatné dva dotazy vyžadovali výpočet v nástroji Power Query. Vzhľadom na množstvo údajov, ktoré je potrebné spracovať týmito dvoma dotazmi, trvá proces v týchto príkladoch viac času, ako je príklad úplného postupného posúvania dotazov.

Transformácie je možné zoskupiť do týchto kategórií:

Typ operátora Description
Vzdialenej Operátory, ktoré sú uzlami zdroja údajov. Vyhodnotenie týchto operátorov prebieha mimo doplnku Power Query.
Streaming Operátory sú odovzdávajúce operátory. Napríklad Table.SelectRows pomocou jednoduchého filtra možno zvyčajne filtrovať výsledky pri ich prechode cez operátor a pred presunutím údajov nebude musieť zhromažďovať všetky riadky. Table.SelectColumns a Table.ReorderColumns ďalšie príklady týchto druhov operátorov.
Úplný prehľad Operátory, ktoré potrebujú zhromaždiť všetky riadky predtým, ako sa údaje môžu presunúť na ďalší operátor v reťazci. Ak chcete napríklad zoradiť údaje, Power Query musí zhromaždiť všetky údaje. Ďalšie príklady úplných operátorov skenovania sú Table.Group, Table.NestedJoina Table.Pivot.

Prepitné

Hoci nie každá transformácia z hľadiska výkonu je rovnaká, vo väčšine prípadov je zvyčajne lepší menší počet transformácií.

Dôležité informácie a návrhy

  • Postupujte podľa osvedčených postupov pri vytváraní nového dotazu, ako je to uvedené v téme Najvhodnejšie postupy v doplnku Power Query.
  • Pomocou indikátorov postupného posúvania dotazov skontrolujte, ktoré kroky bránia postupnému posúvaniu dotazu. V prípade potreby zmeňte ich poradie, aby sa zväčalo skladanie.
  • Pomocou plánu dotazov môžete určiť, ktoré transformácie sa v nástroji Power Query vykonávajú pre konkrétny krok. Zvážte úpravu existujúceho dotazu zmenou usporiadania krokov. Potom znova skontrolujte plán dotazu posledného kroku dotazu a zistite, či plán dotazu vyzerá lepšie ako ten predchádzajúci. Nový plán dotazu má napríklad menej uzlov ako ten predchádzajúci, pričom väčšina uzlov je streamovanie, nie úplné preverovanie. V prípade zdrojov údajov, ktoré podporujú skladanie, akékoľvek uzly v inom pláne dotazu ako Value.NativeQuery a uzly prístupu k zdrojom údajov predstavujú transformácie, ktoré sa nezložili.
  • Ak je táto možnosť k dispozícii, môžete použiť možnosť Zobraziť natívny dotaz (alebo Zobraziť dotaz zdroja údajov) na zaistenie toho, že dotaz sa dá postupne posúvať späť do zdroja údajov. Ak je táto možnosť pre váš krok zakázaná a používate zdroj, ktorý ju bežne povoľuje, vytvorili ste krok, ktorým sa zastaví postupné posúvanie dotazov. Ak používate zdroj, ktorý túto možnosť nepodporuje, môžete sa spoliehať na indikátory postupného posúvania dotazov a plán dotazov.
  • Pomocou nástrojov diagnostiky dotazov lepšie porozumiete požiadavkám odosielaným do zdroja údajov, keď sú pre konektor k dispozícii možnosti postupného posúvania dotazov.
  • Pri kombinovaní údajov, ktoré pochádzajú z použitia viacerých konektorov, sa Power Query snaží do oboch zdrojov údajov odoslať čo najviac práce a zároveň dodržiavať úrovne ochrany osobných údajov definované pre každý zdroj údajov.
  • Prečítajte si článok o úrovniach ochrany osobných údajov, aby ste ochránili svoje dotazy pred spustením pred chybou brány firewall pre ochranu osobných údajov.
  • Použitie iných nástrojov na kontrolu postupného posúvania dotazov z pohľadu žiadosti, ktorú prijal zdroj údajov. Na základe príkladu v tomto článku môžete pomocou rozhrania Microsoft SQL Server Profiler skontrolovať požiadavky, ktoré odosiela doplnok Power Query a ktoré prijal Microsoft SQL Server.
  • Ak pridáte nový krok do úplne postupného dotazu a nový krok sa tiež posúva, Power Query môže odoslať novú žiadosť do zdroja údajov namiesto použitia verzie predchádzajúceho výsledku vo vyrovnávacej pamäti. V praxi môže mať tento proces za následok zdanlivo jednoduché operácie s malým množstvom údajov, ktoré sa obnovia v ukážke dlhšie, než sa očakávalo. Obnovenie je dlhšie spôsobené tým, že Power Query opakovane dotazuje zdroj údajov a nepracuje lokálnu kópiu údajov.