What is the New D3.js Visualization Engine for Power BI?

The other day someone asked me about the Silverlight dependency as it relates to Power BI. I got to talking about that and the new visualization engine underlying Power BI Desktop, and here we are with a blog post. This discussion is as of early August 2015.

New Capabilities for Power BI Desktop

The latest release of Power BI Desktop includes a new visualization engine based on D3, which stands for Data-Driven Documents

D3.js is a JavaScript library of objects to produce sophisticated, interactive, dynamic data visualizations using modern web-based technologies. Translated...this means that D3 is the connection point between a user interaction and the data underneath, allowing a web page to dynamically change rather than remain static. As the D3.org website states:

"D3 helps you bring data to life using HTML, SVG, and CSS."

It's based on open standards which will be meaningful for customized Power BI visualizations (discussed in the next section). D3 has a ton of community support, documentation, and examples to help getting started with the framework. D3 is very flexible and customizable, though the tradeoff is a learning curve.

Ability to Create Custom Power BI Visuals

Microsoft has released an open source project on GitHub. This is the first step towards developers being able to create customized visuals for Power BI dashboards and reports. A lot of customers, partners, and ISVs are looking forward to this extensibility. This means that we'll no longer be limited to whatever visualizations are baked into Power BI Desktop. I'm sure we'll see some really innovative and interesting visuals. Oh, I'm certain we'll see some ugly ones too.

At this point (Aug 2015), Microsoft has released the source code and announced custom visuals ability is coming. There's no indication yet as to a date when Power BI custom visuals will be fully functional, but it probably won't be long since the Power BI team is moving at an amazing pace.

Getting Started With Custom Visuals for Power BI

There's a *lot* of tutorials available online for learning D3. Most of the educational materials say that it's helpful to also be familiar with the following:

  • HTML. Structural elements for web pages. Power BI is using HTML5.
  • CSS. Styling of web pages. Power BI is using CSS3.
  • Javascript. An object-oriented programming language that allows display to change based on user interactions. This is code inside the HTML that will work with D3; everything ends up getting compiled down to Javascript.
  • SVG, Web GL, Canvas, etcOptional - graphics formats which support functionality such as interactivity and animation. Power BI is flexible with which graphical API you prefer to use, but their open source project is all D3.

Regarding how these components fit together, here's a helpful quote from dashingd3js.com:

"D3.js helps you attach your data to DOM (Document Object Model) elements. Then you can use CSS3, HTML, and/or SVG showcase this data. Finally, you can make the data interactive through the use of D3.js data-driven transformations and transitions."

I would also add that at least some basic knowledge of good data visualization practices is also necessary. Effective visuals are extremely important for communicating information clearly and concisely. Just because it's pretty doesn't mean it's effective, right?

Power BI Components Using Silverlight 

So, given the new D3.js news, what does that mean for the elements that use Silverlight? Well, that's a good question. I don't believe Microsoft has announced timing for when Silverlight will be phased out. At this point, the following Power BI components still rely upon Silverlight:

  • Power View for Excel
  • Power View for SharePoint
  • Power Pivot Gallery in SharePoint

Finding More Information

D3.js.org site

D3.js repository on GitHub

Power BI Visuals on GitHub  <--includes documentation and prerequisites

List of interesting libraries, plugins and utilities

List of D3 tutorials, techniques, blogs, books, courses, and videos

Will the Real Power BI Please Stand Up?

Power BI V2 went GA last week. This means it's no longer in "Preview" status; it's "Generally Available." Preview offerings are not intended to be used in Production environments, so now companies can begin formally converting over from Power BI for Office 365 (V1) to the new Power BI service (V2) when they're ready.

Different Ways Power BI Can be Utilized

If you are just beginning to research Power BI or haven't needed to pay extremely close attention to its evolution these past couple of years, you might find information online to be confusing or contradictory. The way I usually explain it is that there's four ways Power BI could be deployed depending on which components you choose to use.

With option 1, you're using just the Excel add-ins (Power Query, Power Pivot, Power View) and/or just the Power BI Desktop application. Those files are saved and shared on the file system. Although it's not an end-to-end solution, this mode certainly does offer a lot of functionality.

Option 2 is the on-premises solution utilizing SharePoint. It's been around quite a while now. There are some meaningful differences between using full-fledged SharePoint vs. the online services. 

Option 3, Power BI for Office 365 (aka V1), is being retired in favor of Option 4, Power BI Dashboards (aka V2).

When discussing Power BI these days (mid-2015), people are usually talking about #4 which is the end-to-end solution. Although sometimes they could be talking about just option #1 without the web-based component. #2 is still a viable solution; it's just not the "hot" thing right now & doesn't get talked about much.

 

My purpose for writing this post is this... Please, please pay attention to the age of the article or blog you're reading and which product it relates to.  If you're reading an older page about V1, chances are at least some of the information isn't accurate regarding V2. If you're reading about Power Pivot for SharePoint, very little will line up with the Power BI V2 Software-as-a-Service model. Even reading about Power View functionality within Excel versus within the Power BI Desktop differs significantly. 

Handling Power BI SSAS Connector Error: Unable to Obtain Anti-Forgery Token from the Host Service

Just a quick post on an error I saw today. In the Power BI Preview, my SSAS Connector isn't working properly for some reason. So I went back to the Power BI Analysis Services Connector on the machine where it's installed and got the following error:

Unable to obtain the anti-forgery token from the Host Service.
 

Next I went to the Event Viewer. If you expand the Data Management Gateway Node under Applications and Services Logs, sure enough, I have a warning that says:

User domain\user is not authorized to access the gateway. Please make sure the user belongs to the "Data Management Gateway Users" security group directly or indirectly.
PBIError2.jpg

Turns out I set it up the first time under one of my other admin accounts. Quick fix. In the Local Users and Groups section, there's a group called Data Management Gateway Users. I just needed to add the relevant user account there. This is true if you have multiple people managing a server as well.

Now the appropriate admin account is able to access the Power BI Analysis Services Connector properly for troubleshooting purposes.

Comparison of Datazen vs SSRS vs Power View

My first thoughts when I heard about the Datazen acquisition were…How is it different? When do I choose to use it? What are its strengths?  I summarized some high level use cases in this blog entry I published on the BlueGranite site. In this post I would like to go through some detailed comparisons between Datazen, Reporting Services, and Power View. Note that I’ve chosen to focus on Power View rather than Power BI as a whole because Power View is the primary visualization component within Power BI (whereas Power Query and Power Pivot are more about data shaping and data modeling which isn’t as directly relevant when compared to Datazen and Reporting Services). For brevity I’ve omitted Excel and Performance Point from the comparison as well. Also, Power BI for Office 365 is *not* addressed here since it’s being phased out for Power BI v2 – any Power BI references here refer to the Power BI Preview also commonly known as v2.

References below are applicable to:
-Datazen Version 3.0
-Reporting Services in SQL Server 2014
-Power View for Excel 2013
-Power View for SharePoint 2013
-Power View in Power BI Preview (v2)

This analysis is as of mid-June 2015, and will certainly evolve and change as Datazen becomes more integrated in the Microsoft ecosystem, as Power BI evolves, and with SQL Server 2016 coming out soon. 

Logo - Datazen.png

Overview

 

Datazen

Reporting Services

Power View

Primary purpose

Traditional structured reporting (pre-defined queries and drill paths)

Traditional structured reporting (pre-defined queries and drill paths)

Data discovery / interactive exploration

Architectural mode

Standalone (supports Excel file sources only)

or

Datazen Server (opens up many more data sources, sharing, mobile delivery, refreshing, use of live tiles, use of KPIs)

Native Mode

or

SharePoint Mode

Power View for Excel

or

Power BI Designer

or

Power View for SharePoint

 

Both Excel and Power BI Design can be used standalone or in conjunction with the Power BI portal (SaaS cloud app)

Installation components

Server: Datazen Server (core service repository is built on RavenDB)

 

Client: Datazen Publisher (available in Windows store)

 

Mobile viewer apps: Available for iOS 7+,

Android 4.1+,

Win8+,

Win Phone 7.1+

Native Mode: Report Manager with ReportServer

 

SharePoint Mode: SharePoint with ReportServer

 

Client: Visual Studio with SSDT or BIDS

and/or

Report Builder (click-once app)

Power View for Excel (enabled in Excel)

or

Power BI Designer (standalone download)

or

Power View for SharePoint (part of SSRS in SharePoint)

 

 

 

Deployment and Delivery

 

Datazen

Reporting Services

Power View

Delivery approach

On-premises (or IaaS)

