11. října 2016

Different approach to Dynamic Row Level Security

There were already written few blog posts both about Row Level Security. I would like to add one more about this topic. I use this pattern for several years in SQL Server Analysis Services. Biggest advantage of this approach is, that you don’t have to fight with table relationships, which can be sometimes tricky to make work correctly.
To follow with steps, you can download sample file, which uses Adventure Works Sample Data.
File can be downloaded here:
https://drive.google.com/file/d/0B9ZohZ1CALKZOFZBRG9YZERWakk/view?usp=sharing
Introduction
Let’s have a look at the report and scenario. Adventure Works sales products, that are grouped to categories. Common requirement is to limit data in report, so category manager would see just his/her category. So if I want to grant access just to “Bikes” I could write DAX row filter
DAX formula:
[Category] = “Bikes”
This could work for few categories. But if you have 40. Role membership would be hard to maintain. Same thing can be handled by one role using configuration table.
Solution
For purpose of blog post, I will enter data manually using “Enter Data” option. You can replace data in table with real user names and email addresses. In real life I use for this configuration SQL Server Master Data Services, but any table would do.
Table security can stay unrelated


What I’ll need is to create calculated column to DimProduct table. Let’s call it Security_Category using function lookupvalue searching in security configuration table.
DAX formula
Security_Category = LOOKUPVALUE(security_mapping[CATEGORY],security_mapping[CATEGORY],[Category],security_mapping[USER],"domain\username")
first column is the value I want to return, second is searched column, third value I want to find, fourth second column to be searched, fifth value.
Arguments 4,5 are here to restrict access to particular user if we had multiple users in same configuration table.
DAX filter needs to be evaluated as true value. I can check if anything was found by function ISBLANK function
DAX formula
Security_Category = ISBLANK(LOOKUPVALUE(security_mapping[CATEGORY],security_mapping[CATEGORY],[Category],security_mapping[USER],"domain\username"))
Formula returns now true, where records weren’t found. I need it oppositely and can switch logical value using function NOT
DAX formula
Security_Category = NOT(ISBLANK(LOOKUPVALUE(security_mapping[CATEGORY],security_mapping[CATEGORY],[Category],security_mapping[USER],"domain\username")))
As next step I can create new role Dynamic Security in Power BI desktop and apply Row Filter on DimProduct table referencing calculated column with formula from previous step.
I can check what if visible to role members using View as role Dynamic Security.
To make it really dynamic, I will replace static value “domain\username” with function USERNAME() in formula.
DAX formula:
Security_Category = NOT(ISBLANK(LOOKUPVALUE(security_mapping[CATEGORY],security_mapping[CATEGORY],[Category],security_mapping[USER],USERNAME())))
Function USERNAME behaves differently in desktop where it returns username in format “domain\username” and when published to powerbi.com where it returns email address username@domain.com
Therefore before publihing replace column USER with column EMAIL in DAX formula
Security_Category = NOT(ISBLANK(LOOKUPVALUE(security_mapping[CATEGORY],security_mapping[CATEGORY],[Category],security_mapping[EMAIL],USERNAME())))
Conclusion
In this blog post I covered how to implement dynamic security in Power BI without relationships in data model using DAX formulas. Let me know if you have any questions or comments

Jiri

3. října 2016

Power BI - update červenec, srpen, září 2016

