Microsoft Power BI
Connect Microsoft Power BI to visualize your data and create reports.
You can connect Power BI to Dremio in one of the following ways:
- Configure a reusable connection to use in Power BI Desktop, Power BI Gateway, or Power BI Service. Power BI Service can connect to Dremio through DirectQuery or through Power BI Gateway.
- Connect to a specific dataset by downloading the
.pbidsfile from Dremio and opening it in Power BI Desktop.
Supported Authentication Methods
From Power BI, you can authenticate to Dremio with one of the following methods:
- Username and password: Use your Dremio credentials.
- Personal access token (PAT): For details, see Personal Access Tokens.
- Single sign-on (SSO) through OAuth 2.0: For steps on how to configure SSO, see Enable SSO to Dremio from Power BI.
Connect to Dremio from Power BI
The Power BI connector for Dremio now supports connectivity through the open-source Arrow Database Connectivity (ADBC) driver, which Dremio highly recommends using to connect to Dremio. To enable reports to use ADBC, see Enable Connectivity with ADBC.
Existing connections will continue to work, but we recommend using the embedded ADBC driver for all new reports and migrating existing reports to ADBC to benefit from improved performance and supportability.
To connect to Dremio from Power BI Desktop:
-
Click Get data, search for
Dremio, select Dremio Software, and click Connect. -
In the Dremio Software dialog, follow these steps:
a. Use the Flight SQL ADBC driver and in the Server field specify your Dremio hostname with the
adbc://prefix. Example:adbc://acme-company.dremio.comb. (Optional) Complete the other fields in the dialog as you normally would.
c. Under Data Connectivity mode, select either Import or DirectQuery. Click OK.
d. For Authentication Method, select Basic or Key.
-
Basic: Enter your Dremio username and password.
-
Key: Paste in the personal access token you obtained from Dremio. For details, see Personal Access Tokens.
-
-
Click Connect.
Creating Dataflows through Power BI Service is also supported. To create a dataflow, click New > Dataflow. For the data source connection, follow the steps above.
Create a Live Connection to a Dataset from Dremio
You can generate a Microsoft Power BI Data Source (.pbids) file that represents a live connection to a dataset that is in Dremio. No actual data is stored in this file, and you can think of it as a shortcut to a Power BI Desktop session with a preconfigured view of your data.
The .pbids file download option must be enabled for users to have access to this feature. To enable this feature, see Enable the .pbids file download.
To create a live connection to a dataset:
- In Dremio, navigate to the dataset.
- Click the ellipsis (...) next to the dataset name.
- Select Download .pbids file.
- Open the downloaded file in Power BI Desktop.
- Authenticate using your preferred method.
Power BI Gateway
To enable Power BI users to connect to Dremio via Power BI Gateway:
- Install and configure Power BI Gateway on a machine that can connect to your Dremio cluster.
- In the Power BI Gateway configuration, add Dremio as a data source using the same connection details as above.
Advanced Configuration
Enable Connectivity with ADBC
Dremio supports connectivity through Arrow Database Connectivity (ADBC). To enable this for Power BI Service, see the following options.
Enable the ADBC Option for a New Connection
- In Power BI Desktop, click Get data.
- In the Get Data dialog, locate and select Dremio Software, and click Connect.
- In the Dremio Software dialog, in the Server field, specify your hostname with the
adbc://prefix. Example:adbc://acme-company.dremio.com - (Optional) Complete the other fields in the dialog as you normally would.
- Click OK.
- Authenticate using your preferred method, and click Connect.
Enable the ADBC Option for an Existing Connection
- In Power BI Desktop, go to Data source settings, select your source, and click Change source.
- In the Dremio Software dialog, update the Server field by adding the
adbc://prefix before the hostname. Example:adbc://acme-company.dremio.com. If you're unable to edit the source this way, click Transform data, then click Advanced Editor in the Home tab. In the dialog that appears, update the hostname/server with theadbc://prefix, and click Done. - Click OK.
- Reauthenticate using your preferred method, and click Connect.
Enable the .pbids File Download in the Dremio Console
To enable the .pbids file download feature:
- In Dremio, go to Admin > Settings.
- In the Support section, enable Allow downloading of .pbids files.
- Click Save.
Enable SSO to Dremio from Power BI
SSO is supported only for datasets that use DirectQuery.
SSO only works for reports created using the Dremio Cloud connector in Power BI Desktop. Reports created with the Dremio Software connector cannot use SSO by simply changing credentials, they must be converted first.
To convert existing reports from the Dremio Software connector to the Dremio Cloud connector, you'll need to modify the connection in Power BI's Advanced Editor to change the function from Dremio.Databases to DremioCloud.DatabasesByServerV370.
Prerequisites: Configure Dremio for Microsoft Entra ID
Before enabling SSO for Power BI reports, Dremio must be configured to use Microsoft Entra ID (Azure AD) as an identity provider.
Required configuration:
- Set
services.coordinator.web.auth.typeto the Microsoft Entra ID / OIDC provider type configured for your deployment (for example,azuread) - Provide the required OIDC or Azure AD configuration file (
azuread.jsonor equivalent) - Deploy configuration files to all coordinator nodes
- Restart Dremio cluster after applying changes
For complete setup steps, see Configure Microsoft Entra ID.
All authentication setup must be done through configuration files before enabling SSO in Power BI.
The following steps configure the Power BI side of SSO. These steps assume your Dremio deployment is already configured to authenticate users via Microsoft Entra ID.
To enable SSO for Power BI reports:
Enable SSO for a DirectQuery Report
To enable SSO for a report that uses DirectQuery:
- In Power BI Service, open the workspace to which you published the report.
- Find the dataset that is associated with the report, click the three dots next to its name, and select Settings.
- In the settings for the dataset, expand Data source credentials.
- Click Edit credentials.
- For Authentication method, select OAuth2.
- In the Privacy level setting for this data source field, ensure that Private is selected.
- Select the check box Report viewers can only access this data source with their own Power BI identities using DirectQuery.
- Click Sign in.
Enable SSO for Reports with Power BI Gateway
To enable SSO when you are using Power BI Gateway:
-
In Power BI Service, open the workspace to which you published the report.
-
Find the dataset that is associated with the report, click the three dots next to its name, and select Settings.
-
In the settings for the dataset, expand Gateway connection.
-
Recreate your data source by following these steps:
- Select the Maps to field.
- Select Manually add to gateway.
- For Data Source Name, enter a name for the data source.
- For Data Source Type, select Dremio Software.
- For Server, enter your Dremio hostname with the
adbc://prefix. Example:adbc://acme-company.dremio.com - For Authentication Method, select OAuth2.
- Click Add.
-
In the Data source credentials section, click Edit credentials.
-
For Authentication method, select OAuth2.
-
In the Privacy level setting for this data source field, ensure that Private is selected.
-
Select the check box Report viewers can only access this data source with their own Power BI identities using DirectQuery.
-
Click Sign in.
SSO requires the OAuth2 authentication method. Basic authentication and personal access tokens do not support SSO when used through Power BI Gateway.
Arrow Database Connectivity (ADBC) Limitations
- ADBC is not enabled by default. It must be enabled by the owner of the report.
- NativeQuery is not supported.
- Metadata calls are not cached.
- Power BI Desktop occasionally caches errors that might affect future connection attempts until the cache is cleared.
- Complex data types such as
MAPandINTERVALare not supported. - When using DirectQuery, chaining functions is supported, but some complex scenarios may not work as expected. Complex optional parameters for functions are not supported.
Troubleshoot Power BI
Cached Data Issues
If you have previously installed older versions of Power BI Desktop, cached data may interfere with the newer versions of the Flight SQL drivers resulting in connection errors.
Problem
For example, when using Flight SQL ADBC, cached connection data in Power BI could cause the following errors:
ADBC: IOError [] [FlightSQL] [FlightSQL] unresolved address (Unavailable; GetObjects(GetDBSchemas))ADBC: IOError [] [FlightSQL] [FlightSQL] connection error: desc = "transport: authentication handshake failed: credentials: cannot check peer: missing selected ALPN property. If you upgraded from a grpc-go version earlier than 1.67, your TLS connections may have stopped working due to ALPN enforcement. For more details, see: https://github.com/grpc/grpc-go/issues/434" (Unavailable; GetObjects(GetDBSchemas))"
Solution
Clear the Power BI Desktop cache and any cached data source permissions involving Dremio connections by following these steps:
- Clear Power BI Desktop Caches.
- In Power BI Desktop, go to File > Options and Settings > Data Source Settings.
- Select Global Permissions.
- Clear all cached connections by clicking Clear All Permissions, or select specific Dremio data sources and click Clear Permissions.
After completing these steps, try reconnecting to Dremio using the instructions above.
Large Result Sets
Problem
When fetching data from Dremio with ADBC you may see the following error:
Unexpected error: [FlightSQL] grpc: received message larger than max (43747370 vs. 16777216) (ResourceExhausted; DoGet: endpoint 0: [])
Solution
By default, the ADBC driver accepts only messages up to 16 MiB in size. This can be fixed by updating the Power BI M expression to customize the connection as follows:
let
Source = DremioCloud.DatabasesByServerV370("your-server-here", [
MaxMessageSize = 67108864 // 64 MiB
])
in
Source
Replace your-server-here with your actual Dremio server address. The MaxMessageSize parameter sets the maximum message size in bytes (67108864 = 64 MiB).