Postupné posúvanie dotazov v doplnku Power Query

Tento článok je zameraný na modelárov údajov, ktorí vyvíjajú modely Power Pivot alebo Power BI Desktop. Popisuje, čo Power Query údajového modelu je a prečo je v návrhoch dátových modelov dôležité. Tento článok popisuje aj zdroje údajov a transformácie, pri ktorých možno dosiahnuť skladanie dotazov, a tiež to, ako zistiť, či sa vaše dotazy Power Query možno úplne alebo čiastočne znásobiť.

Pri skladanie dotazov je schopnosť dotazu Power Query vygenerovať príkaz s jedným dotazom, ktorý načíta a transformuje zdrojové údaje. Mashup Power Query sa snaží dosiahnuť skladanie dotazov vždy, keď je to možné, z dôvodu efektivity.

Pri modelovaní údajov je postupné posúvanie dotazov dôležité z niekoľkých dôvodov:

  • Tabuľky modelu importu: V prípade tabuliek modelu importu bude obnovenie údajov prebiehať efektívne (Power Pivot alebo Power BI Desktop), pokiaľ ide o využitie prostriedkov a dobu trvania obnovenia.
  • Tabuľky režimu ukladacieho priestoru DirectQuery a Duálny: Každá tabuľka režimu ukladacieho priestoru DirectQuery a Duálny (len v službe Power BI) musí byť založená na tabuľke Power Query, ktorý možno zložiť.
  • Prírastkové obnovenie: Prírastkové obnovenie údajov (len služba Power BI) bude efektívne, pokiaľ ide o využitie prostriedkov a dobu trvania obnovenia. V skutočnosti vás okno konfigurácie prírastkového obnovenia služby Power BI upozorní, ak zistí, že pri tabuľke nemožno postupné postupné dotazy dosiahnuť. Ak sa nedá dosiahnuť, cieľ prírastkovej obnovenia je z marený. Mashup modul by v takom prípade musel načítať všetky zdrojové riadky a potom pomocou filtrov určiť prírastkové zmeny.

K postupnému posunutiu dotazu môže dôjsť pri celom dotaze Power Query alebo pri podmnožine jeho krokov. Ak skladanie dotazov nemožno dosiahnuť, či už čiastočne alebo úplne, musí Power Query mashup nástroj kompenzovať tým, že transformáciu údajov spracová sám. Tento proces môže zahŕňať načítanie výsledkov zdrojového dotazu, čo je pri veľkých množinách údajov veľmi náročné na prostriedky a pomalé.

Odporúčame, aby ste sa snažili v návrhoch svojich modelov dosiahnuť efektivitu a pokiaľ možno k tomu došlo pri skladanie dotazov.

Zdroje, ktoré podporujú skladanie

Väčšina zdrojov údajov, ktoré používajú koncept dotazovacieho jazyka, podporuje postupné posúvanie dotazov. Tieto zdroje údajov môžu zahŕňať relačné databázy, kanály OData (vrátane zoznamov SharePointu), Exchange a Active Directory. Zdroje údajov, ako sú napríklad ploché súbory, objekty BLOB a web, však zvyčajne postupné posúvanie dotazov nepodporujú.

Transformácie, pri ktorých možno dosiahnuť skladanie

Transformácie relačných zdrojov údajov, ktorých dotazy možno postupne posúvať, sú také, ktoré sa dajú zapísať ako jeden príkaz SELECT. Príkaz SELECT môže byť vytvorený so zodpovedajúcimi klauzulami WHERE, GROUP BY a JOIN. Môže tiež obsahovať stĺpcové výrazy (výpočty), ktoré používajú bežné vstavané funkcie podporované databázami SQL.

