Quick recap of Import, Modeling, DAX
Quick Recap of Import, Modeling & DAX Foundations
Welcome to Power BI for Intermediate. In Level 1 (Beginner), you learned the fundamentals of Power BI Desktop: navigating the interface, importing simple Excel sheets, performing basic transformations in Power Query, building fundamental visualizations, and writing elementary DAX formulas such as SUM, AVERAGE, and COUNTROWS.
Before tackling enterprise data models and complex calculation patterns, let us consolidate the core architectural pillars of Microsoft Power BI.
1. The Three Storage Engines & Connectivity Modes
Power BI Desktop offers three distinct data ingestion modes, each suited to different enterprise workload requirements:
| Storage Mode | Mechanism | Pros | Cons / Constraints | Best Use Case |
|---|---|---|---|---|
| Import Mode (Default) | In-memory columnar VertiPaq engine compression. | Blazing fast analytical speed; full DAX expressiveness. | 1 GB dataset size limit per model in Power BI Pro; data freshness requires scheduled refresh. | 90% of business reporting dashboards (< 20M rows). |
| DirectQuery | No data is cached locally; DAX queries are converted into native SQL and sent live to source. | Real-time freshness; overcomes the 1 GB dataset size limit. | Slower visual response times; DAX limitations; high load on source database. | Real-time IoT monitoring; multi-billion row enterprise data warehouses (Snowflake, BigQuery). |
| Dual Mode / Composite | Tables can be configured as Import or DirectQuery depending on granularity. | Combines speed for aggregates with live drill-down to transactions. | Increased model complexity; requires careful relationship management. | Large-scale financial auditing and enterprise telemetry. |
2. The VertiPaq Columnar Engine: Why Column Structure Matters
Traditional relational databases (OLTP) like PostgreSQL or MySQL store records row-by-row:
Power BI uses VertiPaq, a columnar in-memory database engine:
Visual Architecture & Process Flow
How data and code flow step-by-step
VertiPaq Compression Rules:
- 1Value Encoding: Subtraction of minimum values to store smaller integers.
- 2Dictionary Encoding: Replaces high-cardinality string values with compact integer IDs.
- 3Run-Length Encoding (RLE): Compresses consecutive identical values (e.g.,
["DL", "DL", "DL", "DL"]stored as(DL, 4)).
3. Calculated Columns vs. Calculated Measures
One of the most critical conceptual milestones for an intermediate analyst is understanding when to use a Calculated Column versus a Measure:
Practical DAX Example
4. Evaluation Context Foundations
DAX evaluates expressions in two distinct contexts:
- 1Row Context:
- Exists natively in calculated columns and DAX iterators (
SUMX,FILTER,AVERAGEX). - Knows only the current row's values. It does NOT know what other rows exist in the table.
- 1Filter Context:
- Created by report visuals, slicers, matrix row/column headers, and the
CALCULATEfunction. - Restricts the subset of data passed to measures.
Multiple Choice Questions
DIVIDE([Total Profit], [Total Sales], 0) when [Total Sales] evaluates to zero?Project requirements for Intermediate Level
Continue learning with hands-on practice, examples, and exercises in the upcoming topic.
Related Lessons
| Previous Lesson | Next Lesson |
|---|---|
| None | Project requirements for Intermediate Level |
Practice Quiz
Test your understanding of this lesson with 5 questions. Each question has one correct answer.