Sdílet prostřednictvím


Pokyny k posouvání dotazů v Power BI Desktopu

Tento článek se zaměřuje na modelátory dat, kteří vyvíjejí modely v Power BI Desktopu. Poskytuje osvědčené postupy, kdy a jak dosáhnout posouvání dotazů Power Query.

Posouvání dotazů je schopnost dotazu Power Query vygenerovat jeden příkaz dotazu, který načte a transformuje zdrojová data. Další informace najdete v tématu Posouvání dotazů Power Query.

Pokyny

Pokyny k posouvání dotazů se liší v závislosti na režimu modelu.

U tabulky režimu úložiště DirectQuery nebo Duální musí dotaz Power Query dosáhnout posouvání dotazů.

U tabulky Import může být možné dosáhnout posouvání dotazů. Pokud je dotaz založený na relačním zdroji – a pokud je možné vytvořit jeden příkaz SELECT – dosáhnete nejlepšího výkonu aktualizace dat tím, že zajistíte, že dojde k posouvání dotazů. Pokud se mashupový modul Power Query stále vyžaduje ke zpracování transformací, měli byste se snažit minimalizovat práci, kterou potřebuje, zejména u velkých sémantických modelů.

Následující seznam s odrážkami obsahuje konkrétní pokyny.

  • Delegujte na zdroj dat co nejvíce zpracování: Pokud se všechny kroky dotazu Power Query nedají sbalit, zjistěte krok, který brání posouvání dotazů. Pokud je to možné, přesuňte pozdější kroky dříve v posloupnosti, aby se mohly začlenit do posouvání dotazů. Všimněte si, že mashupový modul Power Query může být dostatečně inteligentní, aby při generování zdrojového dotazu přeuspořádal kroky dotazu.

    Pokud by krok bránící posouvání dotazů mohl být u relačního zdroje dat dosažen v jednom příkazu SELECT nebo v rámci procedurální logiky uložené procedury, zvažte použití nativního dotazu SQL, jak je popsáno dále.

  • Použijte nativní dotaz SQL: Když dotaz Power Query načte data z relačního zdroje, je možné, aby některé zdroje používaly nativní dotaz SQL. Dotaz může být ve skutečnosti libovolný platný příkaz, včetně spuštění uložené procedury. Pokud příkaz vytvoří více sad výsledků, vrátí se pouze první. Parametry lze deklarovat v příkazu a doporučujeme použít funkci Value.NativeQuery M. Tato funkce byla navržena tak, aby bezpečně a pohodlně předávala hodnoty parametrů. Je důležité si uvědomit, že mashupový modul Power Query nemůže později přeložit kroky dotazu, a proto byste do nativního příkazu dotazu měli zahrnout všechny transformační logiky (nebo co nejvíce).

    Při používání nativních dotazů SQL je potřeba vzít v úvahu dvě důležité aspekty:

    • V případě tabulky modelu DirectQuery musí být dotaz příkazEM SELECT a nemůže používat common Table Expressions (CTE) ani uloženou proceduru.
    • Přírůstková aktualizace nemůže použít nativní dotaz SQL. Proto by mashupový modul Power Query vynutil načtení všech zdrojových řádků a následné použití filtrů k určení přírůstkových změn.

    Důležité

    Nativní dotaz SQL může potenciálně provádět více než načítání dat. Jakýkoli platný příkaz lze spustit (a případně i vícekrát), včetně toho, který upraví nebo odstraní data. Je důležité, abyste použili zásadu nejnižších oprávnění, abyste zajistili, že účet použitý pro přístup k databázi má oprávnění jen ke čtení požadovaných dat.

  • Příprava a transformace dat ve zdroji: Když zjistíte, že některé kroky dotazu Power Query nejde přeložit, může být možné použít transformace ve zdroji dat. Transformace lze dosáhnout zápisem zobrazení databáze, které logicky transformuje zdrojová data. Nebo tím, že fyzicky připravíte a materializujete data, před dotazováním Power BI na data. Relační datový sklad je skvělým příkladem připravených dat, která se obvykle skládají z předem integrovaných zdrojů dat organizace.

Další informace o tomto článku najdete v následujících zdrojích informací: