Skip to main content

Red Vs Blue Pill - Making the right decision on the choice of BI Server

This universe is governed by a cosmic duality, sets of two opposing and complementing principles or cosmic energies that can be observed in nature. 

There's Yin and there's Yang...

There's relational and there are non-relational databases...

And of course, the visualization tools; There's Tableau Server and there's Power BI Embedded.!!

The Yin & the Yang.

There's no such thing as a perfect BI server that solves everyone's (the admin, the data-scientist, the analyst, the end-user) problems. Each of these tools outweighs each other in several aspects and we are about to settle the score once and for all on a one-on-one comparison between Tableau Server and Power BI Embedded.

By the time when you are done reading these articles, you should be able to answer the following question: 
Should you choose Tableau Server or Power BI Embedded? 

After this there is no turning back. 

Choice of the Cloud & Databases:

Are you using Microsoft SQL server or are your servers hosted on Microsoft Azure? well, why not use Power BI? Yes, you heard me right, you've got a good edge over the Tableau. Check if the datasource that you are using, is developed or maintained by Microsoft or even better - Check if your database is compatible for not being required to have an on-premises data gateway from this link.

Of course, this is not the case with Tableau; with the wide variety of connectors and drivers to establish the connectivity, Tableau seems to be much more friendly in terms of the databases. Also, with the support toward Tableau Server packages for Linux, Tableau servers have become much more efficient in managing the resources.

Data Extracts & Refreshes:

How huge is your data? And are you using extracts or live connections?
Of course, you may follow all the good practices; if your extract still happens to be huge in size, Tableau seems to be a better choice. The ability to devise a multi-node architecture for the tableau server is a better fit to improve the performance of the data extracts and data refreshes.
In the case of Power BI, the rate of refreshes depend on the size and configuration of the data gateway instance deployed in the same subnet as that of the databases (for Non-Microsoft databases).

Visualization Renders:

Visualization is the core of the BI exercise. And if those dashboards are not loading on time, that's gonna hit you real bad. The rendering is all dependent on the hardware - especially the memory. In Tableau, you get to control your hardware - whether it's a cluster setup or a single node setup.
Tableau is clearly the winner here, since you are not limited by the number of renders happening. 

This is not the case with Power BI where you need to purchase a premium dedicated capacity for the rendering to happen; the lowest configuration - A1 has a capacity of performing about 300 renders per hour with a price of 1$ approx per hour.
Well, it doesn't stop there.  and when your audience grow and when you go up the ladder all the way from (A1 to A6) configuration, you will know that you are shelling out huge amount of money (could go all the way up to 36 times that of the cost of A1).


How many viewers are about to have a look at your dashboards? Is it going to be the dashboard with your visualizations on it or is it going to be just the PDF rendering of your dashes?

For client side renderings; Since, Tableau has a cluster setup available to be configured with multiple nodes, each of which can be assigned with the specific processes and dozens of other tweak-able options in hand; scalability is at disposal for the Tableau admins.

Does it mean that Power BI is up for no good? Definitely not. They do have dedicated capacity which can be modified based on the peak hour refresh rates and number of renders happening in an hour.

We don't have any winners for this round, since both the services incur similar costs when it comes to the licensing aspect.

Licenses & Pricing:

By this time, you might have figured out the right BI tool for the job. And that's the reason why pricing comes at the end.

This topic by itself requires a separate post to talk about as a whole. We will try to cover as crisp as we could in this section.

Let's look at a hypothetical scenario, Shall we? Consider an Organization with about 200 data scientists; let's estimate the Pricing for both Tableau Server & Power BI Embedded.

Tableau Server - Requisite & Cost: 

1. License for the users to use Tableau Desktop & publish to tableau server [70$ per user per month].
2. A tableau server hosted an a compute instance with at least 8 physical cores and 32 Gigabytes of RAM (if a cluster setup is required for a better performance - add two more instances with at least 4 cores and 16 Gigabytes of RAM to it) [Single node - 0.70$ per hour; Cluster 0.70$ + 0.38$ + 0.38$ = 1.46$ per hour].
3. A Server creator license with the required number of creators [70$ per user per month].

Total incurred cost per month: (200*70)+(1.46*730)+(200*70) = 29065.8$ per month (For a cluster Setup)

Power BI Embedded - Requisite & Cost:

1. Pro License for the individual users [9.99$ per user per month].
2. A Power BI Embedded dedicated capacity for performing the refreshes on a custom workspace - let's consider A4 for the sake of the discussion [$8.06 per hour].
3. A data gateway inside the same subnet as that of the database (recommended configuration of 4 cores and 16 Gigabytes of RAM) [0.38$ per hour].

Total incurred cost per month: (200*9.99)+(8.06*730)+(730*0.38) = 8159.2$ per month 

Now that we have the facts right., it's time to pick our winner!! There isn't.. Both are good contenders and it all comes down to our requirement & usage.

Let's build Visualisations; not wage wars!!


Popular posts from this blog

Elasticsearch to MongoDB Migration - MongoES

The following are some of the instances where the developers simply love to hate! The one-last-thing syndrome - This reminds me of the following quote:   The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time. —Tom Cargill, Bell Labs, from the book `Programming Pearls ` QAs declaring certain undocumented features to be as bugs - Seriously, this create traumas for a devloper.Interruptions during coding - Here's an idea. Try talking to developers while they code; chances are, they have just about <10% of your attention. There are some problems which we get used to..

But, there are others which makes us wanna do this..

DISCONNECTION FROM THE SERVER DUE TO BAD INTERNET DURING A MIGRATION - Ouch!! That's gotta hurt real bad. Talking about ES to MongoDB Migration  - How hard could that be? Good Side: JSON objects are common for both. Numerous tools to…

Flyway - Database Migrations made easy & How not to accidentally Roleback all of your migrations

Flyway - by boxfuse: Is a schema migration tool and it acts more of like a version control for your relational databases.

If you are manually executing your sql scripts or if your administrator is manually executing the sql scripts, on your production or UAT environment, you definitely need this tool to be setup in all of your environments.

Before we proceed:

Statutory Warning: 

Never ever execute the following command, be it your production or UAT environment:

$ flyway clean   # Do not execute this, ever!!!!

Wondering what it does? It roles back whatever table migrations/changes you have done through flyway, along with their data. 

In short, Don't ever execute this command.

Now that we are done with all the warnings:

Installation:It is fairly straight forward:
Run the above command in a shell prompt.
Running the above creates a directory called as flyway-x.x.x/
Inside this directory are many other directories of which, the two most import directories are:
 conf/ - Configuration for eac…

ES Index - S3 Snapshot & Restoration:

The question is.. What brings you here? Fed up with all the searches on how to back-up and restore specific indices? 

Fear not, for your search quest ends here.!

After going through a dozens of tiny gists and manual pages, here it is.. We've done all the heavy-lifting for you.

The following tutorial was tested on elasticsearch V5.4.0

And before we proceed, remember:


Make sure that the elasticsearch version of the backed-up cluster/node <= Restoring Cluster's version.


Unless it's highly necessary;

curl -XDELETE 'http://localhost:9200/nameOfTheIndex

      - deletes a specific index

Especially not, when you are drunk!:

curl -XDELETE 'http://localhost:9200/_all

      - deletes all indexes (This is where the drunk part comes in..!!)

Step1:Install S3 plugin Support:        sudo bin/elasticsearch-plugin install repository-s3
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install repository-s3

Depends on w…