Can I use BI Engine to speed up left outer joins in Google Data Studio? - google-cloud-platform

I currently need to blend two data sources (two distinct BigQuery tables) in Google Data Studio which means every time a report filter selection is updated, Data Studio needs to re-compute the left outer join on the fly (or at least it looks as if it is because it takes ages to load). I was reading about BI Engine and wondered if that could be useful for this use case in speeding up left outer joins in Data Studio?
https://cloud.google.com/bi-engine/docs/getting-started-data-studio

Yes, it should be.
For this use case, you should create a new view in BigQuery that joins the two tables. Then query that view directly from Data Studio. The guide you linked to has information on how to enable BigQuery BI Engine for your GCP project.

Related

Creating reports for each unique value in column in PowerBI

I am trying to find an answer if it possible to automate creating powerBI reports for each unique value in one of columns(It's like filtering on whole report for one of the values and publish report than change value to next one and repeat steps for other values)? Is there any fast way to do it? I wrote program to filtering via link and clicking mouse than save links for each person to excel but i wonder if there is more reliable and faster way to do it. I am using PowerBI premium for user.
This is typically called "Report Bursting", or "Data Driven Subscriptions", and here's a walkthrough of how to do it with Power Automate and Power BI.
Why don't you leverage RLS instead of hardcoding filters?

Creating a "since last refresh" KPI?

I have a PowerBI that pulls from an excel spreadsheet a current inventory of statuses of a system, lets make it easy and say I have a single measure that reads "40% complete".
If I refresh the PowerBI dataset and it now says "60%", is there any way to have a KPI automatically show +20%? Every example I've found requires you to have another dataset that keeps the historical data, and that's not really an option in this situation. Is there any way to calculate it or store it within the PowerBI query itself?
Power BI is not designed to store historical data. This is what a database is for.
In order to calculate that 20% difference, you need to store historical data somewhere but Power BI's purpose is to connect to sources and load data and then visualize it, not to act as a data repository.

PowerBI reports run slowly in DirectQuery mode

I have a powerbi report for finance. Users need to see the latest data in real-time, so I have to choose DirectQuery. But in this mode, some functions, such as DateAdd and DatesMtd, cannot be used
(This DAX function is not supported for use in DirectQuery mode.),
So I need to write a very complex SQL statement to achieve the equivalent effect, but this makes the report very slow (more than 10 seconds) every time it runs, and the largest table in my data model is less than 80000 rows. I've tried to optimize the SQL statements, but it doesn't help. Any solution?
(I use powerbi report server with sqlserver enterprise version)
Of course, with no information, I can't know what's taking so much time, but in order to understand what's happening you can use the following tools:
PowerBI Performance Analyzer: This will tell you what part is taking the most time. for more info see MSDocs & SQLBI
Check the datamodel and the storage mode of each table involved (ie: fact table, calendar, customer, etc). When querying the source, PBI won't use filters (directly in the query) that come from tables in import mode. (search for "composite models" on the web)
Limit the number of objects, for each object in the dashboard a query will be sent to the datasource, limiting the number of objects might help. (remember that objects wait for each other, so one slow loading object might cause your problem)
(even if you probably already did it) Have a look at the query execution plan, you can also check it for queries automatically created by PowerBI by capturing them (the easiest way is to use SQL Server Profiler)
I think that just by using PowerBI Performance Analyzer you will be able to see where the problem is, and then do more accurate search about it.
You need to search for those keywords;
Native query in power query: Some M language functions can directly be translated to SQL, so that all transformation happens in sql server side.
Aggregated tables in model view: aggregated views can be added for specific needs of visuals. Ex: if a visual has product category and amount as value you can connect aggregated sql table to the original one so that visual can pick up the value faster.
Hybrid tables: import mode and DQ mode can be used together. so you can use DQ for daily data and import mode for older data together.

Can PowerBI used to make reports from multiple SAP-BW cubes?

I am getting an error when I try to select multiple characteristics from multiple cubes, I am not sure if this is a supported scenario that PowerBI can connect to SAP-BW and can be used to fetch multiple characteristics from different cubes, is that possible or do we need to make a single cube for all the characteristics ??
You need to use the wizard to define one query to connect to one cube a time to get dimension characteristics and measures into one Power BI data model, and then repeat that through other queries. This way, you have multiple queries in Power BI to mash up with.
Within the same Query wizard, you cannot cross multiple cubes, because it's invalid MDX query.

Using merge in Power Query while keeping native query

I'm trying to reduce my dataset of 1.000.000 records to only the subset I need (+/- 500) by creating an Inner Join to a different table. Unfortunataly it seems that Power Query drops the "native query" and loads the entire dataset before reducing it by merging it with a related table. I have no access to the database unfortunately, otherwise I would have written the SQL myself. Is there a way to make merge work with a native SQL query?
Thanks
I would first check that your "related table" query can run as a native query - right-click on it's last step and check if View Native Query is enabled.
If that's the case, then it may be due to the Join Kind in the Merge Queries step. I've noticed that against SQL Server data sources, Join Kinds other than the default Left Outer Join tend to kill the Native Query option.