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. ...

Create Event Calendar In Power BI

Overview In this article, we will learn how we can create Event Calendar within Power BI. We have a requirement from many of my clients to show Events within the Calendar by Category Colors. In order to achieve that requirement, we can use the custom visual from the marketplace which is “ Calendar by MAQ Software ”. You can directly download it using   URL . At the end of the article, you are able to create Event Calendar as shown in the following screenshot. We have the following data to be shown in the event Calendar. Event Start Date Event End Date Description Category   For your practice, you can download sample data source file and Power BI file using   GitHub . Let’s get started! Step 1 Import “ Calendar by MAQ Software ” from Marketplace or download using the   URL . Once it is imported we can see the visual in visualization pane. Step 2 Drag the “ Calendar by MAQ Software ” visual and set the following property. ...