Skip to main content

DirectQuery Mode In Power BI

In this article, we will talk about the two ways to import data into Power BI. When we connect any data source, it will import the copy of the data in Power BI. For some data sources, an alternative approach is available: connect directly to the data source using DirectQuery.
This article covers the following concepts in a brief manner.
  • Import Mode and DirectQuery Mode
  • Benefits of using DirectQuery
  • Limitations of DirectQuery
  • Important facts about DirectQuery
Now, let’s get started.
Import Mode
  • It will load all the selected tables in Power BI Desktop.
  • We need to refresh the data to check latest updated data.
DirectQuery Mode
  • No data is loaded or copied from any data source to Power BI.
  • The data (selected columns or tables) will appear in the Fields tab.
  • When we interact with any visual, we have always fresh live data.
Benefits of DirectQuery
  • When we have a very large database which is unfeasible to import all data with pre-aggregation, at that time DirectQuery suits most.
  • It doesn’t have a limitation of 1 GB Dataset.
  • DirectQuery always uses current (live) data.
Limitations of DirectQuery
  • All the tables must be from the same database.
  • If any error occurs while we query the data, we need to solve the problematic step from Query Editor.
  • If we are not able to solve the error, we have to use "Import" mode instead of DirectQuery Mode.
  • For multidimensional cubes like SSAS OLAP or SAP, it will not provide Query Editor.
  • No relationship is detected in a multidimensional database like SAP.
  • DirectQuery mode does not support Time Intelligence functions.
  • There is 1 million row limit for returning the data in DirectQuery.
Ex: Suppose, I have 5 million rows in a table. At a time, it will return 1 million rows. If we have applied any calculations or measures, it will not be affected by this limitation.
Important Facts about DirectQuery
  • The DirectQuery request is directly sent to the database server.
  • The recommended minimum refresh time for visual is 5 seconds and the maximum is 30 seconds.
  • Sometimes, if query processing on data source will take more time to refresh a visual.
  • Load on original data source depends on how many users are using the report at the moment.
  • RLC (Row Level Security) also affects the performance.
  • RLC tile needs to apply one additional query on a returned dataset. That will affect the performance.
  • There is one limitation in Power BI and that is related to Security. When we publish a Power BI report, all the users can see all the data from database tables. Now, if we want to implement per-user security at that time, we need to use RLC.
  • All the features are not supported when we are using DirectQuery Mode. For an example, Quick Insights not supported with DirectQuery Mode.
When to use DirectQuery Mode?
  • When we need real-time data.
  • When the database is very large and it is difficult to import all data in a model.
  • When Data authority restrictions apply.
  • When the source is multidimensional like SAP BW.
Conclusion
I hope you got a clear idea of DirectQuery Mode in Power BI.

Comments

Popular posts from this blog

How to partition or split DataTable in C#?

Today we will discuss how we can divide or split a very large data table into fixed size of chunks? Scenario: Suppose there is a data table which has 1000 Rows. When you perform for each loop on data table and read each row at that time it will take too much time. If we devide 1000 Rows datatable into 10 fixed sizes (e.g. 100 Rows) datatable, It will take less time. Let's check how to achieve it. Here is a code. private static List<DataTable> SplitTable(DataTable originalTable, int batchSize) { List<DataTable> tables = new List<DataTable>(); int i = 0; int j = 1; DataTable newDt = originalTable.Clone(); newDt.TableName = "Table_" + j; newDt.Clear(); foreach (DataRow row in originalTable.Rows) { DataRow newRow = newDt.NewRow(); newRow.ItemArray = row.ItemArray; newDt.Rows.Add(newRow); i++; if (i == batchSize) ...

How To Lock Objects In Power BI

Overview Sometimes, there is a situation where when we open a report and click on any visual it accidentally nudges a chart a little bit to the right or left. Sometimes, by mistake when viewing a report, the arrangement of visuals scatters a little bit. Microsoft rolls out one new amazing feature to resolve this issue, that is, Lock Objects in Power BI. Advantages of using this feature When our purpose is to only view a report, this feature is a boon for us. Visualization’s position is not changed. Saves a lot of the developer's time to resolve the position related issues. Note   -  This feature is not saved with the report. So, every time you open a report, you need to enable this feature. Now, let’s understand this feature in a brief manner. To understand this, I will first show you one report in which I have not enabled “Lock Objects” feature. Step 1 The below screenshot shows my report which doesn’t have the enabled Lock Objects feature. ...

Use SharePoint Online List As A Data Source In Power BI

Introduction In this article, we will check how we can use SharePoint List as a data source in Microsoft Power BI. Please follow the below steps to establish the connection of SharePoint Online list with Power BI.  Step 1 Open Power BI Desktop > Get Data > Click More.   Step 2 Search for SharePoint > SharePoint Online List.   Step 3 Enter the URL of your SharePoint site.   Step 4 Click on Organizational account > Sign In.   Step 5 It will open the screen of Office 365 Login > Enter Credentials.   Step 6 Click on Connect.   Step 7 It will show all the lists available in the SharePoint - lists are on the left corner and their preview is on the right. Select all the lists which you want to use directly in the Power BI. Click on Load.   Step 8 It will load all the lists. Expand "Fields" column to view all the fields shown in the SharePoint List.   We can also view all the...