24. února 2025

Visual Calculations

 Jednou z nejzajímavějších novinek, které v poslední době přibyly do Power BI, jsou Visual Calculations. O co se jedná? Jak už název napovídá, jde o výpočty prováděné přímo na úrovni vizualizace. Některé výpočty je jednodušší vyhodnotit právě tímto způsobem, než je vytvářet jako obecná měřítka (measures).

V době psaní tohoto článku jsou Visual Calculations dostupné v režimu Preview, a je tedy nutné je nejprve povolit. To provedete v File → Options and settings → Options → Preview features → Visual Calculations a následně restartujete Power BI Desktop.

Jaké Visual Level Calculations máme k dispozici? Nejjednodušeji s nimi můžete začít kliknutím na tři tečky v rohu vizualizace – viz obrázek.

Pro demonstraci opět použiji demo databázi Adventure Works DW. Mám faktovou tabulku FactInternetSales, ve které mám měřítko [# Internet], definované jako součet sloupce SalesAmount. Kromě toho pracuji s kalendářovou tabulkou DimDate.

Například bych chtěl porovnat aktuální prodeje s předchozím obdobím.

Implementace pomocí klasického měřítka (measure) není úplně triviální a vyžaduje určité znalosti DAX. Výraz by mohl vypadat například takto:

# Vs Previous measure =
-- zjištění nejvyššího datumu v kontextu
var _md = max('DimDate'[Date])
-- zjištění předchozího datumu
var _pd = CALCULATE(max('DimDate'[Date]),DimDate[Date]<_md)
-- prodeje pro nejvyšší datum
var _mds = CALCULATE([# Internet],DimDate[Date]  = _md)
-- prodeje pro předchozí datum
var _pds = CALCULATE([# Internet],DimDate[Date]  = _pd)
-- výsledek vracím pouze pokud mám od sebe co odečítat
var _rslt = if(ISBLANK(_mds) || ISBLANK(_pds), BLANK(),_mds-_pds)
RETURN _rslt

Tento přístup vyžaduje několik kroků: nejprve zjistíme aktuální datum, pak odpovídající datum v předchozím období a nakonec vypočítáme rozdíl prodejů.

Zjednodušení pomocí Visual Calculation

Díky Visual Calculations lze stejný výpočet provést výrazně jednodušeji. Šablona Versus Previous, dostupná v Power BI, nám automaticky vygeneruje jádro výrazu:


Versus previous = [Field] - PREVIOUS([Field])

Kde Field představuje vybraný sloupec nebo measure. V našem případě to můžeme přepsat jako:

Versus previous =
if( --kontorola zda je co porovnávat
    ISBLANK([# Internet]) || ISBLANK(PREVIOUS([# Internet]))
    ,BLANK(), -- pokud ne, tak prázdná buňka
    -- jinak odečet
    [# Internet]-PREVIOUS([# Internet])
)

Tento přístup je výrazně jednodušší a přehlednější, přičemž stále poskytuje správné výsledky. Ve skutečnosti bychom si mohli vystačit i se základním výpočtem:

Versus previous = [# Internet]-PREVIOUS([# Internet])


Funkce PREVIOUS ve Visual Calculations vrací hodnotu z předchozího řádku vizualizace. To znamená, že její výsledek závisí na tom, jak jsou data ve vizualizaci seřazena. Pokud je tabulka setříděna sestupně podle data, funkce nebude vracet očekávané výsledky. Proto je důležité správně nastavit pořadí řazení.

Kdy použít Visual Calculation a kdy Measure?

Measures

  • Nejsou závislé na konkrétní vizualizaci – lze je znovu použít v různých reportech.
  • Pracují přímo s datovým modelem a umožňují komplexní výpočty.
  • Vhodné pro scénáře, kde je potřeba konzistentní výpočet v celém reportu.

Visual Calculations

  • Jsou vázané na konkrétní vizualizaci, takže jejich použití je omezenější.
  • Mají jednodušší syntaxi, což ocení zejména ti, kdo s DAXem začínají.
  • V některých případech mohou mít lepší výkon, protože pracují s agregovanými daty ve vizualizaci místo s detailními daty v datovém modelu.

Výběr mezi Measure a Visual Calculation tedy závisí na konkrétním scénáři – pokud potřebujete opakovaně použitelný výpočet, měřítko (measure) je lepší volba. Pokud ale hledáte rychlé řešení v rámci jedné vizualizace, Visual Calculation může být efektivnější.

Závěr

Visual Calculations jsou další skvělou součástí DAX arzenálu. Klasické measures stále mají své pevné místo, ale v některých situacích umožňují Visual Calculations jednodušší a efektivnější řešení s ohledem na výkon. Navíc fungují i pro Live Connection k SSAS a sémantickým modelům v Microsoft Fabric.

Živé demo Visual Calculations jsem ukazoval na své přednášce pro WUG. Záznam najdete zde:
Záznam přednášky na WUG

📅Chystám se téma podrobněji rozebrat na samostatné přednášce 20. 3. 2025 v rámci 9. ročníku Power BI Day. Rád vás tam uvidím i osobně!
Power BI Day 2025

📅 Pokud se chcete naučit jazyk DAX od základů až po pokročilé scénáře, včetně Visual Calculations, přijďte na můj celodenní workshop na Data Point Prague 29.–30. 5. 2025.
Data Point Prague 2025


6. února 2025

Field parameters pro dynamické reporty

Nějakou dobu zpátky jsem psal o tom, jak dodat dynamiku reportům pomocí dynamické metriky. Článek si můžete přečíst zde. 

Ve zkratce šlo o problém, kdy chci zobrazovat uživatelům stejně rozvržený report, ale mít možnost volit metriku. Stejné grafy, tabulky a další vizuály s možností vybrat mezi obratem, marží nebo náklady.

Dnes se podíváme na dynamiku z druhé strany, a sice z pohledu dimenzionálního.

Představte si stejný typ grafu, stejnou metriku, ale s možností zobrazit rozpad podle různých dimenzionálních atributů – například podle produktové kategorie, prodejního kanálu nebo třeba barvy.

A právě k tomu slouží field parameters.

K demonstraci použiju starou dobrou databázi Adventure Works DW, stejně jako u většiny příkladů.

Model obsahuje následující measures a dimenze: 

Tvorba field parametru probíhá na záložce Modeling na pásu karet.


Nejprve nadefinujeme název parametru – zde Split (1), protože budu ovládat rozpad v grafu, matici a dalších vizualizacích. Následně vybereme seznam polí, která vytvoří hodnoty parametru v příslušném pořadí (2), a ponecháme zaškrtnutou možnost vytvoření sliceru (3).
V modelu se vytvoří počítaná tabulka Split, která obsahuje název parametru (1), kód (2) volající popisky nahrazené hodnotou (NAMEOF funkce) a pořadí. Tyto hodnoty se zobrazí ve sliceru (3).
Detail vygenerovaného kódu

Split = {
    ("Category", NAMEOF('DimProduct'[Category]), 0),
    ("FullName", NAMEOF('DimEmployee'[FullName]), 1),
    ("Color", NAMEOF('DimProduct'[Color]), 2)
}

Zde je možné upravit pořadí, změnit popisky a přidat další hodnoty. Například:
Split = {
    ("Category", NAMEOF('DimProduct'[Category]), 0),
    ("FullName", NAMEOF('DimEmployee'[FullName]), 1),
    ("Color", NAMEOF('DimProduct'[Color]), 2),
    ("Currency", NAMEOF('DimCurrency'[CurrencyAlternateKey]),3)
}
Při tvorbě grafu a matice se nejprve zobrazí drill-down v defaultním pořadí.
Pokud ale nejprve vyberu měnu (Currency) a následně kategorii (Category), vizuál se překreslí následovně:

Jaká mají field parameters omezení?

Podle posledního testu v době psaní tohoto článku nejsou field parameters k dispozici v Power BI Desktopu určeném pro on-premises Power BI Report Server.

Stejně tak není možnost tvorby field parameters dostupná u live connection, protože v tomto režimu nelze vytvářet ani počítané tabulky. Pokud chcete použít field parameters, museli byste přepnout do DirectQuery režimu proti SSAS/Semantickému modelu. V takovém případě však může přepnutí do DirectQuery negativně ovlivnit výkon a funkcionalitu reportu.

Závěr
Field parameters rozšiřují arzenál Power BI developera pro tvorbu dynamických reportů.


3. ledna 2025

Zdroje informací o Power BI a Fabric

 Dnešní blog post je celkem specifický. Ani jej nebudu dávat na sociální sítě.

Jeho primární účel je poskytnout účastníkům mých kurzů (Power BI, DAX a další) rozcestník na zajímavé stránky, doplňky, nebo doplňující informace k Power BI, DAXu. 

Navíc jej budu v průběhu času rozšiřovat, jakmile bude stát něco dalšího za zmínku.

Zdroje v CZ jazyce

Archiv mojich přednášek na WUGu najdete zde

Nicméně na WUGu najdete záznamy i od jiných přednášejícíh, stačí kouknout na archiv a hledat

Nemůžu vynechat podcast mě se Štěpánem Power BI kafíčko (aktuálně v režimu spánku, ale témata jsou nadčasová)

Nový podcast s Vojtou Šímou o naší Cestě do Fabricu (do Fabriky)

Můj youtube kanál, kde hodlám přidávat obsah zaměřený zejména na MS Fabric

Mimo jiné na něm najdete drobný tutorial k Power BI.

Když něco nového vyprodukuji, dávám to zpravidla na LinkedIn

Za sledování ale určitě z našeho českého rybníčku stojí 

Štěpán Rešl

Vojtěch Šíma

Komunitní Discord server

S Vojtou se snažíme rozdmýchat Power BI, Microsoft Fabric komunitu na Discordu

Zdroje v AJ

Určitě nemůže chybě oficiální blog Power BI týmu

Oficiální blog Microsoft Fabric týmu.

Projekty Alberta Ferrariho a Marca Russa SQLBI

Jejich související projekt DAX Patterns když hledáte hotové řešení.

DAX.guide pokud hledáte dokumentaci funkcí včetně příkladů použití

Nástroje

Na nenaformátovaný kód v DAXu určitě oceníte DAX Formatter

Pro analýzu vertipaq úložiště v Power BI, SSAS Tabular Vertipaq analyzer

Dotazování a analýzu výkonu DAX Studio

Tabular Editor jako alternativu pro Visual Studio Data Tools, případně pro hlubší úpravy Power BI datových modelů.

Komunita

Koukněte na aktuální seznam Microsoft Most Valuable profesionálů (MVP) se zaměřením dle oblasti, nebo regionu. 

Demo data

NYC Taxi and Limousine yellow dataset - Azure Open Datasets | Microsoft Learn

Závěr

Seznam není určitě kompletní a finální. Kvalitních zdrojů se na nás chrlí ze všech stran a člověk má problém vše stíhat sledovat. Takže to berte jako nějaké jádro a já sem budu postupně přidávat.

28. listopadu 2024

Automatizujte Power BI s Power Automate

Na letošním SQL Server Bootcampu 2024 jsem ukazoval spolupráci Power BI s dalšími dvěma členy Power rodiny – Power Apps a Power Automate. V dnešním blogovém příspěvku se zaměřím na ten druhý, Power Automate, a na to, jak může pomoci Power BI vývojářům a správcům.

Video z přednášky bude k dispozici zde, jakmile jej David Gešvindr sestříhá.

Možná si říkáte, co je Power Automate. Jedná se o nástroj z platformy Microsoft Power Platform, který umožňuje automatizovat opakující se úkoly a vytvářet workflow mezi různými aplikacemi a službami. Pro vývojáře Power BI je zajímavý především proto, že umožňuje rozšířit možnosti Power BI o automatizaci klíčových procesů, jako je aktualizace datasetů, distribuce reportů nebo správa upozornění na data. Díky Power Automate mohou vývojáři nejen zefektivnit své workflow, ale také propojit Power BI s dalšími nástroji, jako je SharePoint, Teams nebo SQL Server, a vytvářet tak kompletní řešení pro správu a analýzu dat.

Kde Power Automate najdete? Je součástí Office 365, či stačí kliknout na  https://make.powerautomate.com/

Osobně Power Automate používám zejména pro aktualizace datasetů. Přímo v Power BI Desktopu je možné přidat Power BI vizualizaci Power Automate, která vytvoří tlačítko fungující jako trigger pro nový Power Automate tok. V tomto toku lze volat akci Refresh a aktualizovat dataset.

Tímto způsobem můžete spustit aktualizaci datasetu pouhým stiskem tlačítka. Tuto funkci jsem využil u projektů v testovací fázi, kdy uživatel zapsal data přes Power App do SharePoint listu a následně chtěl, aby se nová data okamžitě promítla do Power BI reportu. SharePoint list byl načten do Power BI jako další zdroj, a po stisku tlačítka se spustila aktualizace datasetu. Tím se zajišťovalo, že změny byly okamžitě viditelné v Power BI vizualizaci.

Další zajímavý scénář je pravidelná aktualizace dat mimo časy, které standardně umožňuje Power BI Service. Power BI Pro dovoluje naplánovat aktualizace maximálně 8krát denně, vždy buď o půl, nebo v celou hodinu, což není vždy dostačující. Pomocí Power Automate lze tyto limity obejít a načasovat aktualizace přesně podle potřeby, bez nutnosti složitého programování.

Pro práci s Power Automate nemusíte hned být expertem. K dispozici je nástroj Copilot, který vám pomůže najít a nastavit to, co potřebujete – stačí mít představu o požadovaném výsledku. Určitě je ale potřeba kontrolovat výstup a můžete narazit na limity. Takže při pokročilejších scénářích se hlubší znalost rozhodně hodí. Pro začátek můžete Copilota otestovat.

Zadal jsem "refresh power bi dataset every 5 minutes" a Flow je na světě


Stačilo dokonfigurovat který workspace a který dataset.

Tím možnosti aktualizací nekončí. Pro zajímavost uvádím několik scénářů přehledně vedle sebe, včetně těch, které již byly zmíněny výše.
  • Automatická aktualizace datasetů
    • Spouštění aktualizací mimo plánované intervaly.
    • Aktivace na základě událostí, jako je dokončení ETL procesu.
  • Podmíněné aktualizace
    • Aktualizace pouze při splnění podmínek (např. nahrání nového souboru).
    • Dynamická aktualizace na základě obchodních potřeb.
  • Řetězení aktualizací závislých datasetů
    • Sekvenční aktualizace, kde jeden dataset závisí na druhém.
  • Monitorování a protokolování stavu aktualizací
    • Upozornění na úspěšné nebo neúspěšné aktualizace (e-mail, Teams).
    • Automatické opakování neúspěšných aktualizací.
  • Hybridní plánování
    • Kombinace pravidelných a událostmi řízených aktualizací.
    • Dynamické přizpůsobení aktualizací, např. na základě časů trhů.
  • Hromadné aktualizace více datových sad
    • Automatická aktualizace všech datasetů v pracovním prostoru na konci dne.
  • Propojení s externími systémy
    • Aktualizace po změnách v Salesforce, SharePointu nebo jiných systémech.
    • Spouštění dalších akcí po aktualizaci (např. odeslání reportu).
Rozhodně existují i jiné scénáře, které nesouvisí přímo s aktualizacemi. Ty ale třeba probereme někdy v samostatném článku.

Nabízí se také další otázka: Co se dá dělat zdarma a co je dostupné pouze v placené verzi?

Neplacená verze (Power Automate Free):
  • Základní funkce: Nabízí možnost vytvářet jednoduché pracovní postupy a automatizace mezi podporovanými aplikacemi.  
  • Omezené spouštění toků: Omezený počet spuštění toků za den.  
  • Menší rychlost zpracování: Nižší priorita při provádění toků ve srovnání s placenou verzí.  
  • Základní konektory: Přístup pouze k běžně dostupným konektorům (např. SharePoint, Outlook, OneDrive).  

Placená verze (Power Automate Premium):
  • Pokročilé konektory: Přístup ke konektorům pro prémiové služby (např. Salesforce, SQL Server, datové sklady).  
  • Vyšší limit spouštění: Větší počet toků spouštěných denně a vyšší výkon zpracování.  
  • Možnost používat RPA (Robotic Process Automation): Automatizace úkolů i v aplikacích, které nepodporují API (např. starší desktopové aplikace).  
  • Integrace s dalšími službami: Rozšířené možnosti napojení na služby mimo Microsoft ekosystém.  
  • Podpora složitějších scénářů: Například využití vlastních konektorů, volání Power BI API nebo zpracování velkých objemů dat.  
Závěr:
Dnešní příspěvek vám představil, co je Power Automate a proč by tato technologie měla zajímat i Power BI vývojáře. Rozebrali jsme scénáře pro aktualizace dat a ukázali, jak může Copilot pomoci citizen developerovi při začátcích s touto technologií. Během psaní článku došlo ve standardním Power BI Pro workspace k 8 aktualizacím, ale už 20 minut žádná další. Omezení licenčního modelu sice neobejdeme, ale to by přece ani nikdo nechtěl, že?

14. listopadu 2024

Kalendářová tabulka

Na prakticky každém školení Power BI a na reálných projektech používám tabulku s kalendářem. Důvodů je několik. Automaticky generované hierarchie ve faktových tabulkách jsou neuvěřitelnými žrouty paměti a nelze je použít, pokud chci analyzovat data alespoň ze dvou faktových tabulek. Potřebuji společnou dimenzi, tedy kalendář. Stejně tak je tabulka s kalendářem prerekvizitou pro funkce Time Intelligence.

Kalendářová tabulka se dá vygenerovat mnoha způsoby. Možná ji máte už ve svém datovém skladu, dá se vygenerovat přes Power Query a také jako počítaná tabulka pomocí jazyka DAX. Pro koncové uživatele mi přijde jednodušší generování přes DAX díky podobnosti syntaxe počítaných sloupců s Excelovými vzorci. Jako inspiraci, co by takový kalendář mohl obsahovat, přikládám skripty na konci článku.

Nechtělo se mi ale psát něco, co už jsem dělal mnohokrát, tak jsem se rozhodl využít Copilota. Mám na mysli Copilota ve Windows, nikoliv Copilota v Power BI, který je aktuálně dostupný pouze pro rezervované kapacity MS Fabric F64 a vyšší.

Pokud tedy chcete jen finální kalendář, skočte na konec stránky. Pokud se chcete podívat na konverzaci, přeji příjemné čtení!






Finální kalendář česky

Kalendář = 
VAR _CurrentYear = YEAR(TODAY())
VAR _StartDate = DATE(_CurrentYear - 2, 1, 1)
VAR _EndDate = DATE(_CurrentYear, 12, 31)
RETURN
ADDCOLUMNS (
    CALENDAR(_StartDate, _EndDate),
    "Rok", YEAR([Date]),
    "Kvartal", "Q" & FORMAT([Date], "Q"),
    "MesicCislo", MONTH([Date]),
    "MesicNazev", FORMAT([Date], "MMMM", "cs-CZ"),
    "PoradiDneVTydnu", WEEKDAY([Date], 2),
    "CisloTydne", WEEKNUM([Date], 21),
    "RelativniRok", YEAR([Date]) - YEAR(TODAY()),
    "RelativniKvartal", (YEAR([Date]) - YEAR(TODAY())) * 4 + QUARTER([Date]) - QUARTER(TODAY()),
    "RelativniMesic", (YEAR([Date]) - YEAR(TODAY())) * 12 + MONTH([Date]) - MONTH(TODAY()),
    "RelativniTyden", DATEDIFF(TODAY(), [Date], WEEK),
    "RelativniDen", DATEDIFF(TODAY(), [Date], DAY),
    "JeVikend", IF(WEEKDAY([Date], 2) > 5, TRUE(), FALSE())
)


A anglicky
Calendar = 
VAR _CurrentYear = YEAR(TODAY())
VAR _StartDate = DATE(_CurrentYear - 2, 1, 1)
VAR _EndDate = DATE(_CurrentYear, 12, 31)
RETURN
ADDCOLUMNS (
    CALENDAR(_StartDate, _EndDate),
    "Year", YEAR([Date]),
    "Quarter", "Q" & FORMAT([Date], "Q"),
    "MonthNumber", MONTH([Date]),
    "MonthName", FORMAT([Date], "MMMM"),
    "DayOfWeek", WEEKDAY([Date], 2),
    "WeekNumber", WEEKNUM([Date], 21),
    "RelativeYear", YEAR([Date]) - YEAR(TODAY()),
    "RelativeQuarter", (YEAR([Date]) - YEAR(TODAY())) * 4 + QUARTER([Date]) - QUARTER(TODAY()),
    "RelativeMonth", (YEAR([Date]) - YEAR(TODAY())) * 12 + MONTH([Date]) - MONTH(TODAY()),
    "RelativeWeek", DATEDIFF(TODAY(), [Date], WEEK),
    "RelativeDay", DATEDIFF(TODAY(), [Date], DAY),
    "IsWeekend", IF(WEEKDAY([Date], 2) > 5, TRUE(), FALSE())
)

Závěr

Kalendářová tabulka se používá prakticky ve všech datových modelech. Jednou z variant, jak k ní dojít, je generování s použitím jazyka DAX. Proč ale objevovat kolo? Stačí zkopírovat hotový skript a ten případně doupravit. Dá se též využít generativní AI, pokud dokážete dobře popsat, co chcete. Kalendář není kompletní, ale obsahuje základní informace. Zadání by se dalo komplikovat například o státní svátky. Ty bych implementoval tabulkou se seznamem svátků a dohledával funkcí LOOKUPVALUE. Musím říct, že si Copilot poradil s generováním kalendáře docela dobře. Dobrá práce.

23. října 2024

Pohled z výšky na licencování Power BI a MS Fabric

Protože tohle řeším na každém školení i na nových projektech. Volají mi kvůli tomu kolegové. Rozhodl jsem se tohle své neoblíbené téma sepsat. Nejedná se ale o žádný Deep dive. Pohled z vrtulníku, nebo v mém případě raději z vírníku. Ceny se mohou v průběhu času měnit. Detaily řešte se svým licenčním expertem, dle aktuální situace

Power BI

Power BI Desktop bez power BI služby

můžete zadarmo používat na desktopu zdarma bez registrace čehokoliv. Můžete mezi sebou sdílet soubory na souborové úrovni. Nemusíte za to nic platit. Občas se najde i někdo, kdo chce buď moc ušetřit, nebo mu to jednoduše stačí takhle. Vše rešíte ručně, žádná automatizace aktualizací. Bez nainstalovaného Power BI desktopu report neotevřete. Můžou být problémy s verzemi a kompabilitou Power BI desktop verzí. Pokud vytvoříte v novější, starší může mít problém otevřít.

Rozlišují se základní typy licencí, co v nich najdete a hlavní omezení

Free

Uživatel má v Power BI službě My workspace. Může automatizovat přes pesonal gateway. Přes uživatelské rozhraní až 8 aktualizací denně. Maximální velikost souboru pro publikaci 1 GB. Velikost My workspace 10 GB.

Zásadní omezení. Uživatel nemůže sdílet a nemůže jemu býti sdíleno. S vyjímkou dedikovaných kapacit (viz dále). A publish to web (což u citlivých dat nechcete, obsah indexují vyhledávače).

Pro

Uživatel může sdílet, může jemu býti sdíleno. Platí se za uživatele za měsíc kolem 10$ základní ceníková cena. Uživatel ale funguje na sdílené cloudové infrastruktuře a tak jsou na něj kladeny omezení co se týče počtu aktualizací přes UI (8 za den, scheduling po 30 minutách o půl, nebo v celou). Omezená je taky maximální velikost souboru pro publikaci na 1 GB. Velikost workspace (může využívat i sdílené worskpaces) omezena na 10 GB. Pro je základní stavební kámen, ale korporát s 40 tisíci zaměstnanci touto formou licencovat nechcete.

Premium Per User

Obsahuje to, co Pro. Platí se za uživatele za měsíc. Základní ceníková cena kolem 25$. Obsahuje navíc některé premiové funkce. Například XMLA endpoint pro konektivitu a integraci. AI, vylepšené dataflows a další. Power BI Premium Per User - Power BI | Microsoft Learn

Premium dedikovaná kapacita

Power BI Pro funguje na sdílené infrastruktuře. Oproti tomu Power BI Premium funguje/fungovalo na principu dedikované kapacity. V podstatě jste platili za server s určitým počtem jader a velikosti paměti. Autoři reportů stále potřebovali být zalicencování jako licence Pro (mohli publikovat do normálních Power BI workspace, i těch v dedikované kapacitě označených značkou s diamantem). Ve workspaces na dedikované kapacitě mohli konzumenti reportů fungovat s licencí Free. Takže nebyl problém zalicencovat i hodně velkou firmu. Nicméně museli jste si hlídat zdroje a tyto řídit. 

Proč mluvím o Premiu v minulém čase? Od července 2024 nemohou noví zákazníci Premium pořídit. Stávající zákaznici můžou prodloužit kontrakty do 1.1.2025. Následně se přechází na licencování dle Fabric. Zákazníci s Enterprise Agreementem do 1.1.2025 mohou prodloužit. Pokud obnova EA ale končí po 1.1.2025. Přechází na licencování Microsoft Fabric

Important update coming to Power BI Premium licensing | Microsoft Power BI Blog | Microsoft Power BI

Microsoft Fabric

Microsoft Fabric je jak jsem psal v jednom ze svých předchozích článků nadmnožinou toho, co umí Power BI v rámci jednoho licenčního balíčku. Například služby postavené na Azure Data Factory, Synapse, Machine Learning, Data Activator a další. 

Microsoft Fabric nabízí různé velikosti SKU dle tzv. Capacity units. Čím víc units, tím větší výkon. 
Ekvivalenty popsané v následující tabulce

https://learn.microsoft.com/en-us/fabric/enterprise/licenses

Microsoft Fabric se dá pořídit buď jako pay as you go, nebo rezervovaná kapacita. Pay as you go platíte jen za reálné použití a je dražší. Nicméně můžete ušetřit, když budete kapacitu zapínat a vypínat dle potřeby. Rezerovaná kapacita, platíte nižší fix. Láme se to okolo 14 hodin provozu denně. Pod je efektivnější PAYG, nad 14 hodin je efektivnější rezervovaná kapacita. Aktuální ceník s jednotlivými SKU najdete zde https://azure.microsoft.com/en-us/pricing/details/microsoft-fabric/

Další zlom nastává u velikostí kapacit. Pokud máte nižší SKU, než F64. Musíte konzumenty Power BI obsahu licencovat jako Pro. Nejde sdílet s celou firmou jako v případě Power BI Premium. U F64 v výše se dá sdílet v rámci celé firmy bez ohledu na velikost. Konzumenti obsahu vystačí s Power BI Free.

Závěr

Dnešní blog post se věnuje licenční džungli Power BI a Microsoft Fabric včetně toho, jak spolu souvisí. Nevěnuji se zde prozatím možnostem on-premises nasazení Power BI, které třeba někdy shrnu v samostatném článku.




11. října 2024

Filtrace s Measure ve sliceru, T-Shirt sizing

 Aneb co je to za divný název článku. Measure přece do sliceru dát nejde. Ano, máte pravdu. O čem právě bude pojednávat dnešní článek je, jakým způsobem tohle omezení obcházím.

Obecně totiž measure můžeme v Power BI použít v sekcích: Values, Tooltip, nikoliv však na řádcích, sloupcíh. Measure je od toho, že vrací hodnotu. Nedá se přes ni řezat.

Filtrace je omezená na "Filters on the visual". Osobně ale mívám lištu s filtry pro uživatele takřka výhradně skrytou. Pro uživatelskou interakci používám slicery.

Pojďme na scénář. Na začátku mám následující report nad demo databází Adventure Works

Chtěl bych mít možnost modely škatulkovat podle velikosti prodejů jako Trička 
L (large nad 1M)
M (medium 500k-1M)
S (small pod 500k)
Dalo by se více velikostí, ale pro ilustrativní účely stačí.
Vytvořím si jednoduchou measure pro určení velikosti, naformátuji jako text


Následně vygeneruji tabulku s velikostmi, jako nevázanou dimenzi, pro tento účel můžu použít například DAXovou funkci DATATABLE.
Vytvořím si další measure # Size visibility


Pokud v tabulce velikost není vybráno nic, vrací 1 (_filtered), v případě vybrané velikosti vybere jedničku u vybrané, u ostatních 0. 

Přidáme slicer s velikostí a na potřebných vizuálech filtr přes metriku # Size visibility > 0
A můžeme vesele filtrovat slicerem. Metrika Size visibility je v posledním screenshotu pouze informativní.

Závěr
V článku jsem popsal, jak řeším filtraci slicerem pro measures. Neobejdeme se bez pomocných metrika   pomocné dimenze. Nicméně pokud řešíte jiným efektivnějším způsobem, podělte se :)