Prehľad vyhodnocovania dotazov a postupného posúvania dotazov v doplnku Power Query

Tento článok poskytuje základný prehľad o tom, ako sa dotazy jazyka M spracúvajú a premiešajú na žiadosti o zdroj údajov.

Skript jazyka Power Query M

Akýkoľvek dotaz vytvorený doplnok Power Query, ktorý ste manuálne napísali v rozšírenom editore alebo zadali pomocou prázdneho dokumentu, pozostáva z funkcií a syntaxe v jazyku vzorcov Power Query M. Tento dotaz interpretuje a vyhodnotí nástroj Power Query s cieľom vytvoriť jeho výsledky. M skript slúži ako množina pokynov potrebných na vyhodnotenie dotazu.

Prepitné

M skript si môžete predstaviť ako recept, ktorý popisuje, ako pripraviť údaje.

Najbežnejší spôsob vytvorenia M skriptu je pomocou editora Power Query. Keď sa napríklad pripojíte k zdroju údajov, ako je napríklad databáza SQL Servera, na pravej strane obrazovky sa zobrazí časť s názvom Použité kroky. V tejto časti sa zobrazujú všetky kroky alebo transformácie použité vo vašom dotaze. V tomto zmysle editor Power Query slúži ako rozhranie, ktoré vám pomôže vytvoriť vhodný M skript pre transformácie, ktoré sa používajú, a zaistí, že kód, ktorý používate, je platný.

Poznámka

Skript jazyka M sa používa v editore Power Query takto:

  • Zobrazí dotaz ako rad krokov a umožní vytvorenie alebo úpravu nových krokov.
  • Zobrazenie diagramu.

Obrázok použitých krokov a zobrazenia ukážky údajov.

Na predchádzajúcom obrázku sa zdôrazňuje časť Použité kroky, ktorá obsahuje nasledujúce kroky:

  • Zdroj: Vytvorí pripojenie k zdroju údajov. V tomto prípade ide o pripojenie k databáze SQL Servera.
  • Navigácia: Prejde na konkrétnu tabuľku v databáze.
  • Odstránené ostatné stĺpce: vyberie, ktoré stĺpce z tabuľky sa majú zachovať.
  • Zoradené riadky: Zoradí tabuľku pomocou jedného alebo viacerých stĺpcov.
  • Udržiavané najvrchnejšie riadky: Filtruje tabuľku tak, aby v hornej časti tabuľky uchovával iba určitý počet riadkov.

Táto množina názvov krokov predstavuje priateľský spôsob zobrazenia M skriptu, ktorý za vás vytvoril Power Query. Existuje niekoľko spôsobov zobrazenia úplného M skriptu. V doplnku Power Query môžete vybrať Rozšírený editor na karte Zobrazenie. Môžete tiež vybrať Rozšírený editor zo skupiny Dotaz na karte Domov. V niektorých verziách doplnku Power Query môžete tiež zmeniť zobrazenie riadka vzorcov tak, aby zobrazoval skript dotazu tým, že prejdete na kartu Zobraziť a v skupine Rozloženie vyberiete položku Skript zobrazenia>skriptu.

Obrázok s celým M skriptom a príslušnými názvami použitých krokov.

Väčšina názvov na table Použité kroky sa tiež používa rovnako ako v M skripte. Kroky dotazu sa nazývajú pomocou identifikátorov v jazyku M. Niekedy sú znaky navyše omotané okolo názvov krokov v jazyku M, ale tieto znaky sa v použitých krokoch nezobrazujú. Príkladom je #"Kept top rows", ktorý je kategorizovaný ako identifikátor v úvodzovkach z dôvodu týchto nadbytočných znakov. Kótovaný identifikátor možno použiť na povolenie akejkoľvek postupnosti nula alebo viacerých znakov Unicode, ktoré sa majú použiť ako identifikátor, vrátane kľúčových slov, prázdnych znakov, komentárov, operátorov a interpunkčných zrnáčovačov. Ďalšie informácie o identifikátoroch v jazyku M nájdete v lexikálnej štruktúre.

Všetky zmeny, ktoré vykonáte v dotaze prostredníctvom editora Power Query, automaticky aktualizujú M skript dotazu. Ak napríklad použijete ako východiskový bod predchádzajúci obrázok, zmeníte názov kroku Udržiavané najvrchnejšie riadky na prvých 20 riadkov, táto zmena sa automaticky aktualizuje v zobrazení skriptu.

Obrázok s použitým názvom kroku zmeneným na prvých 20 riadkov, ktorý tiež aktualizuje M skript.

