Power BI and Databricks: Building Analytics on the Lakehouse
Who this is for:
Architecture / Concept Overview: Power BI and Databricks: Building Analytics on the Lakehouse
%%{init: {"theme":"base","themeVariables":{"background":"#0B0E14","primaryTextColor":"#E0E6ED","lineColor":"#5D6470","darkMode":true,"primaryColor":"#2E4A4A","secondaryColor":"#374151","secondaryTextColor":"#E0E6ED","tertiaryColor":"#111827","tertiaryTextColor":"#E0E6ED","edgeLabelBackground":"#1f2937"}}}%%
flowchart LR
classDef source fill:#3F4B59,stroke:#9CA3AF,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef ingestion fill:#5A4B36,stroke:#C9A86B,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef processing fill:#535072,stroke:#8E82B4,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef storage fill:#2E4A4A,stroke:#5FAFA8,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef serving fill:#3D5550,stroke:#6BB7AA,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef governance fill:#5A3F52,stroke:#C28BB0,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
USERS[Business Users]:::source
PBI[Power BI Desktop / Service]:::ingestion
CONN[Databricks Connector]:::processing
SQL_WH[SQL Warehouse]:::storage
DELTA[Delta Tables]:::serving
UC[Unity Catalog Permissions]:::governance
USERS --> PBI --> CONN --> SQL_WH --> DELTA
SQL_WH --> UC
*Power BI queries flow through the native Databricks connector to SQL Warehouses, which execute against governed Delta tables.*
%%{init: {"theme":"base","themeVariables":{"background":"#0B0E14","primaryTextColor":"#E0E6ED","lineColor":"#5D6470","darkMode":true,"primaryColor":"#2E4A4A","secondaryColor":"#374151","secondaryTextColor":"#E0E6ED","tertiaryColor":"#111827","tertiaryTextColor":"#E0E6ED","edgeLabelBackground":"#1f2937"}}}%%
graph TD
classDef source fill:#3F4B59,stroke:#9CA3AF,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef ingestion fill:#5A4B36,stroke:#C9A86B,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef processing fill:#535072,stroke:#8E82B4,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef storage fill:#2E4A4A,stroke:#5FAFA8,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef serving fill:#3D5550,stroke:#6BB7AA,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
classDef governance fill:#5A3F52,stroke:#C28BB0,stroke-width:2px,rx:8,ry:8,color:#E0E6ED
MODES[Connection Modes]:::source
DQ[DirectQuery]:::processing
IMPORT[Import Mode]:::ingestion
COMPOSITE[Composite Model]:::storage
MODES --> DQ
MODES --> IMPORT
MODES --> COMPOSITE
DQ --> LIVE[Live queries on each interaction]:::processing
DQ --> FRESH[Always fresh data]:::processing
IMPORT --> CACHE[Cached in Power BI]:::ingestion
IMPORT --> FAST[Fast local queries]:::ingestion
COMPOSITE --> MIX[Mix DirectQuery + Import]:::storage
COMPOSITE --> BEST[Best of both approaches]:::storage
*Power BI supports DirectQuery for real-time data, Import for performance, and Composite models combining both.*
Key Terms
Prerequisites and Setup
- Power BI Desktop (latest version) or Power BI Service with Premium/PPU capacity
- Databricks workspace with a SQL Warehouse provisioned
- Unity Catalog with serving-layer tables prepared for BI consumption
- Azure AD/Entra ID configured for SSO (recommended)
- Network connectivity between Power BI service and the workspace
Step-by-Step Implementation
Configuration Reference
| Setting | Value | Description |
|---|---|---|
| Server Hostname | adb-*.azuredatabricks.net | Workspace URL without https:// |
| HTTP Path | /sql/1.0/warehouses/<id> | SQL Warehouse endpoint |
| Authentication | Azure AD / PAT | OAuth preferred for SSO |
| Connection Mode | DirectQuery / Import | Choose based on data freshness needs |
| Query Timeout | 120-300 seconds | Increase for complex aggregations |
| Max Connections | 10-50 per warehouse | Scale warehouse for concurrency |