Je váš DAX v Power BI už příliš dlouhý na údržbu?
Dvě stě řádků CALCULATE a FILTER není známka pokročilého DAX. Obvykle je to známka toho, že vám datový sklad nikdy nedal klíče, historii ani granularitu, kterou jste potřebovali.
Zní vám to povědomě?
- Jeden measure přerostl sto řádků a rozumí mu jen jeden člověk.
- Vizuály se načítají patnáct až čtyřicet pět sekund, a vždy kvůli stejným třem measures.
- Úprava jednoho measure nenápadně rozbije čtyři vizuály na jiné stránce.
- Píšete DAX, abyste zjistili, jaká hodnota byla loni v březnu, ne jaká je teď.
Dlouhý DAX je jen zřídka problém DAX. Je to struktura, která chyběla výše v řetězci a skládá se znovu v době dotazu, při každém kliknutí.
Co ty dlouhé measures ve skutečnosti dělají
- Rekonstruují historii.
CALCULATEs filtry na datum zastupuje pomalu se měnící dimenzi, kterou datový sklad nikdy neuchovával. - Přemosťují vazby many to many. Iterátory řeší vztah, pro který neexistuje bridge tabulka.
- Nahrazují klíče.
LOOKUPVALUEa spojované textové sloupce, protože chybí surrogate klíč, přes který by šlo tabulky propojit. - Opravují granularitu.
SUMXpřes filtrovanou tabulku, protože tabulka faktů obsahuje dvě granularity najednou.
Všechny čtyři běží pro každý vizuál, každý filtr a každého uživatele. Odtud těch patnáct až čtyřicet pět sekund.
Proč to dopadá na vás
- Nikdo si to nevybral. Každý measure byl ten týden nejkratší cestou k fungujícímu vizuálu.
- Mimo
.pbixnení logika vidět, takže ji nelze zrevidovat ani znovu použít. - Measure přepsat můžete. Dimenzi, kterou potřebuje, přidat nemůžete.
Práce se dělá na špatném místě
- Historie, klíče, bridge tabulky a granularita jsou práce pro datový sklad. V DAX se skládají znovu při každém kliknutí.
- Patří na jedno centrální místo: do datového skladu nebo data hubu, který se postaví jednou a čte z něj každý report.
- Pokud to zní draze, odhad nejspíš počítá s tím, že se datové pipeline budou stavět ručně. Specializovaná automatizační platforma je generuje z modelu, a to mění náklady i čas, který to zabere.
Co se změní, když model přijde hotový
Datavault Builder generuje klíče, historii a granularitu přímo v datovém skladu, na SQL Server, Azure SQL, Synapse, Fabric, Snowflake, Databricks nebo BigQuery.
- Surrogate klíče jsou explicitní, takže vztahy jsou skutečné a
LOOKUPVALUEzmizí. - Point in time tabulky odpoví na otázku “jak to vypadalo v březnu” joinem, ne measure.
- Bridge tabulky vyřeší many to many dřív, než data uvidí Power BI.
- Jedna granularita na tabulku faktů, takže
SUMznamená přesně to, co říká. - Measures se zkrátí na
SUM,AVERAGE,COUNT. Dost krátké na to, aby je kolega zrevidoval.
O co požádat
“Tento measure rekonstruuje historii v době dotazu, protože dimenze není historizovaná. Můžeme v datovém skladu dostat point in time tabulku a pořádné surrogate klíče, aby se z measure stal obyčejný SUM?”
Tím pojmenujete, co chybí, místo abyste jen žádali rychlejší report.
Podívejte se, jak to funguje na vašich vlastních datech
Rezervujte si bezplatné demo a přineste report, se kterým máte největší potíže.
Tři kroky k číslům, která sedí
-
Vytáhněte stávající logiku
Posbírejte výpočty, joiny a filtry, které dnes žijí ve vašich reportech.
-
Centralizujte ji na jednom místě
Logika se jednou přesune do modelu datového skladu, takže každý report čte stejnou definici.
-
Čísla, která sedí
Každý report ukazuje stejné číslo a “odkud se tohle číslo vzalo” má viditelnou odpověď.
Jak Datavault Builder předá vašemu reportu hotový model
-
Model přijde hotový
Datavault Builder generuje vault a star schema tak, aby běžely nativně v databázi, kterou už máte: SQL Server, Azure SQL, Synapse, Fabric, Snowflake, Databricks nebo BigQuery.
-
Práce opustí report
Žádný merge, žádné parsování, žádný fuzzy match. Tato práce z reportu zmizela.
-
Zdroje přicházejí integrované
Zákazníci z ERP, CRM a e-shopu se spárují do jedné sady konformních dimenzí. Join proběhne jednou v datovém skladu, ne znovu v každém reportu.
-
Historie, na kterou se lze dotázat
Každá změna se uchová tak, jak přijde, takže můžete reportovat stav tehdy i stav nyní, i tam, kde zdrojový systém přepisuje vlastní záznamy.
-
Každé číslo má lineage
Logika získá lineage, takže otázka “odkud se tohle číslo vzalo” má viditelnou odpověď.
-
Změny řešené výše v řetězci
Pomalu se měnící dimenze se řeší výše v řetězci jako vault satelity, místo aby se jen aproximovaly.
Příběh zákazníka: Porta
Seznamte se s naším expertem
Dvacet minut s naším obchodním ředitelem a upřímná odpověď, zda se to hodí do vaší situace.
Matt Collett
Sales Director
Skvělé, vyberte si vyhovující termín:
Další problémy, které tato série řeší
-
Ukazují vaše Power BI reporty pro stejnou věc různá čísla?
Finance, Obchod i Provoz si každý postavili vlastní sémantický model a každý z nich je vnitřně konzistentní. Definice nebyly špatně na jednom místě. Nebyly dohodnuté nikde.
-
Je váš Power BI report v DirectQuery pomalý při každém kliknutí?
DirectQuery a Direct Lake slibují živá data. Dostanete třicetisekundový vizuál a účet za výpočetní výkon, který nikdo nechce vysvětlovat. Problém není v režimu. Je ve schématu pod ním.
-
Selhává vám refresh v Power BI každou noc?
Naplánovaný refresh skončí timeoutem, Power Query dojde paměť a vy se to dozvíte, až když někdo otevře dashboard. Příčinou téměř nikdy není Power BI. Je to práce, kterou po Power BI chcete.