docs/content/product/apis-integrations/power-bi.mdx
Microsoft Power BI is a popular business intelligence tool.
Cube Cloud works with both Power BI Desktop and Power BI Service. If you're using Power BI Service, you need to set up an on-premises data gateway.
<YouTubeVideo url="https://www.youtube.com/embed/vgrFPOMuJJs" aspectRatio={8/5} />
Cube Cloud provides the DAX API for the native Power BI connectivity.
In Power BI Desktop, choose the <Btn>SQL Server Analysis Services database</Btn> option when connecting to a data source. Then, enter the DAX API credentials and choose <Btn>Windows</Btn> authentication. It accomodates both Kerberos and NTLM methods.
To find your DAX API credentials, go to the Integrations page, click <Btn>API credentials</Btn>, and choose the <Btn>DAX API</Btn> tab.
Cube Cloud supports the following authentication methods for Power BI:
| Application | Authentication | Notes |
|---|---|---|
| Power BI Desktop | NTLM | 🟡 Works well for testing purposes |
| Power BI Desktop | Kerberos | 🟢 Recommended for production |
| Power BI Service | NTLM + Kerberos | 🟢 Recommended for production. |
| Requires on-premises data gateway |
Power BI provides three methods to connect to data sources: live connection, DirectQuery, and import mode.
| Live connection | DirectQuery | <nobr>Import mode</nobr> | |
|---|---|---|---|
| Data location | 🟢 Data source | 🟢 Data source | 🟡 Power BI |
| Data freshness | 🟢 Real-time data | 🟢 Real-time data | 🟡 Stale copy |
| Semantic model | <nobr>🟢 Up-to-date model</nobr> | 🟡 Stale copy | 🟡 Stale copy |
| Queries | <nobr>🟢 Composed in UI</nobr> | ||
| <nobr>🔴 No custom queries</nobr> | <nobr>🟢 Composed in UI</nobr> | ||
| <nobr>🟢 Custom queries</nobr> | <nobr>🟢 Composed in UI</nobr> | ||
| <nobr>🟢 Custom queries</nobr> |
It's recommended to use a live connection whenever possible. Use DirectQuery if you need to write your own DAX queries, but be aware that you must manually synchronize semantic models as they evolve. Import mode is not recommended, as it removes the benefits of using a semantic layer.
You can connect a Cube deployment to Power BI using the SQL API as if Cube is a Postgres database. It would provide much more limited functionality than the DAX API. However, this is the only option when using Cube Core.