Tag Archives: Reporting Services

Power BI goes premium

PowerBIPremiumPower BI tager nu et kæmpe skridt frem mod at blive klar til de helt store virksomheder med dagens lanceringen af Power BI Premium. Med Power BI Premium får man:

  • Dedikeret hardware
  • Gratis distribution til alle – både internt og eksternt
  • Ingen restriktioner på refresh rate og størrelse af datasæt
  • Publish til on-premises Power BI report server

Det er ekstra funktionalitet målrettet de helt store løsninger og prisen er da også her efter. Prisen bliver nemlig $5.000 pr. måned pr. node. Det er muligt at købe ekstra og/eller større “nodes”, hvis man har rigtig mange brugere og vil sikre super performance til alle. Ud over den faste pris pr. måned skal man købe pro licenser til alle de brugere som skal publishere, dele og samarbejde om indhold.

Den “gamle” licensmodel med free og pro er altså stadig gældende – dog med det lille tvist at free users mister adgang til at distribuere, dele og samarbejde om indhold. Det bliver dog en blød overgang, da Microsoft har valgt at give alle nuværende aktive free users et års gratis abonnement på pro.

Det er forholdvis enkelt at lave en simpel beregning på, om det økonomisk kan betale sig at tilkøbe Power BI Premium. Hurtig hovedregning vil sige at man mindst skal have 500 pro licenser ($5.000 / $10) før det er en god forretning at skifte. Læg dertil at man stadig skal have pro licenser til de brugere der skal publishere, dele og samarbejde og så er man nok på 600 brugere.

En ting er det økonomiske aspekt – noget andet er den ekstra funktionalitet og specielt muligheden for publish til on-premises Power BI report server. Dette kunne helt sikkert også trække nogle kunder over på Power BI Premium.

Den sidste store nyhed med Power BI Premium er muligheden for gratis at dele til eksterne brugere. Helt specifikt bliver Power BI Embedded lagt ind under Power BI Premium og prisen pr. session forsvinder. Derudover bliver det muligt at trække data via on-premises gateway, hvilket åbner op for mange flere datakilder!

Læs mere i det officielle whitepaper: https://aka.ms/pbipremiumwhitepaper

Nyt liv til Reporting Services, part 2

Netop hjemvendt fra PASS Summit konferencen er det på sin plads med en opfølgning på “Nyt liv til Reporting Services“, da der kom rigtig mange nye detaljer på bordet angående både SQL Server 2016 Service Pack 1 og den næste release (indtil videre kendt som vNext).

ssrs_teamDer var rigtig god stemning omkring Reporting Services med super god deltagelse fra teamet bag produktet. De var tilsvarende meget åbne og klar på at modtage input og svare på spørgsmål. Både i form af synlighed på SQL Clinic og aktivitet på Twitter hvor de den ene dag inviterede til meetup på en lokal bar og den næste til fokusgruppe i frokostpausen. Desuden var de to Product Managers, Riccardo Muti og Christopher Finlan meget aktive med blog indlæg, hvor det blev til 5 styk samlet på https://blogs.msdn.microsoft.com/sqlrsteamblog/ og https://christopherfinlan.com/

Som omtalt i mit andet blog indlæg, så blev der på Ignite konferencen vist et sneak-peak af Power BI via Report manageren. På PASS Summit gik man så skridtet videre og havde næsten en helt session (SQL Server Reporting Services: What’s New and What’s Next) kun om dette. Derudover blev “Technical Preview” annonceret – det er simpelthen blevet muligt at starte en helt klar og konfigureret Azure VM op, så man kan prøve det selv. Og hvis man har lidt teknisk snilde kan den downloades og mountes i ens eget miljø med de frihedsgrader det nu giver :-)

ssrs_vm

Preview’et indeholder ud over den integrerede on premise Power BI også en del nye features som kommer i SQL Server 2016 Service Pack 1. Her får vi bl.a.

  • List view in portal
  • Expanded context menu when you click the ‘…’ option
  • Direct url navigation for KPI’s

