Sdílet prostřednictvím


Odkazování na dotazy Power Query

Tento článek se zaměřuje na modelátora dat, který pracuje s Power BI Desktopem. Poskytuje pokyny při definování dotazů Power Query, které odkazují na jiné dotazy.

Pojďme si jasně přečíst, co to znamená: Když dotaz odkazuje na druhý dotaz, je to, jako kdyby se kroky v druhém dotazu zkombinovaly a spustily předtím, kroky v prvním dotazu.

Zvažte několik dotazů: Dotaz1 zdroje dat z webové služby a jeho zatížení je zakázané. Dotaz2, Query3 a Query4 všechny odkazy Dotaz1 a jejich výstupy se načtou do datového modelu.

Diagram znázorňující zobrazení Závislostí dotazů zobrazující dotazy popsané v předchozím odstavci

Při aktualizaci datového modelu se často předpokládá, že Power Query načte výsledek Dotazu1 a že se opakovaně používá odkazovanými dotazy. Toto myšlení je nesprávné. Power Query ve skutečnosti spouští dotazy 2, Query3 a Query4 samostatně.

Můžete si myslet, že Dotaz2 obsahuje vložené kroky Dotazu1 . Jedná se také o dotaz 3 a dotaz 4. Následující diagram znázorňuje přehlednější představu o tom, jak se dotazy spouštějí.

Diagram znázorňující upravenou verzi zobrazení Závislostí dotazů, zobrazení dotazu 2, dotazu 3 a dotazu 4

Dotaz 1 se spustí třikrát. Několik spuštění může vést k pomalé aktualizaci dat a negativnímu dopadu na zdroj dat.

Použití funkce Table.Buffer v dotazu 1 neodstraní další načtení dat. Tato funkce uloží tabulku do paměti a tabulku s vyrovnávací pamětí lze použít pouze ve stejném spuštění dotazu. V tomto příkladu platí, že pokud je dotaz1 uložen do vyrovnávací paměti při spuštění dotazu 2 , nelze data uložená do vyrovnávací paměti použít při spuštění dotazu 3 a Dotazu4 . Oni sami uloží data do vyrovnávací paměti dvakrát více. (Tento výsledek by ve skutečnosti mohl zkompilovat negativní výkon, protože každá odkazující dotaz uloží tabulku do vyrovnávací paměti.)

Poznámka:

Architektura ukládání do mezipaměti Power Query je složitá a tento článek se nezaměřuje. Power Query může ukládat data načtená ze zdroje dat do mezipaměti. Když ale spustí dotaz, může načíst data ze zdroje dat více než jednou.

Doporučení

Obecně doporučujeme odkazovat na dotazy, abyste se vyhnuli duplikaci logiky napříč dotazy. Jak je ale popsáno v tomto článku, může tento přístup k návrhu přispět k pomalým aktualizacím dat a nadměrnému přetížení zdrojů dat.

Doporučujeme místo toho vytvořit tok dat. Použití toku dat může zlepšit dobu aktualizace dat a snížit dopad na zdroje dat.

Tok dat můžete navrhnout tak, aby zapouzdřil zdrojová data a transformace. Vzhledem k tomu, že tok dat je trvalé úložiště dat v služba Power BI, je jeho načítání dat rychlé. Takže i když odkazování na dotazy vede k několika žádostem o tok dat, můžete dobu aktualizace dat vylepšit.

V příkladu, pokud je Dotaz1 přepracovaný jako entita toku dat, Query2, Query3 a Query4 ho můžou použít jako zdroj dat. Při tomto návrhu se entita zdrojová dotazem1 vyhodnotí pouze jednou.

Další informace týkající se tohoto článku najdete v následujících zdrojích informací: