Home Business Intelligence Optimising OData Refresh Efficiency in Energy Question for Energy BI and Excel

Optimising OData Refresh Efficiency in Energy Question for Energy BI and Excel

Optimising OData Refresh Efficiency in Energy Question for Energy BI and Excel


OData has been adopted by many software program options and has been round for a few years. Most options are utilizing the OData is to serve their transactional processes. However as we all know, Energy BI is an analytical resolution that may fetch lots of of hundreds (or thousands and thousands) rows of information in a single desk. So, clearly, OData is just not optimised for that type of function. One of many largest challenges many Energy BI builders face when working with OData connections is efficiency points. The efficiency relies on quite a few components similar to the dimensions of tables within the backend database that the OData connection is serving, peak learn knowledge quantity over durations of time, throttling mechanism to manage over-utilisation of assets and many others…

So, typically talking, we don’t count on to get a blazing quick knowledge refresh efficiency over OData connections, that’s why in lots of instances utilizing OData connections for analytical instruments similar to Energy BI is discouraged. So, what are the options or alternate options if we don’t use OData connections in Energy BI? Nicely, the very best resolution is emigrate the info into an middleman repository, similar to Azure SQL Database or Azure Information Lake Retailer or perhaps a easy Azure Storage Account, then join from Energy BI to that database. We should resolve on the middleman repository relying on the enterprise necessities, expertise preferences, prices, desired knowledge latency, future help requirement and experience and many others…

However, what if we should not have some other choices for now, and now we have to make use of OData connection in Energy BI with out blasting the dimensions and prices of the undertaking by shifting the info to an middleman area? And.. let’s face it, many organisations dislike the concept of utilizing an middleman area for varied causes. The best one is that they merely can’t afford the related prices of utilizing middleman storage or they don’t have the experience to help the answer in long run.

On this put up, I’m not discussing the options involving any alternate options; as an alternative, I present some ideas and tips that may enhance the efficiency of your knowledge refreshes over OData connections in Energy BI.


The guidelines on this put up is not going to offer you blazing-fast knowledge refresh efficiency over OData, however they may aid you to enhance the info refresh efficiency. So should you take all of the actions defined on this put up and you continue to don’t get an appropriate efficiency, you then would possibly want to consider the alternate options and transfer your knowledge right into a central repository.

If you’re getting knowledge from a D365 knowledge supply, chances are you’ll need to take a look at some alternate options to OData connection similar to Dataverse (SQL Endpoint), D365 Dataverse (Legacy) or Frequent Information Companies (CDS). However have in mind, even these connectors have some limitations and may not offer you an appropriate knowledge refresh efficiency. As an example, Dataverse (SQL Endpoint) has 80MB desk dimension limitation. There could be another causes for not getting a very good efficiency over these connections similar to having further extensive tables. Imagine me, I’ve seen some tables with greater than 800 columns.

Some solutions on this put up apply to different knowledge sources and aren’t restricted to OData connections solely.

Suggestion 1: Measure the info supply dimension

It’s all the time good to have an thought of the dimensions of the info supply we’re coping with and OData connection isn’t any totally different. The truth is, the backend tables on OData sources will be wast. I wrote a weblog put up round that earlier than, so I counsel you utilize the customized perform I wrote to grasp the dimensions of the info supply. In case your knowledge supply is giant, then the question in that put up takes a very long time to get the outcomes, however you may filter the tables to get the outcomes faster.

Suggestion 2: Keep away from getting throttled

As talked about earlier, many options have some throttling mechanisms to manage the over-utilisation of assets. Sending many API requests could set off throttling which limits our entry to the info for a brief time period. Throughout that interval, our calls are redirected to a special URL.

Tip 1: Disabling Parallel Loading of Tables

