Sdílet prostřednictvím


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

Tento článek obsahuje základní přehled o zpracování a převodu dotazů M na žádosti o zdroj dat.

Skript Power Query M

Jakýkoli dotaz, ať už vytvořený v Power Query, ručně napsaný v rozšířeném editoru nebo zadaný pomocí prázdného dokumentu, se skládá z funkcí a syntaxe z jazyka vzorců Power Query M. Tento dotaz se interpretuje a vyhodnocuje modulem Power Query za účelem výstupu svých výsledků. Skript M slouží jako sada instrukcí potřebných k vyhodnocení dotazu.

Tip

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

Nejběžnější způsob vytvoření skriptu M je použití editoru Power Query. Když se například připojíte ke zdroji dat, například k databázi SQL Serveru, na pravé straně obrazovky si všimněte, že je oddíl s názvem použitý postup. V této části se zobrazí 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 příslušný skript M pro transformace, které jste právě vytvořili, 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í vytvoření nebo úpravu nových kroků.
  • Zobrazení diagramu

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

Předchozí obrázek zvýrazňuje část použitých kroků, která obsahuje následující kroky:

  • Zdroj: Vytvoří připojení ke zdroji dat. V tomto případě se jedná o připojení k databázi SQL Serveru.
  • Navigace: Přejde do konkrétní tabulky v databázi.
  • Odebrané další sloupce: Vybere sloupce z tabulky, které chcete zachovat.
  • Seřazené řádky: Seřadí tabulku pomocí jednoho nebo více sloupců.
  • Uchovávané horní řádky: Filtruje tabulku tak, aby některé řádky zůstaly jenom z horní části tabulky.

Tato sada názvů kroků představuje popisný způsob zobrazení skriptu M, který pro vás Power Query vytvořil. Úplný skript jazyka M můžete zobrazit několika způsoby. V Power Query můžete vybrat Rozšířený editor na kartě Zobrazení. Můžete také vybrat Rozšířený editor ze skupiny 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 Skript zobrazení>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ů nalezených v podokně Použitý postup se také používá stejně jako ve skriptu M. Kroky dotazu jsou pojmenovány pomocí něčeho, co se označuje jako identifikátory v jazyce M. Někdy jsou nadbytečné znaky zabalené 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 uvozový identifikátor kvůli těmto nadbytečným znakům. Identifikátor uvozovek lze použít k tomu, 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 jako výchozí bod použijete předchozí obrázek, změníte-li název kroku nejvyšších řádků na prvních 20 řádků, tato změna se automaticky aktualizuje v zobrazení skriptu.

Snímek obrazovky s použitým názvem kroku, který se změnil na prvních 20 řádků, které také aktualizují 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 o jazyce M najdete na oficiálním webu dokumentace jazyka M.

Poznámka:

Skript M, označovaný také jako kód M, je termín používaný pro jakýkoli kód, který používá jazyk Power Query M. V kontextu tohoto článku odkazuje skript jazyka M také na kód nalezený v dotazu Power Query a je přístupný prostřednictvím rozšířeného okna editoru nebo zobrazení skriptu na řádku vzorců.

Vyhodnocení dotazů v Power Query

Následující diagram zkoumá proces, ke kterému dochází při vyhodnocení 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 požadavek 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. Výsledky odvozené z předchozího bodu se načtou do cíle.

Poznámka:

I když tento příklad předvádí dotaz se službou SQL Database jako zdrojem dat, koncept se vztahuje na dotazy se zdrojem dat nebo bez tohoto zdroje dat.

Když Power Query přečte váš skript M, spustí skript prostřednictvím procesu optimalizace, aby se dotaz efektivněji vyhodnocoval. 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 proces optimalizace se označuje jako posouvání dotazů, kdy se Power Query pokusí odeslat do zdroje dat co největší část spuštění, aby optimalizoval provádění dotazu.

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í konkrétním transformacím z dotazu, které 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: Na pozadí brány firewall ochrany osobních údajů dat

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á do zdroje dat požadavky na metadata, aby určil možnosti zdroje dat, schémata tabulek, relace mezi různými tabulkami ve zdroji dat a další.
  3. Na základě přijatých metadat mechanismus posouvání dotazů určuje, jaké informace se mají extrahovat ze zdroje dat a jakou sadu transformací je potřeba provést v modulu Power Query. Odešle pokyny do dvou dalších komponent, které se postará o načtení dat ze zdroje dat a transformaci příchozích dat v modulu Power Query v případě potřeby.
  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 v 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. Výsledky odvozené z předchozího bodu se načtou do cíle.

Poznámka:

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

Přehled posouvání dotazů

Cílem posouvání dotazů je přesměrovat nebo nasdílit tolik vyhodnocení dotazu do zdroje dat, který dokáže vypočítat transformace dotazu.

Mechanismus posouvání dotazů dosahuje tohoto cíle překladem skriptu M do jazyka, který je možné interpretovat a spouštět vaším zdrojem dat. 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 možnosti získání dat, Power Query vás provede procesem, který vám nakonec umožní připojit se ke zdroji dat. Když to uděláte, Power Query používá řadu funkcí v jazyce M zařazené do kategorií jako přístup k datovým funkcím. Tyto konkrétní funkce používají mechanismy a protokoly pro připojení ke zdroji dat pomocí jazyka, kterému zdroj dat rozumí.

Kroky, které v dotazu následují, jsou ale kroky nebo transformace, které se mechanismus posouvání dotazů pokusí optimalizovat. Pak zkontroluje, jestli je možné je přesměrovat do zdroje dat místo zpracování pomocí modulu Power Query.

Důležité

Všechny funkce zdroje dat, které se běžně zobrazují jako krok Zdroj dotazu, se dotazují na data ve zdroji dat v jeho nativním jazyce. Mechanismus posouvání dotazů se využívá u všech transformací použitých na váš dotaz po funkci zdroje dat, aby je bylo možné přeložit a zkombinovat do jednoho dotazu zdroje dat nebo tolik transformací, které je možné načíst do zdroje dat.

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

  • Úplné posouvání dotazů: Když se všechny transformace dotazů vrátí zpět do zdroje dat a dojde k minimálnímu zpracování v modulu Power Query.
  • Částečné posouvání dotazů: Pokud se do zdroje dat dá přenést jenom několik transformací, a ne všechny. V tomto případě se ve zdroji dat provádí pouze podmnožina transformací a zbytek transformací dotazů probíhá v modulu Power Query.
  • Bez posouvání dotazů: Pokud dotaz obsahuje transformace, které nejde přeložit do nativního dotazovacího jazyka vašeho zdroje dat, protože transformace nejsou podporované nebo konektor nepodporuje posouvání dotazů. V tomto případě Power Query získá nezpracovaná data z vašeho zdroje dat a pomocí modulu Power Query dosáhne požadovaného výstupu zpracováním požadovaných transformací na úrovni modulu Power Query.

Poznámka:

Mechanismus posouvání dotazů je primárně k dispozici v konektorech pro strukturované zdroje dat, jako jsou například microsoft SQL Server a datový kanál OData. Během fáze optimalizace může modul někdy změnit pořadí kroků v dotazu.

Využití zdroje dat, který má více prostředků pro zpracování a má možnosti posouvání dotazů, může urychlit načítání dotazů při zpracování ve zdroji dat a ne v modulu Power Query.

Podrobné příklady tří možných výsledků mechanismu posouvání dotazů najdete v příkladech posouvání dotazů.

Informace o indikátorech posouvání dotazů v podokně Použitý postup najdete v části Indikátory posouvání dotazů.