18. dubna 2016

Záznam přednášky - Global Azure Bootcamp - Logic Apps - Automatizace procesů a workflow bez řádku kódu

Co dělat jiného při sobotním dopoledni, když jste blázen do IT a technologií Microsoft, než si střihnout přednášku na Global Azure Bootcampu v Brně. Akce probíhala celosvětově na různých místech a byla zaměřená na cloudové technologie. Já jsem si zvolil téma lehce netradiční. Překvapilo by mě, pokud jste o Logic Apps už slyšeli a ještě více by mě překvapilo, kdybyste je používali.:) S tímto nastavením jsem šel na přednášku a mé očekávání bylo naplněno. Pro 99,99% účastníků to byl s Logic Apps první kontakt. Ukazoval jsem, jak bez nutnosti cokoliv programovat stáhnout tweety do Azure SQL Databáze, prohnat nad nimi Machine Learningový Algoritmus pro vyhodnocení sentimentu a ve finále data vizualizovat pomocí Power BI.
Jednalo se o aplikaci, kterou jsem použil u nás v Dixonu, když jsem se snažil namotivovat management, aby si nainstaloval dopředu Power BI mobilní aplikaci.
Záznam přednášky najdete zde
http://www.wug.cz/zaznamy/309-Global-Azure-Bootcamp-2016-Azure-Logic-Apps-Automatizace-procesu-a-workflow-bez-radku-kodu

Záznam přednášky - Reporting s Microsoftem aneb dejte datům tvář

1.3.2016 jsem měl na WUGu v Brně přednášku o reportovací platformě spoolečnosti Microsoft. Přednáška je hlavně zaměřená na Power BI a okrajově co nového v Reporting Service platné k 1.3.2016
http://www.wug.cz/zaznamy/309-Global-Azure-Bootcamp-2016-Azure-Logic-Apps-Automatizace-procesu-a-workflow-bez-radku-kodu 

4. dubna 2016

Power BI Role a zabezpečení

Minulý týden jsem psal o novinkách, které byly a co se chystá. Krátce po vydání článku byla zpřístupněna možnost řídit ze strany Power BI práva, který uživatel uvidí jaká data. V minulosti platilo, že jsme byli schopni řídit pouze přístupy k jednotlivým Dashboardům. Data v Dashboardu v řežimu import omezit nešla. Pro omezení dat jste museli využívat živé připojení a řídit práva na straně databáze u Vás ve firmě. Což není možné ve všech případech. Jak to funguje se dozvíte v dnešním článku. Funkce je zatím ve fázi preview.
V prvé řadě si můžete stáhnout ukázkový report postavený nad Adventure Works DW databází https://drive.google.com/open?id=0B9ZohZ1CALKZTVpwQWMtWHlUNFk
Obsahuje tabulku prodejů Reseller Sales, 3 dimenze – Date, Geography a Product. Obsahuje taky mapovací tabulku Security, kde je ručně zadáno mapování uživatel a kategorie produktů.
Před aplikací zabezpečení uživatel vidí
Zabezpečení se nastavuje u datasetů kliknutím na trojtečku, security.


Vyskočí upozornění, že pokud dataset/report znovu vypublikujete, budete muset znovu nastavovat práva. To je trochu otrava, ale toho se v ostré verzi snad zbavíme (ptal jsem se na Yammeru členů produktového týmu a už na tom už pracují)
Pojmenujete roli, přidáte členy formou emailové adresy
A DAX výrazem můžete nastavit pravidla pro danou tabulku. Pokud bych chtěl například omezi práva pro kategorii produktů, aby uživatel viděl pouze Bikes, napsal bych
DimProduct[Category] = “Bikes”
Pokud bych chtěl, aby viděl Bikes, nebo Clothing. Logická spojka v nebo se v DAX píše jako ||
Tedy DimProduct[Category] = “Bikes” || DimProduct[Category] = “Clothing” Viz obrázek


Natvrdo zadaná podmínka funguje pěkně. Byť výrazy zatím postrádají intellisense. Jak si poradit s mapovací tabulkou?
Ručně zadana mapovací tabulka obsahuje následující hodnoty
Potřebuji zafiltrovat tabulku DimProduct, jeslti náhodou neexistuje záznam pro danou kategorii v tabulce Security. To nejjednoduššeji zjistím funkcí lookupvalue. Co chci vrátit, který sloupec prohledávám, kterou hodnotu chci najít.
Jak vidíte na obrázku výše, pokud nenašel, vrátí prázdnou buňku. To že našel znamená, vřátil buňku neprázdnou. Tj isblank = false
Dostanu následující výsledek, bez components
Zatím jsem do toho žádným způsobem nezakomponoval aktuálně přihlášeného uživatele. Bude stačit rozšířit funcki lookup jestli sloupec User v security je stejný jako DAX funkce vracející aktuálně přihlášeného uživatele


Zbydou bikes a clothing přesně jak mají.


Závěr

Zabezpečení dat na úrovni jednotlivých uživatelských skupin je kritická funkce pro produkční nasazení. Doteď šlo zabezpečit data v reportu pouze při použití živého připojení a řízení zabezpečení ze strany podkladového zdroje. Nyní máme možnost omezit data i při použití režimu import a to včetně dynamického zabezpečení řízeného konfigurační tabulkou. Funguje to jako víno. Jediné drobné problémy na které jsem narazil jsou chybějící intellisense. Když DAX výraz napíšete špatně, nespadne potvrzení práv na chybě syntaxe, jen uživatel uvidí prázdné objekty. Druhý problém je pokaždé přenastavit práva při přepisu souboru. Těchto drobných nedostatků se ale určitě v krátké budoucnosti zbavíme.