Pokyny na postupné posúvanie dotazov v aplikácii Power BI Desktop

Tento článok je určený pre modelárov údajov, ktorí v aplikácii Power BI Desktop vyvíjajú modely. Obsahuje najvhodnejšie postupy a pokyny, kedy (a ako) môžete dosiahnuť postupné posúvanie dotazov Power Query.

Postupné posúvanie dotazov je schopnosť dotazu Power Query vygenerovať príkaz s jedným dotazom, ktorý načíta a transformuje zdrojové údaje. Ďalšie informácie nájdete v téme Postupné posúvanie dotazov Power Query.

Sprievodný materiál

Pokyny na postupné posúvanie dotazov sa líšia v závislosti od režimu modelu.

Pri tabuľke režimu ukladacieho priestoru DirectQuery alebo Duálny sa pri dotaze Power Query musí dosiahnuť postupné posúvanie.

Pri tabuľke Import je možné dosiahnuť postupné posúvanie dotazov. Ak je dotaz založený na relačnom zdroji (a je možné zostaviť jeden príkaz SELECT), najlepší výkon obnovenia údajov dosiahnete, keď zaistíte postupné posúvanie dotazov. Ak musí mashup modul Power Query napriek tomu spracovať transformácie, mali by ste sa snažiť minimalizovať ich, najmä pri veľkých sémantických modeloch (predtým známych ako množiny údajov).

Nasledujúci zoznam s odrážkami obsahuje konkrétne pokyny.

  • Delegujte čo najväčšiu časť spracovania na zdroj údajov: Ak nie je možné postupne posúvať všetky kroky dotazu Power Query, vyhľadajte krok, ktorý bráni postupnému posúvaniu dotazov. Ak je to možné, presuňte ďalšie kroky v postupnosti skôr, aby ich bolo možné zahrnúť do postupného posúvania dotazov. Mashup modul Power Query môže byť natoľko inteligentný, že pri generovaní zdrojového dotazu zmení usporiadanie krokov dotazu.

    V prípade relačných zdrojov údajov je možné krok, ktorý bráni postupnému posúvaniu dotazov, uskutočniť jedným príkazom SELECT (alebo v rámci procedurálnej logiky uloženej procedúry), mali by ste zvážiť použitie natívneho dotazu SQL, ako je to opísané nižšie.

  • Použiť natívny dotaz SQL: Keď dotaz Power Query načíta údaje z relačného zdroja, pri niektorých zdrojoch je možné použiť natívny dotaz SQL. Tento dotaz môže byť v skutočnosti ľubovoľným platným príkazom vrátane vykonania uloženej procedúry. Ak príkaz vytvorí viacero množín výsledkov, vráti sa len prvá z nich. Parametre možno deklarovať v príkaze, pričom sa odporúča použiť funkciu M Value.NativeQuery . Táto funkcia bola navrhnutá na bezpečné a praktické odovzdanie hodnôt parametrov. Je dôležité vedieť, že mashup modul Power Query nedokáže postupne posunúť nasledujúce kroky dotazu, preto by ste mali do príkazu natívneho dotazu zahrnúť celú logiku transformácie (alebo čo najviac z nej).

    Pri používaní natívnych dotazov SQL je potrebné pamätať na dva dôležité aspekty:

    • V tabuľke modelu DirectQuery musí byť dotazom príkaz SELECT, ktorý nemôže používať bežné výrazy tabuľky (CTE) ani uloženú procedúru.
    • Prírastkové obnovenie nemôže používať natívny dotaz SQL. Mashup modul Power Query by tak prinútil načítať všetky zdrojové riadky a potom použiť filtre na určenie prírastkových zmien.

    Dôležité

    Natívny dotaz SQL potenciálne dokáže viac než len načítať údaje. Je možné vykonať akýkoľvek platný príkaz (prípadne viackrát) vrátane toho, ktorý upravuje alebo odstraňuje údaje. Aplikovaním princípu najmenších oprávnení je dôležité zabezpečiť, aby malo konto používané na prístup k databáze povolenie iba na čítanie požadovaných údajov.

  • Príprava a transformácia údajov v zdroji: Keď zistíte, že určité kroky dotazu Power Query nie je možné postupne posúvať, možno sa budú dať transformácie použiť v zdroji údajov. Transformácie sa môžu dosiahnuť napísaním zobrazenia databázy, ktoré logicky transformuje zdrojové údaje. Údaje tiež možno fyzicky pripraviť a materializovať skôr, ako na ne Power BI vytvorí dotaz. Relačný sklad údajov je skvelým príkladom pripravených údajov, ktorý zvyčajne pozostáva z vopred integrovaných zdrojov údajov organizácie.

Ďalšie informácie o tomto článku nájdete v nasledujúcich zdrojoch: