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í.

25. listopadu 2019

DAX for Analysis Services Multidimensional workaround

I have already write a blog post about existing limitation when using Power BI live connected to Analysis Services Multidimensional here. But recently I found out workaround which used not to work but does work now (and hopefully it will stay this way). But first brief introduction of the business problem
(if you can’t wait just scroll down to workaround part).
Introduction
Analysis Services can be installed in 2 main flavours. Tabular which is used in Power BI backend (first version introduced in Power Pivot for Excel 2010) and Multidimensional much older then that.
Native language of Multidimensional is MDX, native for Tabular is DAX. 
In theory you can query both installation types using both languages and I do use MDX to query tabular a lot when developing Reporting Services reports.
And I also tried the other way around to query Multidimensional with DAX. And it works in management studio.
For approximately 3years I’ve been waiting for option to write custom DAX measures when live connected to SSAS MD.
I thought that something small has to be developed in order to make it work and it is not a priority. After digging deeper and talking to product team I found out it is exactly the opposite case. 
DAX works on tabular structures and Multidimensional structures are just way too different. So some principles like iteration over table in case of SUMX wouldn’t work and doesn’t make sense.
In better cases DAX just wouldn’t work in worse cases it would lead into unpredictable results.
So the team did extra work in order to block it in UI of Power BI Desktop.
But this blocking all DAX leads into cases where you need something simple like Sales in Thousands in Power BI table and you are forced to change calculate script of your enterprise SSAS
model for sake of Power BI report...
And this is unfortunate at least.
Word of caution
But before you’ll apply the workaround just keep in mind that in can lead to incorrect results when using more complex DAX or it simply won’t work.
If it doesn’t work for you don’t blame Microsoft and don’t blame me :)
Workaround
It is rather simple first create blank Power BI workbook connected to SSAS Multidimensional using live connection
If you try to create new measure right click measure group and you can just expand all/collapse all.
(And last few years I was just few minutes before collapse because of this limitation)
Then save the file and publish to Power BI Service. I named it SD_PRD_Main (Shared Dataset PRoDuction Main) PBIX

Then create second blank Power BI file and choose Power BI Dataset as a source
Search the list
Here you go :)
Conclusion
Use it with caution, more complex DAX doesn’t have to work as stated above. But simple stuff like Measure in thousands. Actual vs Target etc... These can be done directly on report level.
This approach has other benefits like having one centralized connection string which can be used in 20-50 and more reports.
So you just change one connection if you need to perform failover to different environment/server.
Only outstanding problem I now have is how to change existing reports in batch to map them from SSAS MD live connection to Power BI Dataset as a source.
I heard it could be possible using Power Shell but I wasn’t able to make it work.

Enjoy your report level calculations. If it doesn’t work for your don’t complain to Microsoft. Because if you do, they could block the feature for good ;)

8. listopadu 2019

Jak obejít omezení Power BI u live connection

Na různých konferencích a přednáškách jsem již mnohokrát říkal, proč používáme ve firmě pro většinu Power BI reportů metodu živého připojení do Analysis Services a proč používáme
Multidimensionální kostky.
Důvody pro živé připojení jsou například počet aktualizací za den, centralizace business logiky pro všechny reporty ze stejné kostky.
U Power BI Pro v neposlední řadě velikost datového modelu (1GB u Pro).
Na druhou stranu tento přístup má i stinné stránky. Dlouhodobě mi u Analysis Services vadila vázanost PBIX reportu na Dataset.
Když jste chtěli přemapovat report na druhý server, museli jste stáhnout PBIX, změnit vevnitř připojení a přenasadit report.
U jednoho reportu z kostky není problém. Ale pokud jich máte 20, 30.. 100 ze stejného datového modelu... Failover ručně dělat nechcete.
Tento problém se dá řešit Power Shellovým skriptem (popíšu někdy příště).
Druhý problém který mi vadí a nad kterým jsem se vyplakal v samostatném článku a pro větší dosah článku raději rovnou v angličtině je nemožnost dělat DAX výpočty u živého připojení do SSAS Multidimensional.
To je problém například v případech, kdy potřebujete měřítko, které už v kostce máte. Například „Částka bez DPH“ a uživatel v reportu chce vidět tu stejnou částku ale v tisících v rozpadu v tabulce.
Momentálně není jiné cesty, než rozšířit calculate skript kostky (korporátního enterprise datového modelu).
A přidat tam kalkulaci, kterou potřebujete do jednoho reportu. To je trochu nepoměr měnit datový model určený pro celou firmu kvůli reportu pro pár uživatelů.
Jaktože to nejde... A nebo?
Ve dnešním článku popíšu jak oba problémy když ne vyřešit, tak aspoň obejít a to bez nutnosti cokoliv skriptovat, nebo programovat.
Kouzlo spočívá ve sdílených datasetech. 
Stačí vytvořit první report s živým připojením do Analysis Services Multidimensional.
Dialog vypadá podobně jako na obrázku
Po pravé straně v seznamu polí když chci přidat novou measure, nemůžu viz další obrázek.
Můžu buď expandovat, nebo kolabovat.
A po pravdě poslední 3 roky jsem byl chvíli před kolapsem pokaždé když se nezobrazovaly správně formáty z kostky, nebo chtěl někdo vidět číslo v 1000
, nebo někdo chtěl něco jednoduchého, co nebylo v kostce.
 
Report ukládám a publikuji do Power BI služby pod názvem SD_PRD_Main. 
SD = Share Dataset 
PRD = Production (jen abych předešel spekulacím)
Vytvořím nový prázdný report a použiji Power BI dataset jako zdroj.
V seznamu datasetů vyberu název reportu z předchozího kroku.
A hle... Tvorba nového měřítka je již možná :)
Závěr

Co jsem tímto získal? Jednak možnost tvořit měřítka nad SSAS Multidimensional živým připojením.
Za druhé centrální bod odkud spravuji připojení do kostky Main.
Kdybych nyní udělal 100 reportů nad datasetem SD_PRD_MAIN, stačilo by změnit tento jeden zdrojový report s datasetem a přemapovat jej na druhý server
místo toho abych přiklikával
jednotky, desítky, stovky reportů :)
Mě tento objev udělal radost, doufám že i Vám. Momentálně stojím před problémem jak přemapovat stávající obsah nad tento sdílený dataset bez nutnosti kopírovat jednotlivé objekty.
Zatím ale narážím buď na možnosti API, nebo své schopnosti v PowerShellu (které jsou velmi omezené). Takže pokud se podařilo někomu v PowerShellu
přemapovat stávající objekty z jednoho typu zdroje na druhý u živého připojení, dejte prosím vědět.

18. září 2019

Záznamy přednášek SQL Server Bootcamp 2019

Na letošním SQL Server Bootcampu jsem měl 3 přednášky v krátkém sledu před odjezdem na dovolenou. Pokud jste se náhodou akce nemohli zůčastit. Nebo jste se akce zůčastnili a chtěli byste si informace připomenout, záznamy ze dvou přednášek jsou již na stránkách WUGu.

Personalizovaný reporting - pojednává zejména o Row Level Security v Power BI a SSAS.
https://www.wug.cz/zaznamy/526-SQL-Server-Bootcamp-2019-Jak-na-personalizovany-reporting

Optimalizace Power BI a SSAS datových modelů - má řekl bych samopopisný název :) Dozvíte se něco o tom, jak funguje vertipaq engine a jak využít znalosti ve svůj prospěch. Stejně tak se dozvíte o nástrojích, které můžete využít pro troubleshooting a ladění
https://www.wug.cz/zaznamy/527-SQL-Server-Bootcamp-2019-Optimalizace-Power-BI-a-SSAS-datovych-modelu
Intradenní reporting - přednáška pojednávala o požadavcích na reporting v průběhu dne. Jak se k tomuto problému postavit s Power BI a SSRS.
https://www.wug.cz/zaznamy/534-SQL-Server-Bootcamp-2019-Intradenni-reporting