Power BI – Update červenec až září 2016
Po prázdninové odmlce jsem zpátky s novinkami ze světa Power BI. Byť některé novinky jsou už 3 měsíce staré. Jsou to potom ještě novinky? Z pohledu tempa Power BI možná ne, ale jak píši v minulé větě. Udělal jsem si prázdniny a nejen já. Dnešní článek bude možná vypadat trochu víc jako telefonní seznam nových vlastností. Na zajímavé věci se zkusím zaměřit později v samostatném článku. Power BI oslavilo rok a pokusím se zásadní věci které přibyly, nebo byly oznámeny vypíchnout v závěru článku.
Takže co nového v desktopu?
Formátování/zobrazení reportu
Předdefinované stavy tabulek – podobně jako „formátovat jako tabulku“ v MS Excel
ShapeMap – komponenta umožňuje zobrazit i vlastní mapový podklad
Drilování v čarovém grafu (line chart) – v minulosti uměl pouze sloupcový graf
Spojitá osa pro datum – nejen zobrazení hodnot, které máte v datech
Předdefinované styly pro matrix
Změna pořadí polí a popisků v grafech
ArcGIS mapy pro Power BI (září)
Mobilní rozložení reportu (září) – tohle vypadá zajímavě, dříve jsme mohli editovat jen zobrazení reportu na PC. Mobilní optimalizace podobně jako v Datazenu přijde vhod.
Konektivita
Konektory ke zdrojům přibývají. Vcelku by mě zajímalo, jak hojně některé konektory budou využívány. Jmenovitě
Amazon Redshift
Impala
Snowflake
Konektor pro Web se dočkal vylepšení – před načtením lze zobrazit náhled jednotlivých sekcí/stránek ještě před načtením
ProjectPlace
Oracle – zlepšení výkonu pro náhled na data
OData – podpora výběru propojených tabulek v relaci
Editace dotazu
Podpora pro R scripty jako transformaci (dřív jen R vizualizace a zdroj)
Výstup dotazu jako povolené hodnoty pro parametry
Možnost přepsat uživatelsky definované funkce
Možnost provést transformace Merge/Append jako nový dotaz
Auto recovery souborů – velmi důležité, podzim je tu a Desktop padá. Můžete zvednout svou neuloženou práci, jupí.
Zobrazení návazností dotazů – může se hodit, pokud toho máte v Desktopu více.
Zobrazení chyb při načítání – zobrazí se detailnější informace u „buňkových“ chyb. Jako počet načtených řádků.
Transformace – konverze sloupce tabulky na list. Já to zatím vždy používal obráceně, ale možná se může hodit.
Novinky v desktopu linky:
Service
Datově řízené alerty – hodnota KPI překročí hodnotu, dostanete notifikaci
Row Level Security – přesun definice do Desktopu. V service zůstává pouze správa členství v rolích. Analýza dat v Excelu je možná i nad datasetem s RLS.
Analýza v Excelu – možnost analyzovat on premises SSAS data přes Excel.
Administrátoři můžou nastavit, zda analýza on premises SSAS dat bude vůbec možná.
Power BI Auditing
Power BI Enterprise Gateway a Personal Gateway se sloučily do Data Gateway – jedna instalačka, která vládne všem a nejen Power BI (například i Power Apps)
Možnosti analýzy
Forecasting – otestuji do samostatného blogu
R skripty lze propojit s vlastním IDE (RStudio či jiné)
Komunita ve světě
Byl spuštěn komunitní blog o Power BI, kde komunita píše články sama sobě. Asi se taky o časem o nějaký ten článek podělím :) http://community.powerbi.com/t5/Community-Blog/bg-p/community_blog
Dále byla spuštěna galerie příběhů dat. Aneb pro inspiraci můžete kouknout, jaké reporty vytvořili jiní, nebo se o vlastní výtvor podělit. http://community.powerbi.com/t5/Data-Stories-Gallery/bd-p/DataStoriesGallery
R Galerie – hotová řešení v R a Power BI, tohle je určitě na samostatný článek http://community.powerbi.com/t5/R-Script-Showcase/bd-p/RVisuals
Komunita v ČR
V České republice proběhnul SQL Bootcamp zaměřený hlavně na SQL Server, ale v pár přednáškách jsem se Power BI lehce dotknul. Jmenovitě jsem přednášel o tipech a tricích v reporting services, úvodu do Analytických služeb co nezapomenout při tvorbě modelu. Podívali jsme se také na Úvod do jazyka R nejen v SQL Serveru, kde cílem přednášky bylo ukázat účastníkům, o co jde. Aby měli představu, jestli se jedná o oblast, kterou pro ně má smysl se zabývat.
Chystají se akce následující. Již o tomto víkendu WUG Days http://www.wug.cz/brno/akce/836-WUG-Days-2016 Akce pro IT profesionály zdarma. Přednáším o Power BI a mých praktických zkušenostech. Produkt hodný, zlý a ošklivý :) Akci také sponzoruje můj zaměstnavatel, a díky tomu se můžete těšit na nealko nápoje včetně nealko piva. Dojde také na soutěž o hodnotnou poukázku do eshopu. Otázku jsem vymýšlel já, a můžu Vám jako věrným čtenářům blogu prozdradit, že tématem je Power BI :)
Dále se chystají dvě přednášky na české PUG v rámci WUG online. Čekají nás Time patterns v DAX v podání Luboše Bednáře již 11.10. http://www.wug.cz/online/akce/878-Power-BI-Time-patterns. Poté 1.11 dojde řada na mě a přípravu dat v Power Query a Power BI Desktopu.
Jaké Power BI téma zajímá Vás, chtěli byste si dát přednášku online o Power BI? Napište mi. Případně se zapojte do diskuze na české PUG (Power BI User Group) přímo v komunitním fóru u produktu, ať to v našem českém a slovenském rybníce trochu oživíme  http://www.meetup.com/CZBISQLPASS/
Závěr
Novinek v produktu jsou opět kvanta, ale upřímně poslední 3 měsíce pro mě byly v čekání trochu studenou sprchou. Byť to co bylo přidáno je mnohdy pěkné, to co chybí cítím daleko výrazněji. Konektory na zdroj XY (ať už se jedná o SnowFlake, nebo Impalu) nevyváží to, že nejde stále formátovat popisky os v grafu. Nebo tvorbu measures nad SSAS live connection. A ať mi nikdo netvrdí, že záleží hlavně na hlasech na user voice. Snowflake jsem tam neviděl vůbec, impalu jen minimálně. Ale chápu, asi jiný tým... Největší špička v roce za rohem (Black Friday) a ty vlastnosti, které blokovaly kloudnou práci s produktem (počet aktualizací, nemožnost udělat live connectiona nad ním measure proti SSAS) trvají. Takže mě čekají workaroundy. Ale alespoň už vím, do čeho jdu :)
Jedno velké oznámení padlo na konferenci MS Ignite a nechal jsem si jej do závěru článku. Na Ignite bylo prezentováno první demo Power BI on premises jako součást reporting services. Bude to k dispozici, až to bude hotové :) To není úplně úzký časový údaj, ale  na video se můžete podívat zde https://t.co/S6JFXzYk9B. Jinými slovy, zavrhli jste Power BI, že Vám cloud ve firmě nikdy nedovolí? Už se dočkáme i SSRS do každé rodiny :) A tímto se pro dnešek loučím.






