Power BI DirectQuery? Explained With Examples

by | Power BI

If you’re a data enthusiast or someone who works with large datasets, you’re probably aware of how crucial it is to have access to real-time reporting, and that’s where Power BI DirectQuery comes into the picture! 

Power BI DirectQuery is a feature that allows you to handle large datasets without pre-aggregation, enabling you to access the live underlying data source while ensuring up-to-date results and avoiding the need to preload a Power BI data model. 

This guide will take you on a deep dive into the world of Power BI DirectQuery, explaining everything you need to know about this game-changing feature, including its advantages and how to use it. 

Whether you’re a data enthusiast, a business analyst, or a decision-maker, this guide will give you a comprehensive understanding of Power BI DirectQuery and how to harness its power to handle large datasets and provide real-time reporting. 

So, if you want to unlock the full potential of Power BI DirectQuery, keep reading!

Power BI DirectQuery Basics

Power BI DirectQuery

In this section, we’ll cover the basics of Power BI DirectQuery, including the different types of DirectQuery modes and the data sources that are supported. 

In Power BI, you can choose between two main data connectivity modes: DirectQuery and Import mode.

Here’s a brief comparison to help you understand their differences:

  • DirectQuery: This mode enables real-time data retrieval from the data source, and the data is never stored or cached in Power BI. Instead, Power BI sends queries to the source and displays the results directly.

  • Import mode: In this mode, Power BI imports the data from the source and creates an in-memory snapshot of the data. This snapshot is used to build reports, and all queries run against this in-memory data. It can speed up report performance but might not be ideal for handling large datasets or requiring real-time data.

    Data connectivity modes in Power BI DirectQuery

DirectQuery Connectivity Modes

To properly leverage DirectQuery in Power BI, you need to understand its connectivity modes. There are two main connectivity modes for DirectQuery:

  1. Single source DirectQuery: In this mode, Power BI connects to a single data source using the DirectQuery mechanism. You can work with data in real time without the need to import it into Power BI. It supports a range of data sources, including relational databases and cloud data services.

    Some of the supported data sources for single source DirectQuery include SQL Server, Azure SQL Database, Oracle Database, and SAP HANA.

  2. Composite mode: This mode enables you to use both DirectQuery and Import mode within the same Power BI report. You can connect to multiple data sources and import data while connecting to other data sources directly using DirectQuery. In this mode, users can also use Power Query to shape and transform data before loading it into Power BI.

Creating a DirectQuery report requires knowledge of DAX, a formula language used in Power BI to create custom calculations and measures. When using DirectQuery, DAX queries are sent to the data source, and the results are displayed in the report.

Single source connectivity mode in DirectQuery

Please note that not all DAX functions are compatible with DirectQuery, and some features may not be available in DirectQuery mode.

Each data connectivity mode also has its advantages and disadvantages, so evaluate your specific use case, data requirements, and performance expectations when deciding between DirectQuery and Import mode in Power BI.

If you want to learn more about DirectQuery, you can check out our article on Power Query features.

Now that we’ve covered the basics of DirectQuery, let’s take a look at some supported data sources.

Supported Data Sources in Power BI DirectQuery

This section will give you a clear understanding of the different data sources you can use with Power BI DirectQuery, so you to make informed decisions and optimize your reporting capabilities.

Data Source Compatibility

Power BI DirectQuery is designed to work seamlessly with various data sources. Here is a list of some of the sample data sources that are compatible with DirectQuery:

  • SQL Server Database

  • SAP Business Warehouse

  • Azure SQL Database

  • SAP HANA

  • Snowflake

  • Azure Synapse Analytics

  • Amazon Redshift

  • Azure HDInsight Spark

  • Google BigQuery

  • IBM Netezza

  • Impala

  • Teradata Database

  • Vertica

Azure SQL Database source for Power BI DirectQuaery

DirectQuery may not be the best fit for all data sources, so do consider the performance implications and capabilities of your respective data source when using DirectQuery.

We will now proceed to explore the benefits and limitations of Power BI DirectQuery.

7 Benefits of Power BI DirectQuery

In this section, we’ll explore the benefits of using DirectQuery in your Power BI reports, including improved performance, scalability, and security.

  1. Real-time reporting: With DirectQuery, you can access the live underlying data source, ensuring up-to-date results without the need to preload data into your Power BI model. This is ideal for scenarios where your data is constantly changing and you need real-time reporting.

  2. Large datasets handling: DirectQuery allows you to work with large datasets without pre-aggregation, enabling you to handle massive data volumes and still get accurate results without affecting report performance.

  3. Data sovereignty compliance: In situations where data sovereignty regulations come into play, DirectQuery can be highly beneficial. Since the data is never cached in Power BI, you can ensure that you’re always using the most up-to-date data without violating data sovereignty laws.

  4. Added security: DirectQuery offers an added layer of security since all security rules defined by the source apply directly. This ensures that only authorized users can access the data, minimizing the risk of unauthorized data access.

  5. Near real-time updates: DirectQuery enables you to get near real-time updates from your data source, eliminating the need to wait for scheduled refreshes or manual updates.

  6. Reduced memory usage: Since the data is not imported into Power BI, DirectQuery reduces memory usage, enabling you to work with large datasets without encountering memory-related issues.

  7. Hybrid approach: In scenarios where a hybrid approach combining In-Memory and DirectQuery is optimal, DirectQuery provides the flexibility to integrate both modes within the same report, optimizing performance and data handling capabilities.

While DirectQuery provides near real-time reporting and allows you to handle large datasets without pre-aggregation, it’s essential to understand its limitations and drawbacks, which is what we’ll cover in the next section

Top 5 Limitations of Power BI DirectQuery

Despite its versatility, DirectQuery comes with certain limitations that you should be aware of.

  1. Performance: DirectQuery relies on the underlying data source to provide interactive query results in less than 5 seconds for a typical aggregate query. Ensure your data source can handle the generated query load before opting for DirectQuery, especially for large data sizes.

  2. Row limits: For cloud data sources, DirectQuery restricts the data returned to a maximum of 1 million rows. For on-premises sources, there is a payload limit of 4 MB per row or 16 MB for the entire visual. If you’re working with large datasets and need help optimizing your queries, the Power Query Editor has a variety of inbuilt features to help you out.

  3. Transformations: Some transformations may prevent query folding in DirectQuery. As a result, certain features might not be available.

  4. DAX limitations: DAX time intelligence functions such as every year, month over month, and same period, are not supported when working with DirectQuery.

  5. Data Scheduling: When using DirectQuery, your report is refreshed every 15 minutes to ensure that you get the most up-to-date information.

In summary, always take the time to consider the compatibility, limitations, and how these factors will affect the performance of your chosen data source when working with Power BI DirectQuery.

Setting Up and Configuring DirectQuery

In this section, we will explore the process of setting up and configuring Power BI DirectQuery. 

We’ll discuss the steps you need to follow to get started, including selecting a supported data source and choosing the DirectQuery connectivity mode when connecting to the data source.

By the end of this section, you’ll have a good understanding of how to set up and configure Power BI DirectQuery, allowing you to harness its full potential and handle large datasets with ease. 

So let’s dive in and get started!

3 Steps to Connect to Data Sources in DirectQuery

To set up Power BI DirectQuery, you first need to connect your data source. To do this in Power BI Desktop, follow these steps:

1. Launch Microsoft Power BI Desktop.

Power BI Desktop welcome screen

2. Navigate to the Home ribbon and select Get Data.

Get Data source option in Power BI Desktop

3. Choose your desired data source, such as SQL Server or any other available option.

SQL Server data source in Power BI Desktop

Once you have selected your data source, Power BI Desktop will prompt you for connection information, such as a connection string or server address, depending on the data source type. 

After you’ve connected to your data source, you can choose the DirectQuery connectivity mode when connecting to your data.

Your Power BI report in Power BI Desktop will import data and then utilize Data Analysis Expression (DAX) queries to acquire data from the source.

How to Handle Credentials and Authentication in DirectQuery

For DirectQuery to access your data source securely, you need to provide the required credentials and enable proper authentication. 

Depending on your data source type and environment, you may have to configure different security settings, such as:

  • Standard Authentication: Requires providing a username and password to connect to your data source.

  • Single Sign-On (SSO) Authentication: Allows you to leverage your organization’s existing identity management system for a seamless and secure experience.

To provide the necessary credentials:

1. In Power BI Desktop, go to the Home tab, under Queries and select Transform Queries

Transform queries option in Power BI Desktop

2. In the Query Editor window, click on Data Source settings.

