Láncolt Power Query lekérdezések kiértékelési folyamata

Egy meglévő Power Query lekérdezés újrahasznosításának legjobb módja, ha behivatkozzuk (Reference) a meglévő táblát. Kevesen tudják azonban, hogy a hivatkozás nem a táblára, hanem a lekérdezésre vonatkozik...

Tegyük fel, hogy egy lekérdezés lekérdezi a pontos időt és eltárolja [A] táblában. Legyen ez az időpont mondjuk 12:00. Ezt követően 12:05-kor lefuttatjuk a [B] lekérdezést, ami lekéri az [A] tábla maximumát. Mit ad vissza a [B] lekérdezés? 

láncolt Power Query lekérdezések kiértékelése

Bizony 12:05-öt. Nem [A] maximumát. [B] ugyanis nem [A] maximumát kérdezi le, hanem [A] lekérdezését futtatja ami az aktuális időt kérdezi le!

[A] táblába tehát 12:00 kerül, [B] táblába (ami [A] maximumát kérdezi le) pedig 12:05...

A Power Query tehát nem igazán tud újrahasznosítani egy már elkészített táblát. Van a Power Query-nek belső cache-e, de az a forrást cache-eli, nem a lekérdezés eredményét. A Table.Buffer()-rel építhet saját cache-t, de az csak a saját lekérdezésen belül tudja használni, mert nem perzisztálódik.

Összefoglalva: Amikor a Power Query lekérdez egy másik Power Query táblát, akkor a tábla mögötti lekérdezést futtatja, nem a tábla aktuális értékét kérdezi le. Az üzleti felhasználóknak ez így logikus, hiszen az "Excel is így csinálja": Amikor egy Excel cella hivatkozik egy másik cellára, amelyik képletet tartalmaz, akkor az Excel újra kiszámolja a képletet tartalmazó cellát, nem az abban látott értéket kérdezi le. De az IT oldalról érkezőknek ez új. Ők máshogy gondolkodnak, nem értik, hogy „miért számolja ki újra, amikor már egyszer kiszámolta...”  

Kővári Attila - BI projekt

POWER BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jöjjön el a 2022. január 26.-i Power BI workshopra vagy rendeljen kihelyezett képzést! Részletek >>

 

Önkiszolgáló BI WORKSHOP

Tudjon meg többet az itt elhangzottakról! Jelentkezzen a 2022. január 27-28.-i Excel Power Pivot videókurzusra!  Részletek >>

 

Új hozzászólás