11. července 2024

Řešení problému Default membara

 V minulém článku jsem Vám (kdo jste ještě neznali) představil Calculation Groups http://www.neoral.cz/2024/07/calculation-groups.html

Na ty nyní navážeme s řešením dalšího problému. Některé faktové záznamy jsou verzovány a seskupování více verzí dohromady nedává smysl. V bývalé firmě (Dixons) například byl verzovaný plán. Na začátku roku plán od prvního do dvanáctého měsíce, po prvních 4 měsících zpřesněný plán 5-12. Po dalších 4 měsících třetí zpřesněná verze 8-12. Pokud byste porovnávali ve dvanáctém měsíci aktuál vs plán a neřešili verzi plánu, máte problém. 

V multidimenzionálních kostkách se tento problém dal řeši natavením tzv. default membera. V Power BI a Tabularu si můžeme opět pomoci Calculation Group. 

Nasimulujeme si opět nad demo databází Adventure Works DW

Souhrny přes produkt a přes časovou osu vypadají smysluplně, nicméně přes měnu to vypadá, že sčítáme jablka s hruškami. Internetové prodeje USD+AUD+... = 29milionů.
Chtěl bych zobrazit hodnoty pro všechny metriky v dané měně, pokud je měna vybraná, nebo pokud se jedná o souhrn vícero měn, zobrazit čísla v dolarech.

V model view přidám new calculation group. Tu přejmenuji jako Default currency a do Počítané položky Default currency napíši následující výraz

Počítanou položku poté stačí použít v sekci filter všech stránek a zaškrtnout.


Závěr

Ukázali jsme si další scénář využití calculation groups. Tentokrát pro nastavení defaultu pro neagregovatelné položky.


4. července 2024

Calculation Groups

Když jsem někdy kolem roku 2016 stál v bývalé firmě jako BI datový architekt před strategickým rozhodnutím, jestli pro nové BI řešení použí SQL Server Analysis Services v Multidimenzionálním provedení, nebo použít Tabular. Chyběly v té době v Tabularu některé funkce. Jako největší nedostatek jsem považoval nemožnost použít calculate skript pro výpočty uložené v dimenzi.

Tento nedostatek byl odbourán v SQL Serveru 2019 a máme je již nějakou dobu i v Power BI. Dříve bylo potřeba použít k jejich nastavení Tabular Editor, nyní je možno je spravovat přes modelové zobrazení v Power BI Desktopu.

Nejčastější scénář, byť ne jediný, kde se dají použít calculation groups jsou časové kalkulace.

Představte si, že máte v modelu 3 základní metriky

Výpočet předchozího roku pro Internetové prodeje by mohl vypadat následovně
Kdybychom chtěli pro tři vstupní metriky spočítat předchozí rok, měli bychom 3 počtítané členy. Když by bylo potřeba ještě variance proti předchozímu roku, varianci v % a kumulovaný souhrn, nastává explozivní nárůst počtu počítaných členů z bázových metrik. 3 vstupní a jejich 4 (LY,VLY,VLY%, YTD) časové variance a jsme hned na 15 measures v datovém modelu.
Tento problém jsme schopni elegantně vyřešit s calculation groups.
Přepneme se do model view

Pravé tlačítko na calculation groups, vytvořit novou. Dostaneme varování před používáním implicitních measures (že se se sloupec sám sesumuje při zaškrtnutí číselného sloupečku, správně je používat measures pojmenované/explicitní definované v modelu).
Vznikne nová počítaná položka, kterou pojmenuji Actual a bude se odkazovat na funkci SELECTEDMEASURE() která je takovým chameleonem podle toho, co je aktuálně vybrané v Power BI vizualizaci.
Nová počítaná položka pro výpočet předchozího roku se může odkazovat místo explicitního názvu measure právě na SELECTEDMEASURE(), jinak je syntaxe stejná. 

Variance proti předchozímu roku by mohla vypadat následovně.
Procentuální variance s možností přepsat pro procenta format string

Následovně by mohl vypadat výstup s použitím calculation groups na sloupcích ve vizuálu Matrix. Dá se ale použít i jako Slicer a v podstatě všude možně.
Závěr
Calculation groups se dají použít kdekoliv, kde máte opakovatelný pattern, jen metrika se mění. Dalo by se přirovnat k počítané položce v Excelu, případně počítanému členu v SSAS Multidimenzional. Hezký a častý scénář jsou časové kalkulace. Nicméně tam použití Calculation Groups nekoknčí.Příště si ukážeme například jak řešit problém "defaultního membera".











27. června 2024

Dynamické reporty s výběrem zobrazené metriky

 Na tohle téma jsem několikrát přednášel na různých konferencích a stejně tak tento přístup používám na školeních. Protože používám blog i jako referenční materiál, rozhodl jsem se nyní sepsat.

Často se dostávám požadavky od byznysu, aby v reportu kde jsou stejné grafy, tabulky a layout šlo přepínat metriku jako slicer. Výhodou by bylo, že bych nemusel dělat duplicitní stránky a v případě změnových požadavků tyto stránky všechny měnit.

Ukážeme si na demo databázi Adventure Works (jak jinak).

Na začátku mám 3 metriky








Začneme nenavázanou dimenzí, která bude plnit slicer pro výběr metriky. V Power BI desktopu ji můžeme získat nejjednodušeji pomocí metody „Enter data“









Sloupeček ID pro výběr defaultu a Metrika pro uživatelský popis.
Napíši dynamickou metriku. We switchi používám minimum. Tzn. Když nebude vybrané nic. Aplikuje se minimum. Tedy „Internet“. Jinak vybraná metrika zobrazí to, co je použito ve Sliceru.
















Pokud se nesnažíte kombinovat metriky s různými formáty, máte to jednoduché. Problém by nastal při snaze kombinovat například měnu s procenty.














V Power BI by se dal použít dynamický formát čísla

















Závěr

V blogu jsme si popsali, jak moci dynamicky přepínat zobrazenou metriku v Power BI reportu a vyřešit problémy s formátováním.

2. února 2023

Power BI Otevřená data

Na posledním dílu Power BI Kafíčka, což je podcast který mám dohromady se Štěpánem Rešlem, jsme si přizvali jako posilu experta na zpracování otevřených dat Karla Rejthara. Což je stejně jako Štěpán a já Power BI MVP. Trošičku se nám v diskuzi rozjelo množství linků na různé zdroje otevřených dat. Je toho tolik, že by se to snad ani nevešlo do popisku u podcastu. Rozhodl jsem se tedy po dlouhé době opět napsat blogísek, kde tyhle linky zveřejním.

Ale popořadě, pokud náš podcast Power BI Kafíčko neznáte, je to neformální diskuze přes MS Teams na různá Power BI témata. Pokud byste se chtěli s námi potkat, stačí mi napsat email na můj mail ve tvaru jmeno@prijmeni.cz a já přepošlu pozvánku. Další meeting nás čeká ve 13 hodin 16.2.2023

 Díly minulé včetně otevřených dat (až bude sestříháno) si můžete poslechnout buď na Spotify nebo na Apple podcast

A nyní už linky od Karla a Štěpána, které v podcastu zazněly

Český statistický úřad | ČSÚ (czso.cz)

Databáze demografických údajů za obce ČR | ČSÚ (czso.cz)

Úvod | Geoportál hl. m. Prahy (geoportalpraha.cz)

Organizace (praha.eu)

Hlídač státu - Hlídač státu. (hlidacstatu.cz)

data.Brno

DATA.SMARTEDU (maleskoly.info)

Hackathon veřejné správy 4.0 (hackujstat.cz)

Volby 2023 (maleskoly.info)

Okrsková mapa - výsledky prezidentských voleb 2023 - iDNES.cz

The official portal for European data | data.europa.eu

Open Data Science Europe – EU-wide automated mapping system for harmonization of Open Data based on FOSS4G and ML

https://opendata.praha.eu/

https://golemio.cz/data

20. října 2021

Co může Power BI nabídnout koncovému uživateli a jak začít

Před začátkem Covidu jsem měl ambici dát dohromady kompletní Power BI elearning a nabízet ho jako placenou službu včetně nějaké formy pravidelného mentoringu. Nicméně člověk míní a život mění. Změnil se mi částečně život, částečně priority a prostě jsem to tak nějak nedotáhl do konce. I když modulů jsem dal dohromady více, než to co tu dnes zveřejňuji. Přišlo mi škoda hodit vložený čas a úsilí do kanálu. Možná toho zpřístupním víc, uvidím časem i na základě vašich zpětných vazeb (tak mi třeba napište pokud líbí, ale klidně i že nelíbí a že obsah zadarmo nemám dělat-ušetříte mi práci)

Pokud potřebujete seznámit koncového uživatele s tím, co Power BI služba a ekosystém nabízí. Můžete následující seznamovací videa použít. Něco se samozřejmně od doby natáčení ve službě, desktopu i licencování změnilo, tak to berte s rezervou. A pokud bych se odkazoval na kurz, tak reference ignorujte


1. Úvod https://youtu.be/jKUlVHUM7x0

2. Dashboardy https://youtu.be/z3_0QPeJN_Q

3. Mobilní appka pro Android https://youtu.be/qLyIq9FTQ08

4. Mobilní appka pro Windows https://youtu.be/2Mre4TDbM8M

5. Nesehnal jsem jabko, abych to nahrál :)

6. Licencování https://youtu.be/Uqb5vp1-jSw

7. Typy reportů https://youtu.be/rT2N81RYHSw

8. Registrace do služby, abyste mohli začít https://youtu.be/hNwq34m3Yd0

31. ledna 2020

Power BI a PowerShell


Když jsem se zamýšlel o čem napsat další blog post, odpověď byla zřejmá. Nejlepší bude popsat to s čím se opět “trápím” v práci. Protože když to řeším já, tak pravděpodobně i někdo další. Slovy jednoho kolegy: “Co je účelem tohohle cvičení?” Proč Power BI a PowerShell?
Některá funkcionalita Power BI služby je nedostupná přes uživatelské rozhraní, ale je zatím dostupná přes programové API. Obvzláště pokud se jedná o správu služby, reportů, datasetů a tak dále.
Vývoj na této straně probíhá ve stylu napřed zpřístupnit funkcionalitu přes API, pak zjednodušit pro správce a uživatele přes PowerShell a pak možná někdy (pokud vůbec) se to dostane do UI (uživatelské rozhraní).
Na rovinu, PowerShell se učím a je to pro mě výstup mimo komfortní zónu. Nicméně v poslední době jsem potřeboval řešit například tyto úlohy.
Automatické přepnutí datasetů z jednoho serveru na druhý v době údržby a pak zpět (jde to ručně, ale u více reportů je to tak trochu opruz).
Získání logů o používání Power BI reportů přes celý tenant a nejen Workspace.
A když jsem se pídil po tom jak těchto úloh dosáhnout, byl jsem odkázán na PowerShell. Počáteční “ale fuj” jsem musel nahradit za “asi se to tedy budu muset naučit”
Kdo jste došli do stejné fáze, já jsem k učení základů využil následující kurz na Channel 9
Pro ty už PowerShellem trochu popsané, prvně je potřeba nainstalovat cmdlety pro správu Power BI. Dokumentaci najdete zde
Power BI Management modul nainstalujeme následovně
Install-Module -Name MicrosoftPowerBIMgmt
Jako příklad využití přidávám skript, který projde Power BI logy pro tenant (musíte být Power BI Admin). Interval hledání je od 1.11.2019 do včerejška. Ve smyčce projde datumy po jednom a zavolá
Get-PowerBIActivityEvents cmdlet (ten má omezení na data z jednoho dne, abysme tolik netýrali backend Power BI Service). Uloží aktivity typu “viewreport” do proměnné activities a následně uloží na disk jako json soubor. Logy poté můžete analyzovat klasicky v Power BI Desktopu.
Začátek skriptu
Cls
Login-PowerBI
$mindate = Get-Date "01/11/2019"
$maxdate = Get-Date
$maxdate = $maxdate.AddDays(-1)

for ($i =  $mindate; $i -lt $maxdate; $i=$i.AddDays(1))
{$i.ToShortDateString()
$date = $i.ToString("yyyy-MM-dd")
$filename = "D:\jiri_data\activities_" + $date + ".json"
$dateStart = $date + "T00:00:00"
$dateEnd = $date + "T23:59:59"
$activities = Get-PowerBIActivityEvents -StartDateTime $dateStart -EndDateTime $dateEnd -ActivityType viewreport -ResultType JsonString
$activities | Out-File -FilePath $filename
}

Konec skriptu
Pro všechny malicherné byrokratické hnidopichy tam venku (ano, mám na mysli i A.J.Rimmera), vím že by se to dalo zapsat jednoduššeji a úsporněji, to není nic nového :)
Má to ale i druhou vadu na kráse, funkční. Login-PowerBI cmdlet vyhodí přihlašovací okénko pro přihlášení do služby. To značně omezuje automatizaci přes SQL server agenta. Takže aktuálně se trápím opět mimo svou komfortní zónu s registrací Power BI app a narážím na nedostatečná práva v rámci Azure portálu.
Kdo máte tohle prokopnuté a byli byste ochotni se podělit o řešení, napište mi prosím email. Díky :)
Závěr
Tohle je jen jeden z případů využití PowerShellu v kombinaci s Power BI službou. Odpověď “použij PowerShell, tam to jde” jsem slyšel/četl od produktového týmu víckrát, než je mi milé. Přece jen já jsem převážně BI architekt a vývojář a ne správce služeb. Pokud Vám skript nefunguje, můžu Vás ujistit, že mě ano. Možná nemáte dostatečná oprávnění na Power BI službu, může to být i něco jiného.

27. prosince 2019

Záznam přednášky - Power BI vše, co nejen začátečník potřebuje vědět

Záznam přednášky z WUGu
Přednáška je určená primárně lidem, kteří Power BI svět objevují, ale přijdou si na své i pokročilejší uživatelé. Začneme terminologií a budeme postupovat tvorbou reportu pozpátku od prezentační vrstvy (vizuální možnosti) přes tvorbu výpočtů a datového modelu, až po načítání dat. Dále se podíváme na optimalizaci řešení, administraci a možnosti sdílení.