On-premises (or IaaS)

Hybrid (full functionality)

or

On-premises (subset of functionality)

Access types

Native mobile apps (calls REST APIs)

or

Web browser viewer (HTML5)

or

Mobile device chrome shell

or

Embedding in a custom application

Report Manager web app (Native mode)

or

SharePoint

Excel (client)

or

SharePoint

or

Power BI portal (SaaS cloud app)

Mobile delivery capabilities

Native apps:

iOS,

Android,

Windows

+ HTML5 in browser

No native apps

 

Partial support across mobile devices and browsers (requires SQL Server 2012 SP1+)

Native apps:

iOS,

Windows,

Android coming soon

+ HTML5 in browser

 

(Excel and SharePoint still based on Silverlight)

Organization of content

Hub in the Datazen Enterprise Server

Native mode: folders in Report Manager

 

SharePoint mode: sites, document libraries, folders in SharePoint

Structuring content across functional areas and/or user groups is not yet released in Power BI v2

Support for anonymous users (public)

Yes (guest account)

Yes (custom authentication)

Not yet

Support for row-level security

Yes (personalized data views)

Yes (if data source is using Windows authentication; not applicable to subscriptions which require ID/PW to be specified)

Yes (only if using SSAS Tabular data source in Power BI v2 which passes EffectiveUserName)

 

 

Development

 

Datazen

Reporting Services

Power View

Design approach

Design-First (layout with simulated data to refine design before associating layout elements to data views)

or

If preferred, Data-First

Data-First (report connects to an embedded or shared dataset query)

Data-First (report connects to an existing model or data source)

Development environment

Dashboards: Datazen Publisher (a Win 8+ app also known as Datazen Designer)

 

KPIs, Data Connections & Data Views: Control Panel (web app)

Report Designer (Visual Studio/SSDT/BIDS)

or

Report Builder (click-once app)

Power BI Designer

or

Power View for Excel

or

Power View for SharePoint (web)

Typical content creator

Dashboards:

IT developer

or

Power user

 

Data Connections & Data Views: IT developer

or

Proficient power user (need to be able to write SQL, MDX, or DAX queries as there’s no drag & drop UI)

IT developer

or

Proficient power user

Data analyst (Power View was created purposely to have a low learning curve)

Creation of underlying report query

Need to write query which is contained within a data view (need to write syntax)

Need to create query which is contained within a dataset (can write syntax or use a UI)

Drag and drop (cannot write specific underlying query)

Designer

‘Snap to Grid’ system (ex: 5 rows x 6 columns)

 

3 layouts: Master, Tablet, and Phone

Free-form layout (with precise alignment ability in body, header, and footer)

Free-form layout (without precise alignment ability)

File extension

.datazen

.RDL

.XLSX (Excel)

or

.PBIX (Power BI Designer)

or

.RDLX (Power View for SharePoint)

 

 

Features

 

Datazen

Reporting Services

Power View

Parameterization

3 types:

Time navigator,

Scorecard grid,

Selection list or tree

Parameter pane

Slicers (placed on the report body)

or

Filters pane (scoped for view or individual table/chart)

Color palette

Style selections applicable to entire dashboard

 

A custom color palette can be defined using configuration files if desired

Standard color selections for individual charts

 

Can customize colors using custom color palettes, expressions, or custom code

Style selections applicable to entire report

Pixel-perfect formatting control

No

Yes

No

Switch chart types on the fly

No

No (potential workaround with parameterization and show/hide properties)

Yes

Interactive cross-filtering and highlighting behavior

No

No

Yes

Calculations and expressions

Straightforward options (Sum, Avg, Count, Min, Max, First, Last)

Many options within the dataset, expressions, and custom code

Straightforward options (Sum, Avg, Min, Max, Count)

Built-in maps

Bubble map,

Gradient heat map,

Range stop heat map,

Custom ESRI shapefile

Bubble map,

Filled map,

Line map,

Marker map,

Custom ESRI shapefile

Bubble map,

Filled map

 

Uses Bing Maps API

Multiple data sources allowed per individual report / dashboard

Yes (needs a join key in some cases)

Yes (one data source per dataset is general rule, though a tablix expression can reference another dataset and/or lookups can be utilized)

No (workaround is to integrate data first in underlying data model)

Shared datasets (i.e., reusable queries across multiple reports / dashboards)