Det rygtes at SP1 bliver klar til download her i november. Vi kommer desværre til at vente noget længere på Power BI, da det først kommer i næste release… Man havde nok forventet det noget tidligere, når vi nu har et preview som virker. Godt nok “kun” med live connection til SSAS kuber, men det er jo også alt hvad vi har behov for nu og her. Jeg vil være meget ked af, hvis udgivelsen udskydes pga. manglende Power Query og deraf manglende Self-Service muligheder. Vi har behov for “Analytic Enterprise BI Reporting”, hvilket jeg da også fik fortalt de to product managers. Men min lille stemme vægter nok ikke så meget. Derudover mangler vi også Custom Visuals, men det kunne jeg også leve uden i første version.

En anden interessant ting er, at Microsoft overvejer at adskille Reporting Services fra resten af SQL Serveren, hvilket giver rigtig god mening. Et separat download som dermed kan følge sin egen hurtigere “release cycle” som de også har gjort med SSDT og SSMS. Når man tænker over det, så er der faktisk ikke rigtig nogen vigtig teknisk binding udover ReportServer databasen som, allerede nu, sagtens kan ligge på en tidligere SQL Server version. Det virkelig interessante er hvordan licenseringen vil blive, hvilket Microsoft ikke vil komme ind på. De vil heller ikke hverken be- eller afkræfte om Power BI i Reporting Services kommer til at koste ekstra.

Over and out fra justB, som virkelig er optimistisk for fremtiden for Reporting Services!

Nyt liv til Reporting Services, part 1

Det mærkes tydeligt at SQL Server 2016 har givet fornyet håb omkring Reporting Services. Der er ikke kommet mange nye fede features, men Microsoft har sendt et signal om at de ikke har opgivet værktøjet. Et meget vigtigt signal efter de har ladt SSRS i stikken i 6 år… Ikke siden SQL Server 2008R2 har vi fået nogle mærkbare nyheder! Man skulle næsten tro at Microsoft har opfattet det som “feature complete”.

Nyhederne i SQL Server 2016 kan opsummeres til:

  • Ny web portal og HTML 5 rendering
  • Tree Map og Sunburst Charts
  • Power Point Export og ny print oplevelse
  • Forbedret standard layout til charts, gauges og maps
  • Brugerdefineret parameter bar
  • Pin Report Items to Power BI Dashboard
  • KPI’er og mobile reports (fra Datazen)

Vi kunne nok have forventet noget mere, men lidt er også godt :-) Jeg har faktisk lige hjulpet en kunde med opgradering udelukkende pga. den “nye print oplevelse”, som betyder et farvel til installation af ActiveX komponent.

For præcis et år siden offentliggjorde Microsoft deres “Reporting roadmap“, hvor et af hovedbudskaberne er at Reporting Services er værktøjet til “Paginated reports” – en ud af fire rapport typer. Derudover fik vi beskeden: “Reporting Services is our on-premises solution for BI report delivery” og at det vil blive muligt at publicere Power BI rapporter direkte til Report Manager’en.

microsoft-business-intelligence-our-reporting-roadmap

Nu et år efter har vi fået den første sneak-peak på Ignite i denne session af Riccardo Muti. Bliver spændende at se hvad de præsentere på PASS Summit senere på måneden. Første besked er “Ships when ready”.

ssrs_powerbi

I løbet af den seneste måned har jeg afholdt fire SSRS kursusdage, hvilket er hvad jeg normalt afholder på et helt år. Jeg tager det som et signal på at folk igen tror på SSRS og tør investere. Det skal heller ikke være nogen hemmelighed at jeg har en vis forkærlighed til SSRS. I alle mine 10 år som Microsoft BI udvikler har jeg anvendt det – ikke hver dag, men ofte. Det er et form for “go to” værktøj, som har så mange frihedsgrader, at det kan bøjes på alle leder og kanter. Et dejligt værktøj til den “nørd” jeg har gemt i maven :-)