Na vytvorenie celého alebo väčšiny M skriptu sa odporúča použiť editor Power Query, môžete však pridávať alebo upravovať časti M skriptu manuálne. Ďalšie informácie o jazyku M nájdete na oficiálnej lokalite dokumentov pre jazyk M.

Poznámka

M skript, ktorý sa označuje aj ako kód jazyka M, je výraz používaný pre každý kód, ktorý používa jazyk M. V kontexte tohto článku M skript odkazuje aj na kód nájdený v dotaze Power Query a dostupný prostredníctvom okna rozšíreného editora alebo cez zobrazenie skriptu v riadku vzorcov.

Hodnotenie dotazu v doplnku Power Query

Nasledujúci diagram skúma proces, ktorý nastane pri vyhodnocovaní dotazu v doplnku Power Query.

Diagram vyhodnocovania dotazu ako prehľad.

  1. M skript, ktorý sa nachádza v rozšírenom editore, sa odosiela nástroju Power Query. Súčasťou sú aj ďalšie dôležité informácie, ako sú napríklad poverenia a úrovne ochrany osobných údajov zdrojov údajov.
  2. Power Query určí, ktoré údaje je potrebné extrahovať zo zdroja údajov, a odošle žiadosť do zdroja údajov.
  3. Zdroj údajov reaguje na požiadavku doplnku Power Query prenosom požadovaných údajov do doplnku Power Query.
  4. Doplnok Power Query prijíma prichádzajúce údaje zo zdroja údajov a v prípade potreby vykoná všetky transformácie pomocou nástroja Power Query.
  5. Výsledky odvodené od predchádzajúceho bodu sa načítajú do cieľa.

Poznámka

Zatiaľ čo v tomto príklade sa prezentuje dotaz s databázou SQL ako zdroj údajov, koncept sa vzťahuje na dotazy so zdrojom údajov alebo bez ním.

Keď Power Query prečíta váš M skript, spustí skript prostredníctvom procesu optimalizácie na efektívnejšie vyhodnotenie dotazu. V tomto procese určuje, ktoré kroky (transformácie) z vášho dotazu možno zaťažiť do vášho zdroja údajov. Určuje tiež, ktoré ďalšie kroky je potrebné vyhodnotiť pomocou nástroja Power Query. Tento proces optimalizácie sa nazýva postupné posúvanie dotazov, v rámci ktorého sa power query snaží odoslať do zdroja údajov čo najviac spustení a optimalizovať vykonanie dotazu.

Dôležité

Dodržiavajú sa všetky pravidlá jazyka vzorcov Power Query M (známy aj ako jazyk M). Lenivé hodnotenie hrá počas procesu optimalizácie predovšetkým lenivú rolu. V tomto procese Power Query pochopí, aké konkrétne transformácie z dotazu je potrebné vyhodnotiť. Power Query tiež pochopí, aké ďalšie transformácie nie je potrebné vyhodnocovať, pretože vo výstupe dotazu nie sú potrebné.

Okrem toho, ak je zapojených viacero zdrojov, pri vyhodnocovaní dotazu sa berie do úvahy úroveň ochrany osobných údajov jednotlivých zdrojov údajov. Ďalšie informácie: V zákulisí brány firewall na ochranu osobných údajov

Nasledujúci diagram znázorňujú kroky, ktoré sa konajú v tomto procese optimalizácie.

Diagram hodnotenia dotazu, ktorý vysvetľuje proces optimalizácie.

  1. M skript, ktorý sa nachádza v rozšírenom editore, sa odosiela nástroju Power Query. Dodávajú sa tiež ďalšie dôležité informácie, ako sú napríklad poverenia a úrovne ochrany osobných údajov zdrojov údajov.
  2. Mechanizmus postupného posúvania dotazov odosiela žiadosti o metaúdaje do zdroja údajov s cieľom určiť možnosti zdroja údajov, schémy tabuliek, vzťahy medzi rôznymi tabuľkami v zdroji údajov a ďalšie.
  3. Na základe prijatých metaúdajov mechanizmus skladania dotazov určuje, aké informácie sa majú extrahovať zo zdroja údajov a akú množinu transformácií je potrebné vykonať v nástroji Power Query. Pokyny sa odošlú dvom ďalším komponentom, ktoré sa v prípade potreby postarajú o načítanie údajov zo zdroja údajov a transformáciu prichádzajúcich údajov v nástroji Power Query.
  4. Keď pokyny dostali interné súčasti Power Query, Power Query odošle žiadosť do zdroja údajov pomocou dotazu zdroja údajov.
  5. Zdroj údajov prijme požiadavku zo služby Power Query a prenesie údaje do nástroja Power Query.
  6. Keď sú údaje v doplnku Power Query, transformačný nástroj v doplnku Power Query (známy aj ako mashup modul) vykonáva transformácie, ktoré nebolo možné postupne posúvať späť alebo zaťažovať do zdroja údajov.
  7. Výsledky odvodené od predchádzajúceho bodu sa načítajú do cieľa.