15. července 2016

Power BI – co je ve verzi zdarma a za co naopak zaplatíte

Power BI funguje v režimu „freemium“. Základ zdarma, „příplatková výbava“ za drobný poplatek kolem 10 $ za měsíc. Byť 10 $ není zase tak moc, pokud řešíte reporting zdarma pro klienty/partnery/kohokoliv. Nemusí být ve vašich silách, zájmech všechny tyto uživatele zalicencovat. Otázka tedy zní: Za které funkce musíme platit?
Berte to tak, že co není v následujícím výčtu funkcí s komentáři je „asi“ zdarma.
Naopak reporty a dashboardy, které se připojují pouze k následujícímu obsahu budou fungovat zdarma i free uživatelům.
  • Dashboardy připojené na content packy služeb jako: Google Analytics, Dynamics CRM, Salesforce
  • Dashboardy a reporty s daty importovanými ze souborů jako Excelové listy, PBIX, CSV.
Závěr

Power BI funguje v režimu freemium. V základu zdarma, pokud to s Power BI pro reporting ale myslíte vážně, skončíte pravděpodobně na placené verzi. Prvek který limituje nejvíce je připojení na on-premises datové zdroje přes Power BI Gateway. Oficiální dokumentaci najdete zde https://powerbi.microsoft.com/en-us/documentation/powerbi-power-bi-pro-content-what-is-it/

12. července 2016

Power BI - Workspaces & sdílení obsahu a správy