Jeg har valgt at “fejre” Microsoft nye fokus ved at sammensætte et “Reporting Services Next Step” kursus, som jeg afholder i Aarhus d. 17. november. Kurset henvender sig til analytikere, BI-udviklere og andre der har arbejdet med Reporting Services et par år og som har brug for tips, tricks og input til de lidt mere avancerede muligheder. Der vil være hands-on og øvelser undervejs og alle deltagere vil få udleveret et stort katalog med eksempler på de gennemgåede rapporter. Måske et kursus for dig? Tjek agendaen ud her: http://orangeman.dk/kursuskatalog/reporting-services-next-step/

Reporting Services ressourcer

Som opfølgning på et Reporting Services kursus jeg netop har afholdt kommer her en samling af gode ressourcer:

Der findes helt sikkert mange flere rigtig gode ressourcer. Dette var bare dem jeg lige kunne komme op med. Hvis du er interesseret i at komme på kursus i Reporting Services, så skulle du tjekke mit kursus ud, som jeg holder hos Orange Man: http://orangeman.dk/kursuskatalog/Reporting-Services/

Find hvilke rapporter der anvender embedded connection

Var ude ved en kunde i den forgange uge, som netop har fået ny DWH server. Jeg har gennem nogle år hjulpet dem med at opsætte en SharePoint BI løsning, hvor der anvendes en god blanding af Reporting Services, Excel Services og PerformancePoint Services. Skiftet til den nye DWH server har været problemfrit, da der blev opsat et alias på navnet fra den gamle server, som peger på den nye server. Udfordringen er nu, at kundes IT afdeling vil fjerne aliaset igen…

Så nu skal vi sikre at alle rapporter, dashboards m.m. bliver peget over på den nye server. Nemt nok med PerformancePoint Services, da det kun er muligt at oprette shared connectionsog disse så blot skal ændres. Også nemt med Excel Services, da vi her har opsat at der kun tillades “external data connections” og Excel rapporterne således ikke virker med “embedded data connections”. Samme mulighed findes desværre ikke med Reporting Services, så hvordan finder man rapporter der anvender embedded connections og dermed peger på det gamle server navn?

ReportServer databasen indeholder alle rapport definitioner (rdl-filer) i catalog tabellen. Det er gemt i binært format i content feltet:

CatalogTabel

Kan du finde rapporten med en embedded connection? Nej vel. Tricket er at konvertere det binære format om til XML og så udsøge det element, som viser om der anvendes en embedded eller shared connection. Det er ikke lige min spids kompetence, men Google kan som altid hjælpe. Bret Stateham har skrevet et godt og grundigt blogindlæg: http://bretstateham.com/extracting-ssrs-report-rdl-xml-from-the-reportserver-database/

Eksemplet går på at udtrække selve den query der anvendes i rapporterne. Rigtig rigtig smart, men ikke lige det vi har brug for. Det er bare at tage et kig på XML’en i en rapport med embedded connection og se hvad elementerne hedder:

ConnectionStringXML

Så skal sidste del af scriptet blot ændres til at udsøge DataProvider og ConnectString:

ConnectionStringSQL

Da disse elementer kun findes i rapporter med embedded connection, vil vi kun få listen over de rapporter der skal ændres. Ved den pågældende kunde var der ca. 20 rapporter, hvor vi så nemt kunne ændre til at de anvendte de shared connection der var opsat og var ændret til at pege på den nye server.

ConnectionStringResult

Det var da smart :-)

Automatisk testning af kuber

Jeg havde lørdag d. 29. marts fornøjelsen at præsentere mit indlæg om automatiseret test af kuber på SQLSaturday #275, der blev afholdt i Microsofts lokaler i Hellerup. Et helt fantastisk arrangement, som jeg håber kan blive en tradition.

Mit indlæg har rod i en konkret kundeopgave, hvor der var behov for at automatisere test af en forholdsvis stor og kompleks kube, som var en del af et udviklings-setup med release hver tredje uge. Helt simpelt har jeg udviklet en metode til at udtrække snapshot af både kubens struktur (metadata) samt selve indholdet (data). Snaphot kan således fortages både før og efter deployment og derefter sammenlignes. Det er dog også muligt at sammenligne på tværs af miljøer eller henover tid ved f.eks. at foretage snapshot dagligt.

