Large Models & Composite Models
Scale beyond default limits. Large semantic model storage format and composite model design β when and how to use each for enterprise analytics.
When default limits are not enough
Think of a suitcase with a weight limit.
A standard suitcase (semantic model) has a weight limit β typically around 10 GB compressed. If your data weighs more than that, you have two options: get a bigger suitcase (large model format) or split your trip across a carry-on and checked bag (composite model).
Large model format increases the size limit. Composite models let you mix local and remote data. Both are enterprise patterns for when your data outgrows the defaults.
Large semantic model storage format
What it does
| Feature | Default Format | Large Format |
|---|---|---|
| Model size limit | ~10 GB (capacity-dependent) | Up to total capacity memory |
| Segment size | ~1 million rows | ~4 million rows (larger segments) |
| Compression | Standard VertiPaq | Enhanced VertiPaq with larger segments |
| Refresh | Full or incremental | Full or incremental (incremental especially beneficial) |
When to enable it
- Your model exceeds 10 GB compressed
- You have fact tables with billions of rows
- You are using incremental refresh (large format works well with incremental refresh, especially for real-time data partitions)
- XMLA endpoint read/write is needed for management tools
How to enable it
- In the Power BI portal or Fabric workspace, go to Semantic model settings
- Under Large dataset storage format, toggle it On
- Apply changes β the model reformats on next refresh
Exam tip: Large format prerequisites
Large format requires:
- Premium or Fabric capacity (P1/F64 or higher) β not available on shared capacity
- Incremental refresh configured (recommended but not strictly required)
- Model must be published to the service (cannot enable in Desktop)
Large format is especially valuable with incremental refresh β only new/changed partitions refresh, keeping refresh times manageable even for enormous models.
Composite models in depth
A composite model mixes storage modes within one semantic model. You saw the concept in the Storage Modes module β here we go deeper.
Architecture patterns
Pattern 1: Direct Lake + Import (most common in Fabric)
Direct Lake tables Import tables
βββββββββββββββββ ββββββββββββ
fact_sales (500M rows) dim_exchange_rates (200 rows)
fact_returns (10M rows) dim_holidays (365 rows)
Large fact tables stay as Direct Lake (fast, no refresh). Small, slow-changing reference tables are imported for maximum query speed.
Pattern 2: Direct Lake + DirectQuery (cross-source)
Direct Lake tables DirectQuery tables
βββββββββββββββββ ββββββββββββββββββ
fact_sales (Fabric lakehouse) fact_crm (Salesforce)
dim_product (Fabric) dim_crm_contacts (Salesforce)
Fabric data via Direct Lake, external CRM data via DirectQuery. One model serves both.
Pattern 3: Import + DirectQuery (classic hybrid)
Import tables DirectQuery tables
βββββββββββββ ββββββββββββββββββ
dim_product (imported) fact_realtime (live SQL)
dim_date (imported)
agg_monthly (imported)
Historical aggregates imported for speed; live detail table via DirectQuery for drilldown.
Composite model considerations
| Consideration | Impact |
|---|---|
| Relationship storage | Relationships between different storage modes are 'limited' β some DAX functions behave differently |
| Security | RLS on Import tables works as expected; RLS on DirectQuery tables is pushed to the source |
| Performance | Cross-mode joins are slower than same-mode joins. Keep frequently joined tables in the same mode. |
| Chaining | Users can chain DirectQuery to a published model, creating 'composite models over composite models' |
Scenario: James designs a multi-client composite model
James at Summit Consulting builds a composite model for a client that needs:
- 3 years of sales data (2 billion rows) from a Fabric lakehouse β Direct Lake
- Live CRM pipeline data from Salesforce β DirectQuery
- Exchange rates (200 rows, updated weekly) β Import
- Target budgets (50 rows per department) β Import
The composite model connects all four. Relationship between Direct Lake and DirectQuery tables is βlimitedβ β James places dimension tables shared between both in Direct Lake for best performance.
Raj at Atlas Capital has a semantic model that reaches 15 GB compressed. The model is on an F64 Fabric capacity with a default 10 GB per-model limit. What should Raj do?
James at Summit Consulting builds a composite model with fact_sales (Direct Lake, 2B rows) and crm_contacts (DirectQuery to Salesforce). A report visual joins both tables. What should James expect?
π¬ Video coming soon
Next up: Direct Lake Mode β configure Fabricβs recommended storage mode, including fallback behavior and OneLake vs SQL endpoints.