Přehled vyhodnocení dotazů a posouvání dotazů v Power Query

Power Query vyhodnotí dotaz M, který určí data a transformace potřebné pro jeho výsledek. Během vyhodnocení se posouvání dotazů pokusí přeložit podporované transformace na operace, které může zdroj dat provést. Transformace, které nelze sloučit, se spouštějí v modulu Power Query.

Co je skript Power Query M?

Skript jazyka M, označovaný také jako kód M, je sada funkcí jazyka vzorců Power Query M a syntaxe, která Power Query vyhodnocuje, aby vznikl výsledek dotazu. Každý dotaz má skript jazyka M bez ohledu na to, jestli ho Power Query vytvoří, napíšete ho v rozšířeném editoru nebo ho zadáte do prázdného dotazu.

Návod

Skript M si můžete představit jako recept, který popisuje, jak připravit data.

Nejběžnější způsob, jak vytvořit skript jazyka M, je použití editoru Power Query. Když se například připojíte ke zdroji dat, například k SQL Server databázi, všimněte si na pravé straně obrazovky, že je oddíl označovaný jako použitý postup. Tato část ukazuje všechny kroky nebo transformace použité v dotazu. V tomto smyslu editor Power Query slouží jako rozhraní, které vám pomůže vytvořit vhodný skript M pro požadované transformace a zajistí platnost kódu, který použijete.

Poznámka:

Skript M se používá v editoru Power Query k:

  • Zobrazí dotaz jako řadu kroků a umožní vám vytvořit nebo upravit kroky.
  • Zobrazení diagramu

Snímek obrazovky s použitými kroky a zobrazením náhledu dat

V tomto SQL Server příkladu obsahuje podokno Použitý postup následující kroky:

  • Zdroj: Vytvoří připojení ke zdroji dat. V tomto případě se jedná o připojení k SQL Server databázi.
  • Navigace: Přejde do konkrétní tabulky v databázi.
  • Odebrat ostatní sloupce: Vyberte sloupce z tabulky, které mají být zachovány.
  • Seřazené řádky: Seřadí tabulku pomocí jednoho nebo více sloupců.
  • Uchovávané horní řádky: Filtruje tabulku, aby zůstaly pouze některé řádky z horní části tabulky.

Zobrazení a úprava skriptu M v Power Query

Tato sada názvů kroků představuje popisný způsob zobrazení skriptu M, který Power Query vytvořil za vás. Úplný skript jazyka M můžete zobrazit několika způsoby. V Power Query vyberte na kartě Zobrazení možnost Upřesnit editor. Možnost Upřesnit editor můžete také vybrat ve skupině Dotaz na kartě Domů. V některých verzích Power Query můžete také změnit zobrazení řádku vzorců tak, aby zobrazoval skript dotazu, tak, že přejdete na kartu Zobrazení a ve skupině Rozložení vyberete možnost Zobrazení skriptu>skriptu dotazu.

Snímek obrazovky s úplným skriptem M a odpovídajícími názvy použitých kroků

Většina názvů, které najdete v podokně Použitý postup , se také používá stejně jako ve skriptu M. Kroky dotazu pojmenujete pomocí identifikátorů v jazyce M. Někdy se nadbytečné znaky obtéknou kolem názvů kroků v jazyce M, ale tyto znaky se v použitých krocích nezobrazují. Příkladem je #"Kept top rows", který je kategorizován jako identifikátor v uvozovkách kvůli těmto nadbytečným znakům. Identifikátor v uvozovkách umožňuje, aby se jako identifikátor používala libovolná posloupnost nulových nebo více znaků Unicode, včetně klíčových slov, prázdných znaků, komentářů, operátorů a interpunkčních znaků. Další informace o identifikátorech v jazyce M najdete v lexikální struktuře.

Všechny změny provedené v dotazu prostřednictvím editoru Power Query automaticky aktualizují skript jazyka M pro váš dotaz. Pokud například změníte název kroku Ponechané horní řádky na Prvních 20 řádků, název se také změní v zobrazení skriptu dotazu.

Snímek obrazovky s použitým názvem kroku změněným na Top 20 řádků, což také aktualizuje skript M.

I když doporučujeme použít editor Power Query k vytvoření celého nebo většiny skriptu M za vás, můžete ručně přidat nebo upravit části skriptu M. Další informace najdete v referenční dokumentaci jazyka M.