Kubens metadata eksponeres via en række DMV’er – f.eks. giver “SELECT * FROM $SYSTEM.MDSCHEMA_MEASURES” en liste over alle measures i kuben med et utal af properties. Ved at opsætte en LinkedServer kan det via en OpenQuery forespørgsel relativt simpelt gemmes i en tabel og wupti, så kan der opsættes en rapport som synligøre forskelle mellem to forskellige snaphot. Tilsvarende kan opsætte via andre DMV’er, så metadata for dimensioner, attributter, measuregroups m.m. kan sammenlignes.RapportMetadataSamme metode med OpenQuery og LinkedServer kan anvendes til udtræk af data, som dog kun kan blive et udsnit – men hvordan udvælges et repræsentativt udsnit? Og hvordan håndteres, at data helt naturligt ændrer sig over tid? I min konkrete opgave valgte jeg at udtrække data for alle measures over flere forskellige tidsperioder (32 dage, 13 måneder og 5 år) filtreret på en anden gennemgående dimension. MDX forespørglen er opsat forholdvis dynamisk med flere forskellige parametre – f.eks. med en offset dato, så der kan udtrækkes data tilbage i tiden. Listen over measures i kuben kan fåes via enten metadata snapshot eller via “Measures.AllMembers” – bemærk dog at Measures.AllMembers kun giver de synlige measures og at en liste via metadata kan blive meget lang og dermed få forspørgslen til at overstige begrænsningen på 8000 tegn.

Via en række linked rapporter kan eventuelle forskelle mellem snapshot synliggøres og om der findes et mønster – er det kun enkelte measures og/eller på konkrete tidsperioder?RapportTil demo for mit indlæg har jeg opsat eksempel på AdventureWorks kube databasen deployed på to forskellige instanser, hvor jeg har jeg ændret i både struktur og indhold i kuberne. Jeg har uploaded både slides og demo-filerne, så I selv kan afprøve metoden. Jeg har kun tilpasset et udsnit af min kundeopgave til at virke på AdventureWorks, så der er uden tvivl behov for at tilpasse og udvide, hvis det skal anvendes professionelt :-)

Foruden min egen udviklet metode, har jeg også med succes anvendt Microsoft BI test frameworket NBi, som har sin klare styrke i at teste dele af kuben. Det er en udvidelse til NUnit, hvor der kan opsættes test-cases via xml-syntax – f.eks. teste antal af members i en specifik attribut, performance på afviklingen af en specifik mdx eller sammenligne små resultatsæt. En anden styrke er at der kan opsættes tresholds – f.eks. at antallet af members skal ligge mellem 15 og 25 eller værdien af et measure skal være mellem 0 og 1. Perfekt til at teste at de ændringer man ligger i produktion er slået rigtigt igennem.

Begge disse løsninger komplementere hinanden godt, men kan også fint anvendes uafhængigt. Tjek begge ud og se hvad der passer i dit/jeres setup.

Self-Service BI ressourcer

Som opfølgning på et tre dages kursus jeg afholdte i sidste uge, har jeg samlet links til en række yderligere ressourcer. Kurset var overordnet opdelt i en dag med Report Builder og to dage med Excel, hvor den første dag havde fokus på data modellering og den næste på præsentation/rapportering.

Power Pivot:

DAX:

Power Query:

Reporting Services:

Dette er på ingen måde udtømmende, men en god start, hvis man skal arbejde videre med Microsoft Self-Service Business Intelligence. Kan personligt anbefale alle ressourcerne :-)

Hvis du har en god ressource, så smid den i en kommentar. Tak!

Automatisk kube dokumentation i Reporting Services

Dette indlæg har stået på min liste i snart tre år, så nu er det vidst på tide jeg får det skrevet. Alle Microsoft BI udviklere har nemlig krav til denne information, da vi som udgangspunkt alle hader at dokumentere og elsker at automatisere trivielle opgaver :-)

Skal skynde mig at tilføje, at alt kredit går til Alex Whittles fra det engelske BI konsulentfirma Purple Frog. Jeg deltog tilbage på SQLBits VIII til hans session om “Automating SSAS cube documentation using SSRS, DMV and Spatial Data“, hvorefter jeg begyndte at bruge den kode han lagde tilgængelig på sin blog. Har implementeret det med stor succes ved en håndfuld virksomheder.