3. Select the data source you wish to configure and click on Edit Permissions

Data source settings in Power BI Desktop

Here, you can provide the required credentials and choose the desired authentication method. Remember to check if your data source supports SSO authentication before proceeding!

How to Use the Data Gateway in DirectQuery

For on-premises data sources, you need to install and configure an On-Premises Data Gateway to enable a DirectQuery connection. The gateway serves as a bridge between Power BI and your data source, allowing secure data transfer.

Follow these steps to set up an On-Premises Data Gateway:

  1. Download the gateway installer from the Power BI website.

  2. Run the installer and follow the instructions to complete the installation.

  3. Log in to the Power BI service and go to the Settings menu.

  4. Under the Gateways tab, click on Add a Gateway.

  5. Provide the required information and click Add.

Once the gateway is set up and configured, you can use it to enable DirectQuery for your on-premises data sources.

Data Gateway is a crucial component when working with Power BI DirectQuery. By following the steps outlined in this section, you can set up and configure it, allowing you to securely connect to your on-premises data sources and take advantage of the power of DirectQuery. 

In the next section, we will explore the process of data modeling and analysis with Power BI DirectQuery. We’ll discuss best practices for modeling data in DirectQuery mode, including how to optimize data models for performance and how to create efficient queries. 

Data Modeling and Analysis with Power BI DirectQuery

DirectQuery takes data modeling and analysis to new heights. With DirectQuery, we move beyond the traditional boundaries of data import processes, opening up a whole new world of real-time, large-scale data analysis.

In this section, we will explore how DirectQuery allows you to establish relationships between datasets, enables data transformations, and performs calculations.

1. Establishing Relationships with DirectQuery

When working with Power BI DirectQuery, you need to establish relationships between your datasets to enable effective data analysis. 

Establishing relationships between tables allows you to create visualizations that rely on data from multiple sources.

You can manage these relationships in the modeling view within Power BI Desktop, and they are crucial for accurate and efficient calculations.

2. Data Transformations with DirectQuery

In DirectQuery mode, you still have access to a range of data transformations. You can perform data transformations using the Query Editor to clean and shape your data before it is used in your Power BI model. 

Common data transformations include:

  • Filtering and sorting data

  • Splitting or merging columns

  • Changing data types

With DirectQuery, the data remains in its original source, and any transformations you apply will impact the performance of your report. So it’s essential to balance data transformation needs with report responsiveness.

3. Using DirectQuery for Calculations

Calculations help you extract valuable insights from your data, and you can create them using measures and other calculated tables and columns in DirectQuery mode. 

Measures are dynamic calculations that are based on the context of your query or visualization, while calculated columns are calculations that are added to your table as new columns. 

Keep in mind the following key points:

  • Use DAX (Data Analysis Expressions) to create your calculations.

  • Row-level security (RLS) can be applied to protect sensitive data in your model.

  • Aggregations may help improve performance when working with large datasets.

Data model view in Power BI Desktop

With careful attention to relationships, data transformations, and calculations, you can build an effective data model and perform in-depth data analysis using Power BI DirectQuery. 

In the next section, we’ll delve deeper into the topic of performance considerations and best practices for DirectQuery.

Performance Considerations and Best Practices for DirectQuery

Performance considerations and best practices for DirectQuery

DirectQuery can be a powerful tool, but it requires some thoughtful handling to ensure optimal performance. 

This section will explore key considerations you should bear in mind while using DirectQuery, as well as best practices to keep your reports running smoothly and efficiently. 

Some considerations include: 

1. Data Refresh and Schedule

When working with Power BI DirectQuery, it’s important to consider your data refresh strategy.

Unlike the scheduled refresh, DirectQuery keeps a live connection to your underlying data source, meaning that you’ll always have access to the most current data. However, this real-time reporting capability can impact performance, particularly when querying large datasets.

To avoid performance issues, it’s crucial to strike a balance between data freshness and report responsiveness.

2. Pre-Aggregation and Optimizations

To improve query performance, consider implementing pre-aggregation techniques in your underlying data source. 