V nasledujúcom zozname sú všeobecne popísané transformácie, pri ktorých možno dotazy zložiť.

  • Odstránenie stĺpcov.

  • Premenovanie stĺpcov (stĺpcové aliasy SELECT).

  • Filtrovanie riadkov pomocou statických hodnôt alebo Power Query (predikáty klauzuly WHERE).

  • Zoskupenie a sumarizovanie (klauzula GROUP BY).

  • Rozbalenie stĺpcov záznamov (stĺpcov zdrojového cudzieho kľúča) s cieľom spojenia dvoch zdrojových tabuliek (klauzula JOIN).

  • Non-fuzzy merging of fold-able queries based on the same source (join clause).

  • Pripojenie zložených dotazov, ktoré sú založené na rovnakom zdroji (operátor UNION ALL).

  • Pridanie vlastných stĺpcov pomocou jednoduchej logiky (stĺpcové výrazy SELECT). Jednoduchá logika znamená nekomplikované operácie s možnou vrátane použitia funkcií M, ktoré majú ekvivalentné funkcie v zdroji údajov SQL, ako sú napríklad matematické funkcie alebo funkcie na manipuláciu s textom. Napríklad nasledujúce výrazy vrátia časť roka hodnoty stĺpca OrderDate (s cieľom vrátenia číselnej hodnoty).

    Date.Year([OrderDate])
    
  • Kontingenčnosť a zrušenie kontingenčnosti (operátory PIVOT a UNPIVOT).

Transformácie, pri ktorých nie je možné skladanie

V nasledujúcom zozname sú všeobecne popísané transformácie, pri ktorých nie je možné skladanie dotazov zistiť. Tento zoznam nie je úplný.

  • Zlučovanie dotazov založené na rôznych zdrojoch.

  • Pripájacie dotazy (union-ing) založené na rôznych zdrojoch.

  • Pridanie vlastných stĺpcov pomocou zložitej logiky. Komplexná logika znamená použitie funkcií M, ktoré nemajú v zdroji údajov žiadne ekvivalentné funkcie. Napríklad nasledujúce výrazy naformátujú hodnotu stĺpca OrderDate (s cieľom vrátenia textovej hodnoty).

    Date.ToText([OrderDate], "yyyy")
    
  • Pridanie indexových stĺpcov.

  • Zmena typu údajov stĺpca.

Nezabúdajte, že ak dotaz Power Query zahŕňa viacero zdrojov údajov, nekompatibilita úrovní ochrany osobných údajov jednotlivých zdrojov údajov môže brániť vo využití postupného posúvania dotazov. Ďalšie informácie nájdete v článku Úrovne Power BI Desktop ochrany osobných údajov.

Určenie, kedy možno dotaz postupne posúvať

V Power Query okne Editor možno určiť, kedy možno Power Query dotazy. Keď na table Nastavenia (Dotaz) kliknete pravým tlačidlom myši na posledný použitý krok a možnosť Zobraziť natívny dotaz bude zapnutá (nebude sivá), možno celý dotaz postupne preložiť.

Príklad určenia, že Power Query dosiahnuť skladanie dotazov v Power BI Desktop.

Poznámka

Možnosť Zobraziť natívny dotaz je k dispozícii len pre určité relačné databázy/SQL generovanie konektorov. Nefunguje napríklad pre konektory založené na OData, aj keď sa na serveri vyskytuje skladanie. Funkcia Diagnostika dotazov je najlepším spôsobom, ako zistiť, k čomu došlo v prípade konektorov bez SQL (hoci postup pri postupovaní nie je explicitne nazývaný, vidíte len výslednú URL adresu, ktorá bola — vygenerovaná).

Ak chcete zobraziť zložený dotaz, vyberte možnosť Zobraziť natívny dotaz. Zobrazí sa natívny dotaz, ktorý použijete Power Query na zdrojové údaje.

Príklad natívneho dotazu v Power BI Desktop.

Ak možnosť Zobraziť natívny dotaz nie je zapnutá (je sivá), znamená to, že nie je možné všetky kroky dotazu skladanie. Môže to však znamenať, že podmnožinu krokov je stále možné posúvať. Keď pracujete spätne od posledného kroku, môžete sa pri každom kroku pozrieť, či je povolená možnosť Zobraziť natívny dotaz. Vtedy ste sa naučili, odkiaľ v tejto postupnosti krokov už nemožno dosiahnuť toto skladanie dotazov.

Príklad určenia, že Power Query nie je možné dosiahnuť skladanie dotazov v Power BI Desktop.

Ďalšie kroky

Ďalšie informácie o postupných postupných dotazoch a súvisiacich článkoch nájdete v nasledujúcich zdrojoch: