Lately, I started to deepen my knowledge about SAP Analytics Cloud, called SAC. It is an exciting tool that brings dozens of immersive experiences to end-users. Tableau can only dream about many of them.
However, developing in SAC is slightly different than in Tableau which is available over 10 years on the market. SAC is in a womb right now. Every quarter there are huge launches of SAC that change and still improves development experience.
Here I share my first impressions on dashboard development from the developer perspective. I’m comparing SAC vs Tableau 2019.
Before jumping into the topic, have a look at terminology SAC and Tableau use talking about the same functionalities. You will notice some of them are misleading.
|Tableau||Sap Analytics Cloud|
Some of you might not agree to compare Tableau story with SAC digital boardroom. Taking into account the capacity of tools I find the purpose of both features the same – it is the final presentation of the data to the audience.
#2 Architecture and data connection
The further differences in dashboard development are the side-effect of the different application architecture. That’s why both tools got a different strategy for sorting, data modeling, formating, undo and autosave capabilities.
SAP Analytics Cloud architecture
SAC is an exciting public cloud SaaS that revolutionizes analytics in the cloud by providing all smart tools in one product. You can digest your enterprise data through BI tool, predictive analytics, planning models and digital boardroom.
SAC Overview. More info here.
There are 2 types of connectivity:
- Live connection
One data source model might be used for multiple purposes without data replication.
- Data acquisition (batch)
Data import to SAP Analytics Cloud HANA (yes, SAC owns HANA in-memory database). If you change anything in the data source system, it doesn’t affect the data you imported.
Live vs data acquisition in SAC
To choose the proper data connection for your project, SAP Analytics Cloud recommends to consider:
- Functional needs
- Data Privacy constraints
- Data volume constraints
|Security||source system and security designed by CORS (required access to the same-origin policy in the web application) or reverse proxy||embedded in the data model in SAC|
|Data allocation||SAP Cloud Platform |
/ S4/HANA (cloud&on-premise) / HANA / BW / Universe
|data model in SAC|
|Data replication to SAC HANA||No||Yes|
|Data privacy||keeping data in the back-end||data replicated to SAC, but still completely protected|
|Data volume||query execution in the back-end||Limitation:|
Planning models: 250,000 dimension members
Analytic models: if there are more than 250,000 unique members, the dimension will be made read-only
Dimension members with attributes: 150,000
Dimension members in hierarchy: 150,000
Hierarchy depth: 1,000
|Performance||SAC stores only metadata to rebuild the query. The web browser memory keeps the encrypted metadata.|
Live vs. data acquisition in SAC
What browser is the best for SAP Analitycs Cloud?
SAC says they support the latest version of Google Chrome. Internet Explorer is also mentioned.
Tableau is a hybrid architecture where you can use in-memory extracts or live connections. The last one works well if you are connected to a fast database and need to analyze streaming data. To understand how Tableau works, it is worth to read Tableau Blueprint
Request flow in VizQL
VizQL is one or 3 sections in Tableau metadata management. The metadata model in Tableau looks so:
|VizQL||Data model||Data source|
|Dimension or Measure|
|Live or .hyper (extract)|
You can embed the metadata in a workbook or a Published Data Source on Data Server.
Request flow for VizQL
VizQL server processes the data in 4 distinct destinations.
Workbook metadata are stored in PostgreSQL. This database stores Tableau Server Repository where you find all logs about user interactions, extra refreshes, etc.
Extract metadata are in Tableau Server Data Engine. It is in action when you create, refresh, query the extract. Data Engine is designed for analytical query processing of complex datasets. This power is used when you create a cross-database join with multiple connections.
Live connection metadata stays on the Data Source site.
Published Data Source metadata stays in Data Server Extract. Data Server is also an important process on Tableau Server that enables connections to the data sources and querying the workbooks.
Live vs. data extract in Tableau
|Security||security and authentication within the database/within Tableau with permissions/hybrid approach||AD groups related to Tableau Server groups/row-level security|
|Data allocation||Data source||TWBX/Data Server Extract|
|Data replication to Tableau Server||No||Yes|
|Data volume||query execution in the back-end||Limitation:|
1 billion rows or 6 billion tuples (1 billion rows x 6 dimensions = 6 billion tuples)
|Performance||Unless you have issues with authorization on connectivity level, you can enjoy the speed of your in-memory database.||Pretty fast when you optimize it according to best practices for Tableau workbook performance|
Undo is not possible dashboard development in SAC. As a cloud application, SAC has a limited capability to undo and redo your changes. Data modeling part gives you an undo feature, but you cannot undo your steps in the story. If you aren’t familiar with SAC, I recall you story is a synonym for a dashboard in this case.
In Tableau you can undo your changes until the last saved version of the workbook.
In Tableau, autosave and workbook recovery exists.
In SAC you can forget about that!
Useful tutorials for SAC are definitely my Trojan Horse.
Every developer I know praises SAC Help button. Definitely, it is a good starting point to look up any encountered issues.
SAC Help is easily accessible in the upper right corner.
SAP Analytics Cloud Help includes Guided Page Tips, Quick Start, Wiki and Video Tutorials.
If you work mainly with SAP Analytics Designer, look at this 200-page-long Developer Handbook SAC Analytics Designer and Analytics Application knowledge database.
SAC gives a very convenient and flexible way to manipulate the size and position of the container. Every object is responsive so you don’t have to resize the fonts to adjust them to the whole layout.
Snap to grid resizing and flexible positioning is absolutely lovely feature. Praise SAC for designing it. It saves lots of time once you design your dashboard.
Tableau is proud of its flexible design capabilities. You can freely change padding for each of the worksheets and objects nested in the container. Unfortunately, you can’t turn on the gridlines to ease the layout management. Instead, you use horizontal and vertical containers that help you to adjust the proportion. In fact, it makes the work more complex if your dashboard is getting to be highly customizable. Then you have to play around many nested containers and alter paddings for each of them.
That is a pity because it is essential to perceive data visualization appealing. Golden ratio, 2:3 proportion or even proportion are synonyms of the appealing design.
Layout in Tableau enables padding alternation and dividing the grid by horizontal and vertical containers. Floating objects can be adjusted by defining X and Y position.
Both software is capable of advanced filtering. There are split by:
- global filters which filter the entire report
- local filters which filter the specific object
Filter the entire report
Global filters in Tableau and page filters in SAC do the same job. They filter across many dashboards.
In SAC cascade effect might be turned on or off. In Tableau you have more possibilities to define what filters you want to have cascaded. So that means you can shorten the time of query loading consciously.
Due to performance reasons, Tableau recommends applying filters only to the relevant worksheets. If you use multiple data sources, Tableau uses the power of parallel queries.
What is the parallel query in Tableau Desktop?
This feature is available from Tableau 10. The parallel query reads the data from different connections at the same time. You can configure the query in
connection-configs.xml which default path is
C:\Program Files\Tableau\Tableau <Version> on Windows.
There you can change:
- the total number of parallel queries
- limits for a particular server or SQL server
- the total number of data sources that Tableau Desktop queries parallelly in a cross-database join.
Filter the specific object
In SAC setting up the filter range is a piece of cake. In Tableau it is a longer process: you have to define a separate Set from Dimension which you put later as a Quick Filter.
Define set in SAP Analytics Cloud: choose Edit Filter…
Define set in SAP Analytics Cloud: select members for your set filter from the left-side menu:
You create a set filter in SAC pretty faster than in Tableau. In SAC you decide if you want to show or hide inactive values.
SAP Analytics Cloud: Hide Inactive Values in the filter:
Personally, I don’t find it so user-friendly to show inactive values. Very often you got tons of attributes that you simply don’t want to share with your user, such as Null, Other, Unassigned, N/A, Unknown. In SAC, the end-user has a possibility to to “Show Inactive Values” in the filter. In Tableau, you have more flexibility to hide such data from the end-dashboard. However, I fully understand the intention of SAC. Showing inactive values builds trust. In particular, when the user is unfamiliar with the tool, he or she needs to double-check all visible data. The possibility to preview the inactive values makes the interaction with the dashboard more comfortable. The user might understand better what exactly he or she looks at. This is an important aspect of data storytelling.
#7 Create a new calculation
Here I find Tableau much more convenient than SAC. In Tableau you got one console to type any kind of calculated fields. In SAC there is a split of calculations based on that what you are going to achieve. The learning curve of this is a bit longer. Anyway, you can get used to it. There are many restrictions using live data connection with BW such as no dimension calculations.
SAP Analytics Cloud select calculation type before creating any calculation.
#8 Copy elements across dashboards
The functionality of copying the object to other dashboards is quite similar. In Tableau you can duplicate the worksheets, workbooks and fields. That shortens the time of development. However, duplicating and formatting some worksheets might be time-consuming.
In SAC duplicating the objects goes much easier.
#9 Parameters and Measure Input Control
Parameter setup in SAC is way faster than in Tableau! You simply select the breakdown by measure. It is called Measure Input Control.
SAP Analytics Cloud: in Designer, select one or more Measure, select Measure Input Control…
SAP Analytics Cloud: Switching between parameter values
#10 Present the report in the meeting
The final presentation of the report is storytelling that leads the users from one point to another.
In Tableau, stories are static presentation of dashboards.
In SAC, digital boardroom can be static or flexible. It includes:
- a custom navigation (custom page, to which pages we are allowed to go to)
- navigation with context by dimension (e.g. by department)
#11 Object development and formatting
The flow in SAC looks so: you develop and format the widget based on functionalities you see on the right-hand side. Then you find the widget on the canvas, click on … –> Show/Hide to customize the view.
SAP Analytics Cloud: Show/Hide gives you the possibility to customize the chart. You can either hide or show the features you set up in settings on the right-hand side.
In Tableau you develop and format everything on the left-hand side. By drag and drop you add the next pills that store information about measures and dimensions. You put to the canvas as much as you want to see as Text, Color or Size. I have to admit that SAC solution is much clearer than Tableau. However, it took me some time to get used to it.
Tableau: drag and drop pills with necessary measures and dimensions you need to see in the chart. Depending on the worksheet’s complexity, you might have a long pile of pills with text, details, and tooltips.
#12 Reference line
Tableau capabilities for reference lines are very flexible and I don’t have any objects to that. You might display values, custom description and format it as you wish.
In SAC, you are unable to show description and reference value at the same time! It is ridiculous!
SAP Analytics Cloud: In the reference line you can show either the value or description of the reference line.
Tooltips for reference lines behave the same way in both tools. You get a tooltip that you cannot hide and usually, it shows not so insightful and well-understood information for the end-user.
SAP Analytics Cloud: tooltip for the reference line.
#13 Dynamic titles
In SAC and Tableau, you have the possibility to add dynamic headers to your charts. In both cases, there is some pain in a neck if you care about the user experience. I miss some grammar customization. What do I mean by that? A default recognition between plural and singular. If you select 1 region, it would be great to say Overview in EMEA region instead of Overview in EMEA regions. You can work around it by creating multiple calculations that count the number of attributes in the selected filter. Still, this is not a point of intelligent application. I wish someday it will be done automatically by the tool.
Add a Dynamic Text in SAP Analytics Cloud:
Add a Dynamic Text in Tableau:
Even though I praise SAP Analytics Cloud for being faster and more intuitive in creating some parts of the development, I still prefer to work in Tableau.