Poznámka

V závislosti od transformácií a zdroja údajov použitého v M skripte Power Query určí, či bude prichádzajúce údaje streamovať alebo do medzipamäte.

Prehľad postupného posúvania dotazov

Cieľom postupného posúvania dotazov je vypnúť alebo odoslať čo najväčšiu časť vyhodnotenia dotazu do zdroja údajov, ktorý dokáže vypočítať transformácie dotazu.

Mechanizmus postupného posúvania dotazov dosahuje tento cieľ prekladom M skriptu do jazyka, ktorý možno interpretovať a spustiť váš zdroj údajov. Potom odošle vyhodnotenie do zdroja údajov a výsledok tohto vyhodnotenia odošle do Power Query.

Táto operácia často poskytuje oveľa rýchlejšie vykonanie dotazu ako extrahovanie všetkých požadovaných údajov zo zdroja údajov a spúšťanie všetkých transformácií požadovaných v nástroji Power Query.

Keď použijete prostredie na získanie údajov, Power Query vás prevedie procesom, ktorý vám nakoniec umožní pripojiť sa k zdroju údajov. Pri tom používa Power Query rad funkcií v jazyku M kategorizovaných ako funkcie prístupu k údajom. Tieto konkrétne funkcie používajú mechanizmy a protokoly na pripojenie k zdroju údajov pomocou jazyka, ktorý zdroj údajov dokáže pochopiť.

Kroky, ktoré nasledujú vo vašom dotaze, sú však kroky alebo transformácie, ktoré sa mechanizmus postupného posúvania dotazov pokúša optimalizovať. Potom skontroluje, či je možné ich zaťažiť do vášho zdroja údajov namiesto toho, aby sa spracovávali pomocou nástroja Power Query.

Dôležité

Všetky funkcie zdroja údajov, ktoré sa bežne zobrazujú ako krok Zdroja dotazu, dotazujú údaje v zdroji údajov v jeho natívnom jazyku. Mechanizmus postupného posúvania dotazov sa využíva pri všetkých transformáciách použitých na váš dotaz po funkcii zdroja údajov, aby ich bolo možné preložiť a skombinovať do jedného dotazu zdroja údajov alebo na ľubovoľný počet transformácií, ktoré možno zaťažiť do zdroja údajov.

V závislosti od štruktúry dotazu môžu existovať tri možné výsledky mechanizmu postupného posúvania dotazov:

  • Úplné postupné posúvanie dotazov: Keď sa všetky transformácie dotazov posunú späť do zdroja údajov a v nástroji Power Query dôjde k minimálnemu spracovaniu.
  • Postupné posúvanie čiastočných dotazov: Keď je v dotaze možné odoslať len niekoľko transformácií, a nie všetky, je možné ich presunúť späť do zdroja údajov. V tomto prípade sa v zdroji údajov vykoná iba podmnožina transformácií a zvyšok transformácií dotazu sa vykoná v nástroji Power Query.
  • Žiadne postupné posúvanie dotazov: Keď dotaz obsahuje transformácie, ktoré sa nedajú preložiť do jazyka natívneho dotazu zdroja údajov, a to buď preto, že transformácie nie sú podporované alebo konektor nepodporuje skladanie dotazov. V tomto prípade získa Power Query nespracované údaje zo zdroja údajov a použije nástroj Power Query na dosiahnutie požadovaného výstupu spracovaním požadovaných transformácií na úrovni nástroja Power Query.

Poznámka

Mechanizmus postupného posúvania dotazov je primárne k dispozícii v konektoroch pre štruktúrované zdroje údajov, ako je napríklad Microsoft SQL Server a informačný kanál OData, ale neobmedzuje sa na ne. Vo fáze optimalizácie môže nástroj niekedy zmeniť poradie krokov v dotaze.

Využitím zdroja údajov, ktorý obsahuje viac prostriedkov na spracovanie a možnosti postupného posúvania dotazov, môžete urýchliť časy načítavania dotazov počas spracovania v zdroji údajov, a nie v nástroji Power Query.

Ďalšie kroky

Podrobné príklady troch možných výsledkov mechanizmu postupného posúvania dotazov nájdete v príkladoch postupného posúvania dotazov.

Informácie o indikátoroch postupného posúvania dotazov na table Použité kroky nájdete v téme Indikátory postupného posúvania dotazov.