In April 2016 a bunch of fantastic features added to Power BI Desktop. Some of these features like Query Parameters, Power BI Templates and new drill action to see records quickly grasped my attention. I wrote about Query Parameters before. You can learn how to use Query Parameters in Power BI Desktop here or some more complicated use cases like Query Parameters and SQL Server 2016 Dynamic Data Masking (DDM) here.
Another cool feature is adding Synonyms to the model. Power BI Synonyms can significantly improve the Q&A and query experience. With synonyms we can now add some other forms of names for our tables, columns and measures in Power BI Desktop model which makes using Q&A even easier for our customers to find what they are looking for. The customers don’t know all table, column or measure names. Defining common separate list of names for tables, columns or measures makes Q&A much more useful.
For instance, we can add the following synonyms:
Note: The following tables and columns are from AdventureWorksDW.
|Original Name||Object Type||Synonym|
|FactInternetSales||Table||Internet Sales, InternetSales|
|OrderQuantity||Column||Order Quantity, Order Qty, ord qty|
|SalesAmount||Column||Sales Amount, Sales Amt, Internet Sales Amount, Internet Sales Amt|
|TaxAmt||Column||Tax Amount, Tax Amt|
How it works
It’s easy to setup synonyms in Power BI Desktop. Switch to relationship view then click “Synonyms” from “Modeling” tab from the ribbon. Then simply enter the synonyms.
After we publish a Power BI Desktop model to Power BI Service, the synonyms will play a great role in Q&A so that when the customer types “ord qty” the Q&A engine will recognise it as “OrderQuantity” and displays the results. It’s really cool isn’t it?
But, let’s think a little bit out of the box. What if we add some translations as synonyms? Hmm. I think it would be really great that a Spanish customer can type Spanish column names in Q&A rather than English. I added some translations to FactInternetSales columns and DimDate columns.
Thanks to Google translate for French and Spanish translations. Sorry French and Spanish guys if the translation looks funny.
Now I publish the model to Power BI Service. To do so, just click on “Publish” from “Home” tab from the ribbon.
Create a New Dashboard
We can use Q&A in Power BI dashboards, so we need to log into Power BI service
- Click “Create dashboard” ()
- Enter dashboard’s name
Link A Dataset to the Dashboard
To link a dataset to a dashboard we need to pin a visual from a report that is created on of of a dataset. We can also pin the whole report to the dashboard. So a dashboard can be linked to many different datasets.
- Click the report we published from Power BI Desktop
- Click “Pin Live Page” ()
- Select the dashboard we created earlier from the existing dashboards dropdown list then “Pin live”
Enable Q&A in the Dashboard
- Click the ellipsis button right to the dashboard we created earlier
- Click “Settings”
- Make sure “Show the Q&A search box on this dashboard” is ticked. If it isn’t already ticked, tick the box
- then “Apply”.
- Open the dashboard we created earlier
- There should be a Q&A box on top of the dashboard
- Start typing in the Q&A box (I typed Sales Amount for Calendar Year in French)
- Pin the visual to the dashboard
As you see it worked perfectly. I typed another query in Persian and here is the result:
Here is another query combining different languages:
It is trivial that we still need to type some key words in English if want to, for instance, change the chart types. Look at the below query:
We can use synonyms to make Q&A more useful for the end users. So adding translated columns based on the end user’s language would be a great idea. However, we need to make it clear to the end users that they still need to use the keywords in English to get the most out of Q&A. Some languages are right to left so you need to change the keyboard layout several times to write a Q&A query. This might be quite confusing for the users. So depending on your case you may or may not add column translations as synonyms.