People are starting to get tired of Excel. They're sick of static pivot tables, and everyone is asking for "interactive and pretty dashboards". They want to click on charts and have everything magically filter.
I've set out to evaluate the two tools that are revolutionizing the self-service Business Intelligence market: QlikView (version 11) and Tableau (Desktop 7.0).
Two completely different technical philosophies
At the interface level, both seem to do the same thing (draw colorful charts), but under the hood, they are entirely different beasts. Us IT folks like to tear apart the engine before buying the car, and this is what I found.
QlikView: The in-memory associative engine
QlikView doesn't query the database every time you click. It uses its own scripting language (very similar to SQL) to extract all the raw data and compress it into the server's RAM using an associative engine.
This forces the developer to explicitly program the data model in its editor.
// Typical load script in QlikView
Ventas:
LOAD
IdVenta,
IdProducto,
IdCliente,
Importe
FROM [BaseDatosSQL] (sql);
// Resolving a synthetic key
Productos:
LOAD
IdProducto,
Upper(NombreProducto) as NombreProducto
FROM [Excel_Productos.xls] (biff);
The brilliant thing about QlikView is that, since everything is in RAM, when you filter by a "Client", it automatically highlights in green the products they bought, in white the associated ones, and in gray the ones they didn't buy. It calculates mathematical relationships on the fly in microseconds. The downside is that the script's learning curve is steep, and if you have a billion records, you need a server with hundreds of Gigabytes of RAM.
Tableau: The king of visual SQL
Tableau takes another path. It connects to the database (be it SQL Server, Oracle, or a cube) and uses a patented technology called VizQL. Basically, it translates every drag-and-drop action of a field in the graphical interface into a hyper-optimized SQL query that it throws against your database in real time.
You don't have to write data modeling code. Tableau is exquisite visually; it makes complex charts look easy. However, its performance is directly tied to how well optimized your underlying database is. If your SQL Server is slow, Tableau will be slow (unless you use its .tde extracts).
Reflection: The danger of self-service
Technically, I love the control over the data model that QlikView's script gives me, but I understand why business analysts drool over Tableau's interface.
This transition from IT reports to "self-service" visual tools marks a turning point. We are giving business users the power to explore the data themselves without asking for our permission. This is fantastic for agility, but the underlying danger terrifies me: a user without statistical knowledge dragging meaningless fields into Tableau can create a gorgeous chart that shows a completely false correlation. Now, our job isn't just to write code and maintain databases, but to educate the company so they don't shoot themselves in the foot with these new tools.