V souvislosti s Power Query v Power BI i v Excelu se občas potkáte s názvem Query folding.

Co to je Query Folding?

Query Folding je princip, kdy se Power Query dotazuje do databáze, ale první kroky dotazu (úpravu dat) nechá udělat samotnou zdrojovou databázi.

Důvodem je, že databáze je rychlejší, a že Power Query pak většinou už může dostat data “menší” – např. vyfiltrovaná nebo seskupená.

Jak se Query folding zapne?

Nijak. Je to defaultní možnost při importu ze zdrojů, které toto podporují. 

Query folding se tedy nastaví sám, pokud ovšem nepoužijeme v připojení vlastní SQL dotaz – to se pak v databázi vyhodnotí pouze tento první dotaz, a následující kroky naklikané v Power BI už ne. Z toho vlastně plyne, že kdybychom Query Folding z nějakého důvodu nechtěli použít, můžeme si v připojení definovat SQL dotaz (stačí např. SELECT * FROM tabulka) a Query Folding se nepoužije.

Jak poznáme, že Query Folding funguje?

V query, které je připojené na podporovaný zdroj, je při pravém kliku na první kroky query dostupná volba Native query. Kliknutí zobrazí, na jaký SQL dotaz posílaný databázi si Power Query převedlo začátek dotazu.

Tato možnost je dostupná pro začátek dotazu, ale pouze pro kroky, které lze na SQL převést.

Takto pak vypadá dotaz v SQL (do kterého si ho Power Query na pozadí převádí z jazyka M):

Jakmile použijeme krok, který na SQL převést nejde, tak od tohoto kroku už volba dostupná není. Tyto kroky už se opravdu provádějí v Power Query.

Které zdroje Query Folding podporují?

Typicky databázové nástroje – např. MS SQL, Acces atd.

Které zdroje Query Folding nepodporují?

Typicky soubory – xlsx, pdf, csv, txt.