V každém reportovacím nástroji je potřeba se dělit jednak o obsah (reporty, dashboardy), ale také je vhodno podělit se o správu řešení s kolegy. Aby když vy nemůžete kolega mohl report po úpravě přepsat, nebo jen ručně aktualizovat data. S tímto jsme v minulosti měli ve firmě trochu problém, jak jsem psal v článku zkušenost s praktickým nasazením (http://www.neoral.cz/2015/11/power-bi-zkusenost-z-praktickeho.html). V té době jsme narazili na omezení importu na 8 denně, jejich nespolehlivost (časování nebylo přesné, záleželo na vytížení služby). Přitom požadavek na aktualizaci byl, aktualizovat data po hodině. Teď už asi těžko kde dohledám, jestli jsem v té době o Power BI Workspaces jen nevěděl, nebo ještě nebyly. Každopádně v době největší špičky jsem musel nasdílet šéfové a team leadrovi heslo, aby mohli ručně aktualizovat data, když já nebudu moct. A to má velmi daleko ke značce „ideál“. Power BI Workspaces tohle řeší, tak se na ně pojďme podívat.
Workspace / pracovní prostor bych přirovnal k ně
Create workspace
Publish
Prepnuti
Vidi
Nevidi dataset
Tvorba content packu
Po prepnuti na can edit vidi i dataset a muze dat take over

Musi znovu zadat credentials

1. července 2016

Power BI – update červen 2016

Další měsíc za ními a s ním i další update pro Power BI desktop a Mobilní aplikaci, přibyly také nové vlastní vizualizace. V době psaní tohoto článku zatím nevyšel oficiální blog, co nového v Power BI Service (nebo jsem přehlédnul). Navíc ale přidám co nového v české Power BI komunitě. Od květnového updatu jsem nestihl napsat další článek po 14 denním výpadku způsobeném úrazem. Nicméně kromě dalších online přednášek a blogů o novinkách přemýšlím nad Power BI tutorialem v češtině. Pokud se vám tento nápad líbí a ocenili byste jej, zanechte komentář, nebo mi napište email, že to dává smysl. Přece jen se jedná o výzvu, když se nástroj mění rapidním tempem pod rukami, takže si nejsem s nápadem úplně stoprocentně jistý.
Desktop
Nová vizualizace Shape Map (Preview), tato je určená pro relativní porovnání regionů mezi sebou. Narozdíl od mapy, která je tam už delší dobu, která zobrazí přesný bod formou bubliny.. Je to postaveno na ESRI-TopoJSON mapách a nejblíž to má asi k mapám v reporting services, pokud náhodou znáte.
Vyhledávání ve Sliceru, určitě užitečná záležitost, zvlášť pokud máte hodně položek ve Sliceru. Tohle šlo předtím dělat pouze díky vlastní vizualizaci.
Datové popisky ve spojnicovém grafu, můžete definovat jak hustě vypisovat. V minulosti se popisky dost často překrývaly.
Row Level Security přímo v desktopu i s možností testování
O RLS v Power BI Service jsem psal zde http://www.neoral.cz/2016/06/power-bi-update-kveten-2016.html
Trochu mi chybí intellisense v DAXech.
Konektor pro Azure Enterprise mezi online zdroji. Můžete dělat reporty nad „jak utrácíte za Azure“.
Vylepšené konektory pro SAP Hana a SAP BW (Parametrizace, hierarchie).
Vylepšený konektor pro Access (při načítání dat připojení souvisejících tabulek).
Tvorba nových parametrů přímo v dialozích kde se dají parametry použít
Při načítání dat možnost vynutit názvy kroků v angličtině (doteď byly a defaultně jsou lokalizované v závislosti jestli máte nainstalovaný CZ, EN, nebo jiný Power BI desktop. Kroky můžete také anotovat.
Nové transformace pro práci s datumy a časem extract Week Day a MonthName. Ať přímo na místě (nahrazení původního sloupce), nebo jako nový sloupec.
Mobilní aplikace
Mapy na iOS zařízeních Vám jsou schopny zazoomovat dle vaší fyzické lokace. Vylepšená čtšečka QR kódů https://powerbi.microsoft.com/mediahandler/blog/media/PowerBI/blog/69719b59-6af3-42b7-aa07-55ae60979f36.gif  a čtečka čarových kódů https://powerbi.microsoft.com/mediahandler/blog/media/PowerBI/blog/4b46f862-444b-4ba0-8f9f-c3b60aed72b6.gif
Došlo také k vylepšení slicerů na mobilním zařízení (jednopoložkový slicer vs výběr všeho). Nové notifikační centrum z Power BI service na mobilu. Pokud nadefinujete datové alerty, uvidíte je zde.
Česká komunita
Díky WUGu jsme uspořádali druhý online meeting tentokrát s důrazem na to, aby vše proběhlo technicky bez problémů. A povedlo se. Na záznam přednášky Power BI a Excel se můžete podívat buď na Channel 9 https://channel9.msdn.com/Events/Czech-Devs/Power-BI-a-Excel, nebo si jej stáhnout ze stránek WUGu http://www.wug.cz/zaznamy/324-Power-BI-a-Excel  (kde si jej samozřejmně taky můžete prohlédnout).
Českou komunitu najdete taky jako oficiální Power BI User Group mezi User Groups na webu Power BI, nechybí fórum, vystavuji zde chystané eventy a můžete tu komunikovat s ostatními Power BI nadšenci http://community.powerbi.com/t5/Czech-Power-BI-User-Group/gp-p/CzechBISQLPASS
Na WUGu chystáme další Webináře, oslovil jsem několik potenciálních přednášejících, a už mi i jeden potvrdil. Tak se můžete těšit i na webináře od jiných lidí.
Závěr
Nová nadílka od Power BI teamu a také rostoucí česká komunita, která je stále aktivnější. Co víc si před nadcházejícími prázninami přát :) Do komentářů, nebo mailu mi prosím napište co vy na Power BI tutorial a kam byste rádi směřovali WUG online zaměřený na Power BI. Jaká témata byste rádi viděli a pro odvážné i jaká témata byste rádi prezentovali. Klidně to může být i na téma, co jste v Power BI vytvořili a co Vám dalo/vzalo. Moje přednáška na TechEdu v Praze, který se konal už nějakou dobu zpátky (hodnocení jsem se dozvěděl teprve teď) skončila moje přednáška o Power BI v hodnocení účastníku 6 ze 76 přednášek cekem, na poslední online meeting bylo přihlášených opět přes 100 lidí. Beru tedy, že se jedná o téma, které vás baví a zajímá. Mě taky a i proto se mu budu věnovat dál. Díky za přízeň


6. června 2016

Power BI – update květen 2016

Zdá se to být jako chvíle od dubnové aktualizace http://www.neoral.cz/2016/05/power-bi-update-duben-2016.html a máme tu nový měsíc a nový update Power BI. Co přinesl květnový update nového na různých frontách (vlastní vizualizace, desktop, gateway, mobilní aplikace)?
Vlastní vizualizace
Přibyla nová „Meme custom visual“ a co víc si přát do reportu pro management, že ano?
Kromě meme tu máme hned další tři přírůstky. Hierarchy slicer – čili slicer, který zobrazí různé úrovně hierarchie odsazeně. Dále tu máme Circular gauge a Donut chart. Na vlastní vizualizace můžete kouknout zde https://app.powerbi.com/visuals/
Desktop
Jak je zvykem, opět štědrá nadílka.
Tvorba reportů & Analýza
Upravitelné bublinové nápovědy v grafech (tooltip) – můžeme si vybrat, co bychom rádi v bublinové nápovědě. Trošku škoda, že to zatím funguje jen na výběr číselných hodnot. Určitě by se hodil i extra textový popisek.
Quick Calcs – rychlý výpočet nad měřítkem. Zatím nabízí pouze jednu možnost, výpočet procenta celku. Když kouknete na obrázek, přestože na ose zobrazuji pouze částku, v bublině mám dodatečné údaje. Daň, celkovou cenu produktů a procenta celku.
Podmíněné formátování
Velmi populární požadavek na user voice. Dočkali jsme se, byť za mě jen částečně. Zatím funguje jen škálovaná výplň pozadí pro buňku daného měřítka. Vlastní vzorce (jako zvýraznění záporných hodnot červenou barvu), případně podbarvení celého řádku, zatím neuděláte. Berme to jako první vlaštovku a těšme se na další.
Publikace do Pyramid Serveru – už funguje jako skutečné publikování do Pyramid Serveru, nikoliv jako link na stránky Pyramid Analytics. Častá otázka na konferencích, user groups atp. zní. Jde publikovat Power BI do on premises řešení? Pyramid Analytics je jediná dostupná cesta v současné době. Viděl jsem demo na konferenci SQL Bits a vypadalo to dost dobře. Budu muset vyzkoušet demo, které mi poslali.
Další drobnosti v tvorbě jsou skrolování u kategorických sloupcových grafů načte další data a zarovnávání vizuálních prvků pomocí klávesnice.
Načítání dat
Nové konektory
  • Informix
  • comScore Digital Analytix
  • Troux
  • Planview Enterprise
Vylepšené konektory
Import textu – umožní vybrat kodování, oddělovač a určit datové typy z náhledu
DB2 – volba driveru meyi Microsoft a IBM
Migrace datového zdroje
Dalo by se použít pro přemapování z jednoho serveru na druhý pro všechny dotazy.
Vylepšené parametry
Nově můžeme konvertovat celé dotazy na parametry a parametry na dotazy. Nově můžeme používat parametry i v tzv. conditional columns.
Dále zde máme drag and drop změnu pořadí kroků v dotazu a pár dalších drobností. Kompletní seznam nových funkcí zde https://powerbi.microsoft.com/en-us/blog/power-bi-desktop-may-update-feature-summary/
Power BI Enterprise Gateway
Konektory pro aktualizace z Informixu a IDBM DB2 (Microsoft driver).
Kromě UPN mapování pro přístup ke zdrojům byla přidána možnosti připojovat se s vlastností CustomData do SSAS zdrojů.
Road mapa – mlhavá, ale prý toho bude hodně :)
Mobilní aplikace
Oficiální blog post mobilního týmu nevyšel. Aplikace pro Android mi píše akorát Bug Fixes.
Závěr
Power BI team nezklamal a donesl opět velkou nadílku nových funkcí. Pravada U některých jsem měl větší očekávání, než skutečně přinesly (podmíněné formátování). Ale beru to jako první vlaštovku, na které bude tým snad dále pracovat. Tak instalujte a testujte :)