For instance:

  • Materialize transformation results in the relational database source if possible, as this can significantly improve performance.

  • If you’re working with a Snowflake data warehouse, for example, try using optimized querying techniques to aggregate data before it’s passed to the query engine.

  • To optimize queries for better performance, use tools such as SQL Server Management Studio to identify and optimize slow queries. 

  • Use query filters and other techniques to minimize the number of rows and columns returned, which can also improve query performance.

  • Make use of memory-efficient caching mechanisms to handle the natural tension between interactive speed and data freshness.

  • Leveraging query cache can make a noticeable difference in performance, particularly when working with live report tiles.

3. Recommendations for Best Performance

Here are some recommendations to ensure you get the best performance out of Power BI DirectQuery:

  • Limit the number of tables and relationships in your DirectQuery model, and ensure they’re indexed appropriately.

  • Use filters and slicers to restrict the data queried to only what’s needed, reducing the dataset size.

  • Break down complex calculations into smaller steps, using calculated columns where appropriate.

  • Be mindful of the 1-million row limit, as DirectQuery’s performance can degrade when this limit is exceeded.

  • If possible, use Power BI Premium capacity, which offers dedicated resources for improved performance.

  • Continuously monitor and optimize your report and underlying data source to ensure you stay within acceptable performance bounds.

  • Ensure that you secure your data sources with appropriate security measures such as firewalls, encryption, and other security techniques.

  • When designing your data model, use appropriate data types and data structures that align with your business requirements. Avoid using unnecessary data structures and tables.

  • To improve performance, use query folding wherever possible. Query folding allows Power BI to push filters and other transformations down to the data source, reducing the amount of data transferred.

By following these best practices and considering the performance implications of your Power BI DirectQuery setup, you can ensure that your reports are both up-to-date and performant. 

To learn more about the best practices for Power BI DirectQuery, watch this video from the Enterprise DNA YouTube channel:

Advanced Functionality and Use Cases of DirectQuery

Advanced functionality and use cases of DirectQuery

DirectQuery is not just a tool for real-time data access; it offers a range of advanced functionalities that can significantly enhance your data analytics processes. 

In this section, we’ll delve deeper into these advanced features and explore how they can be harnessed to solve complex data challenges.

1. Cloud and On-Premises Sources

Power BI DirectQuery allows you to access and analyze data from various data sources, including cloud and on-premises sources.

Some popular data sources supported by DirectQuery are:

  • Azure SQL Data Warehouse

  • SQL Database

  • Power BI Service

Azure SQL cloud integration with Power BI Desktop

When working with cloud sources like Azure SQL Data Warehouse or SQL Database, your PBIX file remains lightweight, as it only stores metadata and query definitions. 

On the other hand, when connecting to on-premises sources, you should ensure performance and security through proper configuration.

2. Multidimensional Sources

DirectQuery supports connecting to multidimensional sources, such as relational database models.

In DirectQuery mode, you can leverage DAX functions that work with multidimensional sources. However, some functions may be restricted by default to avoid performance issues. You can enable these functions by selecting the “allow unrestricted measures via DirectQuery” option.

When connecting to databases with complex dimensional relationships, DirectQuery ensures consistency in your Power BI reports by reflecting the relationships and hierarchies defined in the source model.

3. Enterprise Features

For enterprise scenarios, DirectQuery offers several features catering to organizations’ needs. Some key enterprise features include:

  • Data Sovereignty: It ensures compliance with data sovereignty restrictions by keeping data in the original source and not importing it into Power BI.

  • Security Rules: Using DirectQuery allows you to consistently apply security rules from the underlying data source, ensuring proper data access control.

  • Real-Time Reporting: Queries data directly from the source, you can benefit from near real-time reporting without having to schedule data refreshes.

Final thoughts

Final thoughts on Power BI DirectQuery

We hope this ultimate guide to Power BI DirectQuery has given you a comprehensive understanding of how this feature works, its advantages, and how to use it to your advantage. 

By utilizing Power BI DirectQuery, you can handle large datasets with ease, providing real-time reporting that is always up-to-date with the latest data. 

Keep in mind the best practices we’ve covered in this guide, including data modeling, performance considerations, and security considerations.

With these tips, you’ll be able to unlock the full potential of Power BI DirectQuery and create reports that are both efficient and effective. 

So, go forth and explore the world of Power BI DirectQuery with confidence, and happy reporting!

author avatar
Sam McKay, CFA
Sam is Enterprise DNA's CEO & Founder. He helps individuals and organizations develop data driven cultures and create enterprise value by delivering business intelligence training and education.

Related Posts