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.

Žádné komentáře:

Okomentovat