Yes (data views on the server can be shared within the scope of a hub)

Yes (embedded dataset can be promoted to be a shared dataset)

N/A (queries aren’t explicitly written for Power View as it’s a drag and drop interface)

Shared report elements (i.e., reusable charts and tables across multiple reports / dashboards)

Report elements: Not shareable across multiple master views or multiple dashboards (tablet and phone views utilize some or all elements from a single master view)

 

KPIs:  KPIs are independent of dashboard elements; a KPI can drill to a related dashboard

Yes (report parts which are elements such as tables, charts, gauges, images, maps, parameters, etc. published for reuse)

Yes (Power BI v2 portal  supports the ability to ‘pin’ a report element onto one or more dashboards after the report has been published to the Power BI site)

KPI repository

Yes (defined in the Control Panel web app)

Indirectly (a KPI can be used from the underlying SSAS or Power Pivot data model, or an indicator can be defined inside of an individual report)

Indirectly (a KPI can be referenced from the underlying SSAS or Power Pivot data model)

Drill-down (additional detail on the same report)

No

Yes

Yes

Drill-through (additional detail on a different report)

To another dashboard

or

To custom URL (incl to other reporting tools such as SSRS or Power View for SharePoint)

 

Requires the dashboard to be published & not in standalone mode

To another report

or

To custom URL (incl to other reporting tools)

Not yet

Alerts

No

Yes (data-driven alerts in SharePoint mode only)

Yes (simple high/low alerting on a single numeric tile - available in v2 mobile app only)

Subscriptions / automated report delivery

No

Yes

(E-mail,

file share,

SharePoint doc library,

preload a cache)

No

Snapshot reporting

No

Yes (report execution snapshot to improve performance, or report history snapshot to store report as of a point in time)

No (even a Power Point export from SharePoint retains a live connection so it’s not an ideal tool for a point-in-time snapshot)

Pinning of report elements

KPIs can be pinned to Windows 8 start page as a live tile

 

Dashboards can be pinned to Windows 8 start page as a shortcut to open dashboard

No

Yes (in Power BI v2 portal, an item on a report can be pinned to one or more dashboard pages)

Support for Analysis Services Multidimensional

Yes (requires a flattened MDX query to be provided; Datazen ignores items on the rows-workaround can be calculated members for display of attributes or use of DIMENSION PROPERTIES MEMBER_CAPTION)

Yes (requires a flattened dataset with only two axes)

Supported in Power View for SharePoint (support coming soon to the other ‘flavors’ of Power View)

Support for Analysis Services Tabular

Yes (requires a DAX query to be provided)

Yes

Yes

 

 

Integration

 

Datazen

Reporting Services

Power View

URL-based report launching

Yes

Yes

Yes (if published to SharePoint or to the Power BI portal)

Embedded BI in a custom app

Yes

Yes

Not yet

Embedded in SharePoint

Yes

Yes

Yes (if using Power View for SharePoint)

 

 

 

Performance and System Monitoring

 

Datazen

Reporting Services

Power View

System administration

Datazen Server Control Panel (web-based)

Report Server,

Report Manager,

SharePoint

N/A for now

Server-side caching

Cached data views (vs. real-time data views) can be created on a schedule

 

Dashboard thumbnails and definitions cached

 

A shared cache service, such as Azure Cache, can be employed

Reports can be cached on a schedule to improve performance of longer-running reports

Caching in place for continued display of dashboard tiles (thumbnails) in Power BI portal (refreshed automatically every 10 minutes)

Mobile app caching

Offline mobile access of dashboard with background sync at specified intervals (an alternative to real-time which does not cache locally)

N/A

Data saved in the app cache for offline mobile access

Redundant storage of data along with report itself

No (if using a data source from the Enterprise Server)

 

Yes (stores copy of data if running in standalone mode & Excel is the data source, this data is imported & stored in the report definition)

No

No (if utilizing Power View in conjunction with supported direct-connection sources)

 

Yes (stores copy of data if utilizing Power View in conjunction with an embedded Excel data model in the same file)

Execution logging (reports executed by whom, run times, etc)

Not built-in (workaround is to build a custom activity tracking table)

Yes (report server DB execution logs)

Not available

Scale-out

Yes (most of the Enterprise Server services can be distributed)

Yes (multiple distributed report server instances with a single report server DB)

No