V tomto článku se skriptem jazyka M rozumí kód Power Query M v dotazu, ke kterému máte přístup v rozšířeném editoru nebo v zobrazení skriptu dotazu v řádku vzorců.

Jak Power Query vyhodnocuje dotaz jazyka M

Power Query vyhodnotí skript jazyka M určením požadovaného výstupu a jeho vytvoření. U dotazů, které používají externí zdroj dat, vyhodnocení zahrnuje vyžádání dat ze zdroje, zpracování všech transformací spuštěných v modulu Power Query a načtení výsledku do cíle.

Následující diagram zkoumá proces, ke kterému dochází při vyhodnocování dotazu v Power Query.

Diagram znázorňující cestu vyhodnocení dotazu ze skriptu M do konečného výstupu

  1. Skript M, který se nachází v rozšířeném editoru, se odešle do modulu Power Query. Součástí jsou i další důležité informace, jako jsou přihlašovací údaje a úrovně ochrany osobních údajů zdroje dat.
  2. Power Query určuje, jaká data je potřeba extrahovat ze zdroje dat, a odešle žádost do zdroje dat.
  3. Zdroj dat odpoví na žádost z Power Query přenosem požadovaných dat do Power Query.
  4. Power Query přijímá příchozí data ze zdroje dat a v případě potřeby provede všechny transformace pomocí modulu Power Query.
  5. Power Query načte transformovaný výsledek do cílového umístění.

Poznámka:

Tento tok ukazuje dotaz, který čte z SQL Server databáze. U dotazu bez externího zdroje dat Power Query stále vyhodnocuje skript M a vytvoří výsledek, ale požadavky na zdroj dat a fáze přenosu se nevztahují.

Jak posouvání dotazů optimalizuje vyhodnocení dotazů

Když Power Query přečte váš skript M, spustí skript prostřednictvím procesu optimalizace, aby se dotaz efektivněji vyhodnotil. V tomto procesu určuje, které kroky (transformace) z dotazu se dají do zdroje dat přesměrovat. Určuje také, které další kroky je potřeba vyhodnotit pomocí modulu Power Query.

Tento optimalizační proces se nazývá skládání dotazů. Posouvání dotazů překládá podporované transformace M na operace, které může zdroj dat provádět. Power Query se pokusí spustit co nejvíce dotazu ve zdroji dat a vyhodnotí všechny zbývající transformace v modulu Power Query.

Důležité

Následují všechna pravidla z jazyka vzorců Power Query M (označovaného také jako jazyk M). Nejvýraznější je, že opožděné vyhodnocení hraje důležitou roli během procesu optimalizace. V tomto procesu Power Query rozumí tomu, jaké konkrétní transformace z dotazu je potřeba vyhodnotit. Power Query také rozumí tomu, jaké další transformace není potřeba vyhodnotit, protože nejsou potřeba ve výstupu dotazu.

Kromě toho, pokud je zapojeno více zdrojů, při vyhodnocování dotazu se bere v úvahu úroveň ochrany osobních údajů jednotlivých zdrojů dat. Další informace: Pohled do zákulisí ochrany osobních údajů pomocí firewallu

Následující diagram znázorňuje kroky, které probíhají v tomto procesu optimalizace.

Diagram znázorňující proces optimalizace během vyhodnocení dotazu

  1. Skript M, který se nachází v rozšířeném editoru, se odešle do modulu Power Query. K dispozici jsou také další důležité informace, jako jsou přihlašovací údaje a úrovně ochrany osobních údajů zdroje dat.
  2. Mechanismus posouvání dotazů odesílá žádosti o metadata k určení možností zdroje dat, schémat tabulek, relací mezi tabulkami ve zdroji dat a dalších metadat.
  3. Na základě metadat, která obdrží, mechanismus posouvání dotazů určuje, jaké informace se mají extrahovat ze zdroje dat a které transformace musí proběhnout uvnitř modulu Power Query. V případě potřeby odešle instrukce dvěma dalším komponentám, které načítají data ze zdroje dat, a v případě potřeby transformují příchozí data v modulu Power Query.
  4. Jakmile interní komponenty Power Query obdrží pokyny, Power Query odešle žádost zdroji dat pomocí dotazu zdroje dat.
  5. Zdroj dat obdrží požadavek z Power Query a přenese data do modulu Power Query.
  6. Jakmile jsou data uvnitř Power Query, transformační modul uvnitř Power Query (označovaný také jako mashupový modul) provede transformace, které se nepodařilo přeložit zpět nebo přesměrovat do zdroje dat.
  7. Power Query načte transformovaný výsledek do cílového umístění.