One of many many causes that Energy BI requests many API calls is loading the info into a number of tables in Parallel. We are able to disable this setting from Energy BI Desktop by following these steps:

  1. Click on the File menu
  2. Click on Choices and settings
  3. Click on Choices
  4. Click on the Information Load tab from the CURREN FILE part
  5. Untick the Allow parallel loading of tables choice
Disabling Parallel Loading of Tables in Power BI
Disabling Parallel Loading of Tables in Energy BI Desktop

With this feature disabled, the tables will get refreshed sequentially, which considerably decreases the variety of calls, subsequently, we don’t get throttled prematurely.

Tip 2: Avoiding A number of Calls in Energy Question

One more reason (of many) that the OData calls in Energy BI get throttled is that Energy Question calls the identical API a number of instances. There are numerous recognized causes that Energy Question runs a question a number of instances similar to checking for knowledge privateness or the best way that the connector is constructed or having referencing queries. Here’s a complete record of causes for working queries a number of instances and the methods to keep away from them.

Tip 3: Delaying OData Calls

In case you have executed all of the above and you continue to get throttled, then it’s a good suggestion to overview your queries in Energy Question and look to see you probably have used any customized features. Particularly, if the customized perform appends knowledge, then it’s extremely doubtless that invoking perform is the wrongdoer. The wonderful Chris Webb explains tips on how to use the Operate.InvokeAfter() perform on his weblog put up right here.

Suggestion 3: Take into account Querying OData As a substitute of Loading the Complete Desk

This is among the greatest methods to optimise knowledge load efficiency over OData connections in Energy BI. As talked about earlier, some backend tables uncovered through OData are fairly extensive with lots of (if not hundreds) of columns. A typical mistake many people make is that we merely use the OData connector and get the whole desk and suppose that we are going to take away all of the pointless columns later. If the underlying desk is giant then we’re in bother. Fortunately, we will use OData queries within the OData connector in Energy BI. You’ll be able to study extra about OData Querying Choices right here.

If you’re coming from an SQL background, then chances are you’ll love this one as a lot I do.

Let’s take a look on the OData question choices with an instance. I’m utilizing the official check knowledge from the OData web site.

  1. I initially load the OData URL within the Energy Question Editor from Energy BI Desktop utilizing the OData connector
Using OData connector in Power BI Desktop
Utilizing OData connector in Energy BI Desktop
  1. Choose the tables, bear in mind we are going to change the Supply of every desk later
Selecting the tables from an OData connection
Deciding on the tables from an OData connection


That is what many people usually do. We connect with the supply and get all tables. Hopefully we get solely the required ones. However, the entire function of this put up is just not to take action. Within the subsequent few steps, we modify the Supply step.

  1. Within the Energy Question Editor, choose the specified question from the Queries pane, I chosen the PersonDetails desk
  2. Click on the Superior Editor button
Advanced Editor in the Power Query Editor
Superior Editor within the Energy Question Editor
  1. Change the OData URL with an OData question
Querying OData in Power Query in Power BI
Querying OData in Energy Question in Energy BI
  1. Click on Achieved

As you may see, we will choose solely the required columns from the desk. Listed here are the outcomes of working the previous question:

Querying OData in Power Query
Getting knowledge utilizing OData question

In real-wrold situations, as you may think about, the efficiency of working a question over an OData connection can be a lot better than getting all columns from the identical connection after which eradicating undesirable ones.

The probabilities are infinite relating to querying a knowledge supply and OData querying in no totally different. As an example, let’s say we require to analyse the info for folks older than 24. So we will slender down the variety of rows by including a filter to the question. Listed here are the outcomes:

Using OData query filter
Utilizing OData question filter

Some Further Sources to Be taught Extra

Listed here are some invaluable assets to your reference:

Whereas I used to be on the lookout for the assets I discovered the next wonderful weblogs. There are superb reads:

As all the time, I might be comfortable to find out about your opinion and expertise, so go away your feedback beneath.

Have enjoyable!



Please enter your comment!
Please enter your name here