Det går i alt sin enkelthed ud på at trække metadata ud af kuben via de DMV’ere som er tilgængelige, hvorefter det kan præsenteres i en række SSRS rapporter, som er indbyrdes linket sammen. Som en cool detalje er “Dimension Usage” vist grafisk i stjerne skema – tegnet via den map engine der ligger i SSRS. Der er nok ikke mange, som er klar over, at det faktisk er en tegne motor. Allan har skrevet et mere detaljeret indlæg om dette emne “Drawing a logo or diagram using SQL spatial data“.

JavascriptJeg har foretaget en række udvidelser af udtræk og rapporter, hvor den største er muligheden for at tilknytte kommentarer til de forskellige elementer direkte via rapporterne. Der er til hver objekt indsat et lille edit-ikon, som via en action og lidt javascript åbner en lille rapport i et pop-up vindue.

MeasureListe

Det som angives i parameter-input bokse bliver via en stored procedurer gemt i en tabel ved klik på “View Report”. Der anvendes et merge-statement, så det er muligt også at foretage rettelser.

InputWindow

Indrømmet – det er lidt en høker løsning, men det er smart at have præsentation og indtastning samlet i den samme “applikation”. Alle objekter i kuben har unikke navne, så det er meget simpelt at gemme i beskrivelser af dimensioner, attributter, measures m.m. i den samme tabel. Har i et tilfælde udvidet, så der udover beskrivelse, reference id og link også er mulighed for at angive den primære kilde – herunder kildesystem, tabel og felt.

Når jeg har præsenteret denne løsning har flere foreslået, om jeg ikke skulle lave noget write-back til kuben, så beskrivelserne ikke kun er tilgængelige via rapporterne. En rigtig god ide, som burde kunne laves via lidt xmla. jeg har dog valgt ikke at gå videre med det, af den simple grund, at Excel ikke formår at vise “Descriptions” fra measures.

Af andre udvidelser jeg har lavet, kan nævnes visning af “attribut properties” under dimensionerne. Endvidere har jeg i BUS matice og stjerne-skemaer tilføjet markering af mange-til-mange relationer. Denne type relation kan være en virkelig dræber for query performance og derfor rar, at være lidt opmærksom på.

SjerneskemaM2M

En anden lille detalje er tilføjelse for mulighed for at skjule/vise “hidden” objects, som i nogle tilfælde er fine at kunne se og andre tilfælde bare støjer. Derudover har jeg i rapporten med measures taget de expressions der angiver aggregering- og data type og ført tilbage i stored procedurer.

Slutteligt kan nævnes, at jeg netop nu sidder med et projekt, hvor jeg gemmer de meta-data der udtrækkes, så det er muligt at sammenligne kubens udvikling over tid samt danne sig et overblik over forskelligheder mellem miljøer. konkret handler det om at foretage automatisk unit test af kuber, hvilket jeg holder indlæg om på MsBIP møde nr. 18 og SQLSaturday #275.

Velkommen til min blog

Jeg har valgt at opstarte en blog, hvor vil jeg vil dele mine erfaringer fra mit praktiske virke som Microsoft Business Intelligence konsulent og underviser. Som du gerne allerede skulle have bemærket har jeg valgt at skrive på dansk, men kan dog ikke udelukke at der kan komme et engelsk indlæg i ny og næ, hvis jeg skulle gøre mig nogle opdagelser, som jeg vurdere hele verden kunne få glæde af.

Fokus for bloggen er helt klart til den tekniske side og være drevet af mine interesser, som primært er på front-end og herunder specifikt Analysis Services, Reporting Services og SharePoint. Jeg vil forsøge at komme med mine bud på guidelines og best-practices samt være lidt på forkant af udviklingen indenfor Microsoft BI. Kom endelig med kommentarer og spørgsmål.

Det er mit mål at skrive et indlæg ca. hver anden uge og gerne oftere. Jeg har pt. en liste på ni emner, så det skulle gerne give en fin start. Så nu bliver det spændende om jeg kan holde drivet :-D