Poznámka:

V závislosti na transformacích a zdroji dat použitých ve skriptu M Power Query určuje, jestli se mají příchozí data streamovat nebo ukládat do vyrovnávací paměti.

Co skládání dotazů dělá v Power Query

Cílem skládání dotazů je přenést co nejvíce vyhodnocení dotazu do zdroje dat, který dokáže provést transformace vašeho dotazu.

Mechanismus posouvání dotazů dosahuje tohoto cíle překladem skriptu M do jazyka, který může zdroj dat interpretovat a spouštět. Potom odešle vyhodnocení do zdroje dat a odešle výsledek tohoto vyhodnocení do Power Query.

Tato operace často poskytuje rychlejší provádění dotazů než extrahování všech požadovaných dat ze zdroje dat a spouštění všech transformací požadovaných v modulu Power Query.

Když použijete prostředí dat get, Power Query vás provede procesem, který vám nakonec umožní připojit se ke zdroji dat. Při tom Power Query používá řadu funkcí v jazyce M zařazené do kategorie přístup datových funkcí. Tyto konkrétní funkce používají mechanismy a protokoly pro připojení ke zdroji dat pomocí jazyka, kterému zdroj dat rozumí.

U transformací po funkci zdroje dat mechanismus posouvání dotazů kontroluje, jestli je může místo jejich zpracování v modulu Power Query přesměrovat na zdroj dat.

Důležité

Funkce zdroje dat, které se běžně zobrazují jako krok Zdroj dotazu, se dotazuje na data ve zdroji dat v jeho nativním jazyce. U transformací po funkci zdroje dat se Power Query pokouší o skládání dotazů pouze tehdy, pokud to konektor a transformace podporují. Mechanismus může překládat a kombinovat podporované transformace do jednoho dotazu na zdroj dat.

Výsledky posouvání dotazů v Power Query

V závislosti na struktuře dotazu může existovat tři možné výsledky mechanismu posouvání dotazů:

Výsledek posouvání dotazů Zpracování ve zdroji dat Zpracování v modulu Power Query
Úplné skládání dotazů Zdroj dat zpracovává všechny transformace dotazů. V modulu Power Query dochází k minimálnímu zpracování.
Částečné posouvání dotazů Zdroj dat zpracovává transformace, které Power Query mohou překládat do nativního dotazovacího jazyka. Modul Power Query zpracovává zbývající transformace.
Bez posouvání dotazů Zdroj dat vrátí požadovaná zdrojová data bez zpracování transformací dotazů. Modul Power Query zpracovává všechny požadované transformace.

Zdroje dat, které podporují posouvání dotazů

Podpora posouvání dotazů závisí na konektoru, zdroji dat a transformacích v dotazu. Konektory pro strukturované zdroje dat s možnostmi zpracování dotazů, jako jsou SQL Server a datový kanál OData, běžně podporují posouvání dotazů. Zdroje bez dotazovacího stroje, jako jsou soubory CSV a Excel, nepodporují posouvání dotazů.

Během optimalizace může modul Power Query změnit pořadí kroků dotazu. Použití zdroje dat s většími prostředky zpracování a možnostmi posouvání dotazů může zkrátit dobu načítání dotazů, protože zpracování probíhá ve zdroji dat místo v modulu Power Query.

Ověřte query folding v Power Query Online

V Power Query Online použijte indikátory skládání dotazu vedle použitých kroků k určení, u kterých kroků dochází ke skládání dotazu. Plán dotazu můžete také použít k zobrazení operací spuštěných ve zdroji dat a operacích spuštěných v modulu Power Query. Tyto funkce jsou dostupné jenom v Power Query Online.

Pokud je k dispozici, pomocí dotazu Zobrazit nativní dotaz nebo Zobrazit dotaz zdroje dat zkontrolujte požadavek, který Power Query odesílá do zdroje dat. Dostupnost závisí na konektoru.