Friday, October 7, 2022
HomeBusiness IntelligenceOptimising 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 answer that may fetch tons of of hundreds (or hundreds of thousands) rows of information in a single desk. So, clearly, OData just isn’t optimised for that type of function. One of many greatest challenges many Energy BI builders face when working with OData connections is efficiency points. The efficiency will depend on quite a few elements equivalent to the scale of tables within the backend database that the OData connection is serving, peak learn information quantity over intervals of time, throttling mechanism to regulate over-utilisation of sources and many others…

So, typically talking, we don’t anticipate to get a blazing quick information refresh efficiency over OData connections, that’s why in lots of instances utilizing OData connections for analytical instruments equivalent to Energy BI is discouraged. So, what are the options or options if we don’t use OData connections in Energy BI? Nicely, the most effective answer is emigrate the information into an middleman repository, equivalent 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 determine on the middleman repository relying on the enterprise necessities, know-how preferences, prices, desired information latency, future help requirement and experience and many others…

However, what if we shouldn’t have every other choices for now, and we’ve got to make use of OData connection in Energy BI with out blasting the scale and prices of the venture by shifting the information to an middleman house? And.. let’s face it, many organisations dislike the thought of utilizing an middleman house for numerous causes. The only 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 options; as an alternative, I present some ideas and tips that may enhance the efficiency of your information refreshes over OData connections in Energy BI.


The ideas on this put up won’t offer you blazing-fast information refresh efficiency over OData, however they are going to enable you to enhance the information refresh efficiency. So in the event 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 options and transfer your information right into a central repository.

If you’re getting information from a D365 information supply, it’s possible you’ll wish to have a look at some options to OData connection equivalent to Dataverse (SQL Endpoint), D365 Dataverse (Legacy) or Widespread Information Providers (CDS). However be mindful, even these connectors have some limitations and may not offer you an appropriate information refresh efficiency. As an illustration, Dataverse (SQL Endpoint) has 80MB desk measurement limitation. There is perhaps another causes for not getting a very good efficiency over these connections equivalent to having further extensive tables. Consider me, I’ve seen some tables with greater than 800 columns.

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

Suggestion 1: Measure the information supply measurement

It’s all the time good to have an concept of the scale of the information supply we’re coping with and OData connection isn’t any completely different. In actual fact, the backend tables on OData sources will be wast. I wrote a weblog put up round that earlier than, so I recommend you utilize the customized operate I wrote to know the scale of the information supply. In case your information supply is massive, then the question in that put up takes a very long time to get the outcomes, however you possibly can 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 regulate the over-utilisation of sources. Sending many API requests might set off throttling which limits our entry to the information 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 information 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, due to this fact, 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 occasions. There are numerous recognized causes that Energy Question runs a question a number of occasions equivalent to checking for information privateness or the best way that the connector is constructed or having referencing queries. Here’s a complete listing of causes for working queries a number of occasions and the methods to keep away from them.

Tip 3: Delaying OData Calls

When you’ve got performed all of the above and you continue to get throttled, then it’s a good suggestion to assessment your queries in Energy Question and look to see when you’ve got used any customized capabilities. Particularly, if the customized operate appends information, then it’s extremely seemingly that invoking operate is the offender. The wonderful Chris Webb explains find out how to use the Perform.InvokeAfter() operate on his weblog put up right here.

Suggestion 3: Contemplate Querying OData As an alternative of Loading the Whole Desk

This is likely one of the finest methods to optimise information load efficiency over OData connections in Energy BI. As talked about earlier, some backend tables uncovered by way of OData are fairly extensive with tons of (if not hundreds) of columns. A standard mistake many people make is that we merely use the OData connector and get your complete desk and assume that we are going to take away all of the pointless columns later. If the underlying desk is massive then we’re in bother. Fortunately, we are able to use OData queries within the OData connector in Energy BI. You may study extra about OData Querying Choices right here.

If you’re coming from an SQL background, then it’s possible 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 take a look at information 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’ll 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 sometimes 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 just isn’t to take action. Within the subsequent few steps, we alter 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. Substitute 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 Performed

As you possibly can see, we are able to choose solely the required columns from the desk. Listed here are the outcomes of working the previous question:

Querying OData in Power Query
Getting information utilizing OData question

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

The probabilities are countless in terms of querying an information supply and OData querying in no completely different. As an illustration, let’s say we require to analyse the information for individuals older than 24. So we are able to slim 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 Additional Sources to Study Extra

Listed here are some invaluable sources in your reference:

Whereas I used to be searching for the sources I discovered the next wonderful weblogs. There are superb reads:

As all the time, I might be glad to learn about your opinion and expertise, so depart your feedback under.

Have enjoyable!



Please enter your comment!
Please enter your name here

Most Popular

Recent Comments