CertPrepNow
MicrosoftDP-6003 domains

DP-600 Exam Notes

Last-minute traps, must-know facts, and scenario tips for the Microsoft Fabric Analytics Engineer Associate exam.

General Exam Tips

  • 1.Read every question twice — scenario-based questions often embed the key constraint in a single phrase you can miss on a first pass
  • 2.For code-based questions, look for two nearly identical options first — the correct answer is almost always one of those two, not the oddly different ones
  • 3.Read case study questions BEFORE reading the scenario material, then scan the text only for what each question actually needs
  • 4.Flag and skip questions you are unsure about; 100 minutes for ~50 questions gives roughly 2 minutes per question, and spending 5 minutes on one question breaks your pacing
  • 5.Never leave a question blank — there is no penalty for wrong answers, always guess if you must
  • 6.The exam may allow access to Microsoft Learn via a split window. Note: Ctrl+F does not work in that window, so learn to use the search bar before exam day
  • 7.Prepare Data is 45-50% of the exam (the heaviest domain) — treat it as its own exam embedded inside the larger one
  • 8.Hands-on experience matters more than documentation reading: candidates who only read report conceptual gaps in scenario questions that require judgment about when to use which tool
  • 9.When a question asks which tool or approach is BEST, look for constraint keywords: 'low-code', 'large scale', 'complex logic', 'real-time', 'preserve history', 'reduce cost' — those words narrow the answer
  • 10.Practical experience creates false confidence: candidates with daily Fabric use have reported scoring under 60% on first practice tests. The exam tests conceptual precision, not just familiarity
Domain 147.5% of exam

Prepare Data

Must-Know Facts

  • Lakehouse SQL analytics endpoint is READ-ONLY — it does not support INSERT, UPDATE, DELETE, stored procedures, or user-defined functions
  • Warehouse supports full T-SQL read-write: views, stored procedures, user-defined functions, ACID transactions
  • OPTIMIZE compacts small Delta files into larger ones and improves query speed — it is a performance operation
  • VACUUM removes old Delta file versions beyond the retention threshold — it reclaims storage, it does NOT improve query performance
  • SCD Type 1 overwrites the existing value — no history is preserved
  • SCD Type 2 inserts a new row with effective start/end dates — the old record remains with an end date, preserving full history
  • Bridge tables are the correct solution for many-to-many relationships in a star schema — avoid direct many-to-many unless you understand the bidirectional filter implications
  • Dataflows Gen2 destination options include Lakehouse tables, Warehouse tables, and other Fabric items — they do not execute Spark directly
  • Data Pipelines orchestrate activities (Copy, Dataflow, Notebook, Stored Procedure) but do not transform data themselves — transformation happens inside the activities
  • KQL is exclusively for Eventhouse (Real-Time Intelligence) — it does not work against Lakehouse or Warehouse
  • DAX is for semantic models — do not confuse it with the query language for raw data stores
  • T-SQL is for Warehouse and the Lakehouse SQL analytics endpoint — but only the Warehouse supports DML
  • Shortcuts in OneLake are pointers, not data copies — they allow accessing external data without ingestion overhead
  • A workspace on Shared capacity cannot host Fabric items (Lakehouse, Warehouse, Dataflow Gen2, Notebooks, Pipelines) — Fabric capacity or Premium is required
  • Query folding in Dataflows Gen2 means the transformation logic is pushed to the source system — breaking query folding forces processing in the dataflow engine, which is slower
  • Dataflows Gen2 staging: staging routes data through a Lakehouse before the final destination, which enables query folding across more steps
  • Visual Query Editor in the Fabric portal provides a no-code drag-and-drop interface to build and run T-SQL queries against Lakehouse SQL endpoints and Warehouses
  • OneLake integration for Eventhouse: Eventhouse data can be exposed to OneLake as Delta tables, allowing downstream tools (semantic models, Notebooks, Warehouses) to query real-time data without duplicating it

Common Traps

TrapWhen a question says 'create a stored procedure' or 'create a view with DML' in Fabric, candidates pick Lakehouse because it also has a SQL endpoint
RealityThe Lakehouse SQL analytics endpoint is permanently read-only. Stored procedures, user-defined functions, and any DDL/DML objects can only be created in the Warehouse
TrapCandidates assume OPTIMIZE and VACUUM both improve performance for Delta tables
RealityOPTIMIZE improves query performance through file compaction. VACUUM deletes old file versions to reclaim storage — it has no effect on query speed. The exam specifically tests this distinction and many candidates get it wrong
TrapAssuming Dataflows Gen2 is always the right low-code answer for any transformation scenario
RealityDataflows Gen2 are appropriate for medium-complexity transformations with business-user-friendly Power Query. For large-scale data (hundreds of GB+), complex schema inference, or iterative ML-prep work, Spark Notebooks are more appropriate and more cost-efficient per compute unit
TrapThinking KQL can be used to query a Lakehouse or Warehouse
RealityKQL (Kusto Query Language) only works with Eventhouse in Real-Time Intelligence. Lakehouse and Warehouse use T-SQL. Mixing these up in scenario questions is a common failure point
TrapAssuming a workspace contributor can always create and query Fabric items
RealityIf the workspace is on Shared capacity (not Fabric/Premium), no Fabric items (Lakehouse, Warehouse, etc.) can be created at all. The error is about capacity, not permissions — a classic exam trap
TrapTreating SCD Type 2 as just 'add a date column to the existing row'
RealitySCD Type 2 adds an entirely new row for each change, preserving the old row with an end date and active/inactive flag. The surrogate key changes; the natural key stays the same across rows
TrapThinking Shortcuts and Copy activity achieve the same result
RealityShortcuts are zero-copy pointers to external data — no data movement, always reads live from the source. Copy activity physically moves data into Fabric. When a question mentions 'no data duplication' or 'avoid movement', Shortcuts is the answer; when transformation or staging is needed, Copy activity or pipelines are the answer

Confusing Pairs

LakehouseWarehouse

Lakehouse = file + Delta table store, Spark-native, SQL endpoint is read-only, supports semi-structured data. Warehouse = SQL-first, full T-SQL read-write, ACID transactions, structured data only. Key rule: if the question requires CREATE PROCEDURE, CREATE FUNCTION, INSERT, UPDATE, or DELETE via T-SQL, the answer is always Warehouse

OPTIMIZEVACUUM

OPTIMIZE = file compaction + V-Order encoding = faster query performance. VACUUM = removes old Delta version files = smaller storage footprint. One is a performance command, one is a housekeeping command. The exam loves to swap these — memorize: OPTIMIZE = performance, VACUUM = cleanup

Dataflows Gen2Spark Notebooks

Dataflows Gen2 = low-code Power Query UI, 100+ connectors, best for business user-accessible ETL, staging option enables query folding. Notebooks = code-first PySpark/Spark SQL, handles petabyte scale, best for complex transforms, ML prep, and cost-efficient production pipelines. Decision keyword: 'complex joins / schema drift / large scale' = Notebook; 'low-code / business user / 100+ connectors' = Dataflow Gen2

SCD Type 1SCD Type 2

Type 1 = overwrite the old value, no history kept, simpler. Type 2 = insert new row, keep old row with end date and active flag, full history preserved. Exam scenario: 'preserve historical address for order reporting' = Type 2. 'Update phone number, old number is irrelevant' = Type 1

Data PipelineDataflow Gen2

Pipeline = orchestration engine (schedules and chains activities together, handles dependencies and triggers). Dataflow Gen2 = transformation engine (actually transforms data using Power Query). A Pipeline can call a Dataflow as an activity. They are not alternatives — they operate at different levels

KQLT-SQL

KQL = Kusto Query Language, pipe-based syntax (TableName | where | summarize), used ONLY with Eventhouse (Real-Time Intelligence). T-SQL = traditional SQL, used with Warehouse (read-write) and Lakehouse SQL endpoint (read-only). Never use KQL on a Warehouse or Lakehouse — the exam tests whether you know which language belongs to which data store

Scenario Tips

If the question asks about:

When the question asks about querying real-time telemetry or log data stored in Eventhouse with time-based filtering...

Answer:

Use KQL. Eventhouse is purpose-built for time-series and telemetry data, and KQL's pipe syntax with where, summarize, and ago() functions handles this natively

Distractor to avoid:

T-SQL seems plausible because Fabric uses T-SQL in Warehouse, but T-SQL does not work against Eventhouse. Never use T-SQL for Eventhouse scenarios

If the question asks about:

When a scenario requires customer dimension attributes to reflect only the current values (old values are irrelevant), and the question asks which SCD type to implement...

Answer:

SCD Type 1. Overwrite the existing dimension row. No history table needed

Distractor to avoid:

Type 2 sounds more comprehensive, but Type 2 is only warranted when history must be preserved for analytical querying (e.g., 'what region was this customer in when they placed this order in 2022?')

If the question asks about:

When a question asks which tool to use for 500GB+ JSON ingestion with custom incremental load logic and schema inference...

Answer:

Apache Spark Notebook. Handle schema inference with Spark, write incremental logic in PySpark, write output as Delta tables to Lakehouse

Distractor to avoid:

Dataflows Gen2 can handle JSON but struggles with 500GB, complex schema inference, and custom incremental logic. The Data Pipeline Copy activity moves data but cannot apply complex transformation logic

If the question asks about:

When a scenario asks how to support many-to-many relationships between sales territories and products where a product can belong to multiple territories and vice versa...

Answer:

Create a bridge table (also called a junction or association table) that holds the foreign keys from both dimension tables, then create one-to-many relationships from each dimension to the bridge table

Distractor to avoid:

Direct many-to-many relationships in semantic models work but create ambiguous filter paths and can produce incorrect aggregations in complex DAX scenarios. The exam expects the bridge table pattern for star schema design

If the question asks about:

When a question describes a business analyst who needs to query and aggregate Warehouse data visually without writing SQL code...

Answer:

Use the Visual Query Editor inside the Fabric portal — it provides a drag-and-drop no-code interface for filtering, joining, and aggregating data that generates T-SQL behind the scenes

Distractor to avoid:

Power BI reports and DAX measures are for visualization and modeling, not ad-hoc SQL querying. Dataflows Gen2 are for ETL pipelines, not exploratory querying. The Visual Query Editor is the no-code query tool within Fabric itself

If the question asks about:

When a question describes a scenario where users cannot see the option to create a Lakehouse or Dataflow Gen2 in a workspace, despite having Contributor access...

Answer:

The workspace is on Shared capacity. Fabric items require Fabric or Premium capacity — the absence of these creation options is a capacity indicator, not a permissions issue

Distractor to avoid:

Adding the user to a higher workspace role (Admin, Member) will not fix this. The issue is the capacity type of the workspace, not the user's role. This is a common exam trap that tests capacity knowledge

Last-Minute Facts

1Lakehouse SQL endpoint = read-only. Warehouse = full read-write T-SQL
2OPTIMIZE = performance (file compaction + V-Order). VACUUM = storage cleanup (removes old Delta versions) — NOT a performance command
3SCD Type 1 = overwrite (no history). SCD Type 2 = new row + effective dates (history preserved)
4KQL for Eventhouse only. T-SQL for Warehouse. DAX for semantic models only
5Shared capacity workspaces cannot host any Fabric items — you need Fabric or Premium capacity
6Shortcuts are pointers to data, not copies — no data movement occurs
7Query folding in Dataflows Gen2 pushes transformation work to the source system — staging enables this for more complex queries
8Bridge tables = solution for many-to-many in star schema
9Dataflow Gen2 destination examples: Lakehouse table, Warehouse table — not Eventhouse directly
10Visual Query Editor in the Fabric portal uses a drag-and-drop no-code interface to build T-SQL queries — available in both Lakehouse SQL endpoint and Warehouse
11Data Pipeline = orchestration only. Dataflow Gen2 = transformation. They work together, not interchangeably
Domain 227.5% of exam

Maintain a Data Analytics Solution

Must-Know Facts

  • RLS (Row-Level Security) filters rows using DAX expressions — users see the table and column names, only their permitted rows are hidden
  • OLS (Object-Level Security) hides entire tables or columns — the field list shows nothing; the object is invisible to unauthorized users
  • OLS can ONLY be configured via external tools like Tabular Editor — it cannot be configured natively in Power BI Desktop
  • CLS (Column-Level Security) restricts access to specific columns at the SQL/data layer — configured in Warehouse or the Lakehouse SQL endpoint, separate from semantic model security
  • File-level access control restricts access to specific files or folders in the Lakehouse Files section using OneLake access permissions — this operates at the storage layer, below the SQL analytics endpoint
  • Workspace roles: Admin > Member > Contributor > Viewer — Viewer can read content but cannot create reports or use Analyze in Excel
  • Build permission on a semantic model is separate from workspace Contributor role — a user needs Build permission to create reports on a shared model
  • Item-level permissions override workspace roles for specific items — you can grant a Viewer-level user Build access on one semantic model without promoting their workspace role
  • Sensitivity labels propagate DOWNSTREAM automatically — if a Lakehouse is labeled Confidential, derived warehouses and semantic models inherit the label
  • Endorsement: Promoted = team-level signal of quality. Certified = organization-wide single source of truth, requires specific tenant permission
  • Git integration connects a workspace to Azure DevOps or GitHub — enables version control, branching, pull requests for Fabric items
  • Deployment pipelines promote content through Dev, Test, and Production stages — separate from Git, which handles source control
  • PBIP (Power BI Project) stores report components as human-readable JSON in a folder structure — Git-friendly, designed for team collaboration
  • PBIX is a binary monolithic file — not suitable for Git version control or collaborative development
  • PBIDS (Power BI Data Source) is a connection file that pre-configures data source settings — sharing a PBIDS lets team members connect to the same data source without entering connection strings manually
  • XMLA endpoint enables external tools (SSMS, Tabular Editor, ALM Toolkit) to connect and manage semantic models programmatically
  • Lineage view and impact analysis show downstream dependencies before you make changes — use them before modifying source tables or semantic models
  • Direct Lake mode requires Fabric or Premium capacity — it does not work on Shared capacity

Common Traps

TrapCandidates try to configure OLS in Power BI Desktop alongside RLS and can't find it
RealityOLS is not available in Power BI Desktop at all. You must use an external tool (Tabular Editor 2 or 3, ALM Toolkit) to configure OLS rules. RLS can be configured in Power BI Desktop
TrapAssuming a workspace Contributor can build reports on any semantic model in that workspace
RealityContributor role alone is not enough to create reports on a shared semantic model. You need Build permission on that specific semantic model. Workspace role and item permissions are separate layers
TrapThinking sensitivity labels must be manually applied to each derived item
RealitySensitivity labels propagate automatically downstream when the setting is enabled. A Lakehouse labeled Confidential will cause downstream items to inherit that label without manual re-labeling
TrapConfusing deployment pipelines with Git integration and thinking they are alternatives
RealityGit integration handles version control (commits, branches, pull requests). Deployment pipelines handle environment promotion (Dev to Test to Prod). They are complementary tools with different purposes and can be used together
TrapTreating Promoted and Certified endorsements as equivalent quality signals
RealityPromoted = a team signals this item is reliable (any workspace member with appropriate rights can promote). Certified = an organization-wide endorsement requiring specific admin-granted permission — much higher bar
TrapAssuming Direct Lake works in any workspace
RealityDirect Lake requires Fabric or Premium capacity. A workspace on Shared capacity cannot use Direct Lake mode — the semantic model will fail or fall back depending on the variant configured
TrapAssuming hiding a column in Power BI Desktop's field properties is the same as OLS
RealityHiding a column in Power BI Desktop hides it from EVERYONE including authorized users — it is a UI display toggle, not security. OLS via Tabular Editor selectively hides columns from specific roles while keeping them visible to others

Confusing Pairs

RLSOLS

RLS = DAX filter expressions that hide rows (users see the table and columns, but only their permitted rows appear). OLS = hides entire tables or columns completely from the field list (the object does not exist from the user's perspective). RLS is configured in Power BI Desktop. OLS requires Tabular Editor. Both are security features but at different granularities

Deployment PipelinesGit Integration

Deployment Pipelines = environment promotion tool (Dev to Test to Prod stages, compare and selectively deploy changes). Git Integration = source control tool (commit, branch, pull request, rollback). Use Git to track changes over time; use Deployment Pipelines to move those changes across environments. They work together, not as alternatives

PBIXPBIP

PBIX = single binary file containing report + model + data. Not parseable by Git. PBIP = folder-based format storing report components as human-readable JSON files. Designed for Git version control and team collaboration. Exam rule: if the question mentions Git, version control, or team development, the answer involves PBIP, not PBIX

Promoted EndorsementCertified Endorsement

Promoted = team-level quality signal, self-service by workspace members with appropriate rights. Certified = organization-wide authoritative source of truth, requires special tenant-level permission granted by admins. The exam tests whether you know who can certify and what it means

Workspace-Level SecurityItem-Level Permissions

Workspace roles (Admin/Member/Contributor/Viewer) control access to the entire workspace. Item-level permissions grant targeted access to specific Fabric items without changing the workspace role. You can give external users direct item access without adding them to the workspace. The exam often presents scenarios where item-level permissions are the right answer rather than elevating a workspace role

RLS / OLS / CLSFile-Level Access Control

RLS, OLS, and CLS operate at the semantic model or SQL layer — they filter what authenticated users see when querying through a model or SQL endpoint. File-level access control (OneLake access permissions) operates at the raw storage layer — it restricts who can read or write the underlying Parquet/Delta files in the Lakehouse Files section. A user can be blocked at the file layer but still query through the SQL endpoint if SQL endpoint permissions are granted separately

Scenario Tips

If the question asks about:

When a question asks how to ensure sales managers see only their region's data in a Power BI report built on a shared Fabric semantic model...

Answer:

Configure Row-Level Security (RLS) in Power BI Desktop — define a role with a DAX filter expression like [Region] = USERNAME() or USERPRINCIPALNAME()

Distractor to avoid:

OLS hides the Region column entirely, which is wrong — managers need to see the column, just filtered to their own region. CLS restricts columns, not rows. Workspace permissions control access to the whole workspace, not individual rows

If the question asks about:

When a question asks how to hide the Salary column from non-HR users so the column does not appear in their field list at all...

Answer:

Configure Object-Level Security (OLS) using Tabular Editor to hide the Salary column from non-HR roles

Distractor to avoid:

RLS filters rows, not columns — the Salary column would still appear in the field list. Hiding a column in Power BI Desktop's field properties hides it from everyone including authorized users. OLS via Tabular Editor is the only way to selectively hide a column based on user role

If the question asks about:

When a team needs to develop Power BI reports collaboratively using pull requests and branching...

Answer:

Use PBIP format and connect the workspace via Git Integration to Azure DevOps or GitHub. PBIP stores components as JSON files that Git can diff and merge

Distractor to avoid:

Deployment Pipelines do not provide version control or branching — they only promote content between environments. PBIX files cannot be meaningfully diffed in Git because they are binary

If the question asks about:

When a scenario describes external consultants who need to build reports on one specific semantic model but should not see anything else in the workspace...

Answer:

Grant item-level Build permission on the specific semantic model directly to the consultants — do not add them to the workspace at all, or add them as Viewer at workspace level plus Build permission on the item

Distractor to avoid:

Adding them as Contributor at workspace level exposes all workspace items to them, which violates the constraint in the scenario

If the question asks about:

When a question asks how to prevent a data engineer from reading raw Delta Parquet files in a Lakehouse while still allowing them to query the Lakehouse SQL analytics endpoint...

Answer:

Configure file-level access control using OneLake access permissions to restrict access to the Files section of the Lakehouse, while granting the user SQL endpoint read permissions separately through item-level permissions

Distractor to avoid:

RLS and OLS operate at the semantic model layer, not the file storage layer. Workspace Viewer role gives read access to items but does not control raw file access at the OneLake storage level. File-level and SQL endpoint permissions are configured independently

If the question asks about:

When the question asks what to review BEFORE deleting a Lakehouse table that is used by multiple downstream reports and semantic models...

Answer:

Use Impact Analysis (Lineage view) in the Fabric workspace to identify all downstream dependencies — semantic models, dataflows, and reports that reference the table — before making any changes

Distractor to avoid:

Simply checking the Lakehouse item properties or searching the workspace manually will miss hidden dependencies. Impact Analysis is the specific Fabric feature for this — the exam tests that candidates know it exists and when to use it

Last-Minute Facts

1OLS = Tabular Editor only. RLS = Power BI Desktop
2Workspace Viewer cannot build reports even on models they can read — needs Build permission on the specific item
3Sensitivity label inheritance: labels flow downstream automatically when enabled
4Promoted = team-level endorsement. Certified = org-level endorsement, requires admin permission
5PBIP = Git-friendly JSON folder. PBIX = binary blob, not Git-friendly
6Deployment Pipelines = Dev/Test/Prod promotion. Git Integration = version control and branching
7XMLA endpoint: read access for Premium/Fabric workspaces; read-write required for deploying or modifying models via external tools
8Direct Lake requires Fabric or Premium capacity — fails on Shared capacity
9Impact analysis shows you what breaks before you delete or change a source item
10File-level access control = OneLake storage permissions on raw files — separate from SQL endpoint or semantic model security layers
11PBIDS = data source connection file; PBIT = report template without data; PBIP = source-control-friendly folder format; PBIX = binary file with data
Domain 325% of exam

Implement and Manage Semantic Models

Must-Know Facts

  • Import mode copies data into the semantic model at refresh time — fast queries, but data is stale until next refresh
  • DirectQuery mode sends every report interaction as a live query to the source — always current data, but slower and source-dependent
  • Direct Lake on SQL endpoints reads Delta tables from a single SQL endpoint into memory — fast like Import, near-real-time like DirectQuery. Falls back to DirectQuery for SQL views, RLS enforcement, or guardrail breaches
  • Direct Lake on OneLake references Delta tables from multiple Fabric items (Lakehouse + Warehouse in one model) — does NOT fall back to DirectQuery; guardrail violations cause refresh failure instead
  • Direct Lake framing: the engine loads column data into memory from OneLake — no data is copied, just loaded into the in-memory engine
  • Composite models with Direct Lake on OneLake: can mix with Import tables from any source. Composite models with Direct Lake on SQL endpoints: cannot mix with DirectQuery or Dual tables
  • Calculation groups apply to ALL measures by default — explicitly exclude measures that should not be affected using precedence or exclusion filters
  • Incremental refresh requires a DateTime column AND named parameters RangeStart and RangeEnd of type DateTime — without these, incremental refresh cannot be configured
  • Large semantic model storage format removes the default size cap — enables enterprise-scale models beyond 10GB in Premium/Fabric capacity
  • DAX CALCULATE changes the filter context — it is the most important DAX function and the source of most evaluation context confusion
  • DAX iterators (SUMX, AVERAGEX, MAXX, MINX) evaluate a table row by row — they accept a table and an expression, not a single column
  • VAR/RETURN in DAX: variables are evaluated at the point of definition, not at the point of use — this freezes the filter context at definition time
  • External tools for semantic models: DAX Studio (DAX query performance), Tabular Editor (model scripting, OLS, calculation groups), ALM Toolkit (compare/merge models), Vertipaq Analyzer (column memory usage)
  • Dynamic Management Views (DMVs): query $SYSTEM.DISCOVER_STORAGE_TABLE_COLUMN_SEGMENTS to analyze column memory usage; $SYSTEM.MDSCHEMA_MEASURES to list measures
  • Field parameters allow report consumers to dynamically swap which measures or dimensions appear on visual axes — configured in the semantic model, surfaced as a slicer in the report
  • Dynamic format strings use DAX expressions to conditionally format measures (e.g., show $ symbol only when a currency measure is selected)
  • Fixed identity cloud connection: strongly recommended when using semantic model RLS with Direct Lake to ensure consistent data access control regardless of end user identity

Common Traps

TrapCandidates assume Direct Lake always falls back to DirectQuery when it hits a limit
RealityOnly Direct Lake on SQL endpoints falls back to DirectQuery. Direct Lake on OneLake does NOT fall back — it fails with a refresh error when guardrails are exceeded. This distinction appears directly on the exam and is one of the most commonly missed questions
TrapAssuming CALCULATE with a filter expression is always equivalent to FILTER inside CALCULATE
RealityCALCULATE([Measure], Table[Column] = 'Value') and CALCULATE([Measure], FILTER(Table, Table[Column] = 'Value')) behave differently in context transitions and with expanded tables. The simple predicate form is faster and preferred for simple conditions; FILTER is needed when you need to iterate row context explicitly
TrapThinking incremental refresh is simply a toggle you enable and Fabric figures out the rest
RealityIncremental refresh requires specific setup: a DateTime column in the fact table, plus Power Query parameters named exactly RangeStart and RangeEnd of type DateTime/Date. Missing these parameters prevents incremental refresh from being configured at all
TrapAssuming a composite model with Direct Lake just 'works' regardless of which Direct Lake variant is used
RealityComposite models behave differently by variant. Direct Lake on OneLake supports mixing with Import tables and allows referencing multiple Fabric items. Direct Lake on SQL endpoints does NOT support composite models that include DirectQuery or Dual tables — only one SQL endpoint is allowed
TrapMixing up which external tool does what and thinking Tabular Editor is only for advanced scripting
RealityTabular Editor is required for OLS configuration (no alternative). It is also the primary tool for calculation groups, TMDL editing, and batch model changes. DAX Studio is for query performance analysis, not model structure changes. The exam tests knowing which tool to reach for
TrapThinking a 50GB semantic model just needs DirectQuery instead of Import to work
RealityLarge semantic model storage format is the feature that removes the size limit — you enable it in workspace/model settings. Switching to DirectQuery changes how data is accessed, not the model size limit. These are different problems with different solutions
TrapAssuming calculation groups automatically skip measures they shouldn't affect
RealityCalculation groups affect ALL measures in the model by default. If you have a 'Total Orders' measure that should never be modified by time intelligence calculation items, you must explicitly configure that exclusion. The exam tests this default-to-all behavior

Confusing Pairs

Direct Lake on OneLakeDirect Lake on SQL Endpoints

OneLake variant: references Delta tables from multiple Fabric items, supports composite models with Import, NO DirectQuery fallback (guardrail violations = refresh failure). SQL endpoint variant: references one SQL endpoint only, NO composite models with DirectQuery/Dual tables, FALLS BACK to DirectQuery for SQL views, RLS, or guardrail breaches. The exam tests both behavioral differences explicitly — this is the most nuanced topic on the exam

Import ModeDirect Lake Mode

Import = copies data into model at scheduled refresh time. Stale until next refresh. Works anywhere. Direct Lake = reads Delta columns from OneLake into memory on demand. Near-real-time. Requires Fabric/Premium capacity and Delta tables in OneLake. Key phrase: Import creates a data copy; Direct Lake loads from source without copying

Calculation GroupsField Parameters

Calculation groups apply transformation logic across measures (e.g., YTD, MTD, currency conversion) — they modify how existing measures calculate. Field parameters let report users swap which measures or dimensions appear on visual axes — they control what is displayed, not how it calculates. Different use cases, different exam questions

DAX CALCULATEDAX FILTER

CALCULATE is a context modifier — it changes the filter context for the expression inside it. FILTER is a table function that returns a subset of rows based on a condition. FILTER is often used as an argument inside CALCULATE to provide complex conditions. They serve different roles: CALCULATE modifies context, FILTER produces a table

Tabular EditorDAX Studio

Tabular Editor = model structure tool: create/edit measures, OLS, calculation groups, Best Practice Analyzer, TMDL scripting. DAX Studio = query performance tool: run DAX queries, read execution plans, analyze server timings, use Vertipaq Analyzer. If a question asks about configuring OLS or calculation groups externally, the answer is Tabular Editor, not DAX Studio

Incremental RefreshLarge Model Storage Format

Incremental Refresh = refreshes only new/changed date partitions, reducing refresh time and CU consumption. Requires RangeStart/RangeEnd parameters + DateTime column. Large Model Storage Format = removes the 10GB per-dataset size cap, allowing larger models. These are independent features — a large model may need both, but they solve different problems

Scenario Tips

If the question asks about:

When a semantic model needs to access Delta tables from both a Lakehouse and a Warehouse in the same Fabric workspace without copying data...

Answer:

Use Direct Lake on OneLake — it can reference tables from multiple Fabric items in a single model without data duplication

Distractor to avoid:

Direct Lake on SQL endpoints only supports a single SQL endpoint. DirectQuery adds query overhead. Import copies data. Only Direct Lake on OneLake supports multiple source items in one model

If the question asks about:

When a question asks why a Direct Lake semantic model is falling back to DirectQuery for some queries...

Answer:

Direct Lake on SQL endpoints falls back when: (1) the model uses SQL views instead of Delta tables, (2) RLS defined in the model is enforced, or (3) guardrail thresholds are exceeded

Distractor to avoid:

If using Direct Lake on OneLake, fallback to DirectQuery does not happen — the query fails instead. The question will specify which variant if relevant. If you see 'falls back to DirectQuery', the model is using Direct Lake on SQL endpoints

If the question asks about:

When a 50GB semantic model exceeds the default dataset size limit and the question asks what to enable...

Answer:

Enable large semantic model storage format in the workspace settings and dataset settings. This removes the default cap

Distractor to avoid:

Incremental refresh reduces refresh time but does not change the model size limit. DirectQuery avoids loading data but is a different trade-off. The size limit is resolved by enabling large model storage format, not by changing storage mode

If the question asks about:

When the question asks about applying year-to-date, quarter-to-date, and month-to-date calculations across 20 different measures without duplicating DAX logic...

Answer:

Use calculation groups — define calculation items (YTD, QTD, MTD) once, and they apply to all measures automatically

Distractor to avoid:

Creating separate YTD, QTD, MTD variants of each measure (20 x 3 = 60 measures) is the anti-pattern calculation groups exist to prevent. Field parameters are for swapping what is displayed, not applying time intelligence logic

If the question asks about:

When a scenario involves analyzing which columns consume the most memory in a Direct Lake model to optimize its footprint...

Answer:

Use Vertipaq Analyzer (accessible through Tabular Editor or DAX Studio) to inspect column-level memory consumption, or query DMVs like $SYSTEM.DISCOVER_STORAGE_TABLE_COLUMN_SEGMENTS

Distractor to avoid:

The Fabric portal performance analyzer shows report visual timings, not model memory breakdown. The exam specifically tests knowledge of DMVs and external tools for model analysis

If the question asks about:

When a question asks about enabling fallback behavior control for a Direct Lake semantic model, and the organization wants queries to FAIL rather than silently switch to DirectQuery...

Answer:

Disable the fallback setting on the Direct Lake connection — this forces queries to fail when Direct Lake cannot serve them, helping the team detect incompatibilities rather than silently degrading to DirectQuery

Distractor to avoid:

Allowing fallback (the default) is appropriate when reliability is more important than enforcing Direct Lake performance. The exam tests whether you understand the fallback setting exists and what each option means for the business

Last-Minute Facts

1Direct Lake on OneLake: multiple source items, NO DirectQuery fallback, composite models with Import OK
2Direct Lake on SQL endpoints: single SQL endpoint, falls back to DirectQuery, NO composite with DirectQuery/Dual
3Incremental refresh needs: DateTime column + RangeStart + RangeEnd parameters (both named exactly, type DateTime)
4Large model storage format = removes the 10GB per-dataset default cap
5OLS = Tabular Editor only. Cannot configure in Power BI Desktop
6Calculation groups: apply to ALL measures by default — must explicitly exclude measures
7DAX variables freeze filter context at definition time — use VAR to avoid redundant recalculations
8SUMX, AVERAGEX, MAXX = iterators that take (Table, Expression) — not single-column functions
9DMVs for model analysis: $SYSTEM.DISCOVER_STORAGE_TABLE_COLUMN_SEGMENTS (column memory), $SYSTEM.MDSCHEMA_MEASURES (measure list)
10Tabular Editor = model structure + OLS. DAX Studio = query performance analysis
11Vertipaq Analyzer = column-level memory breakdown inside the semantic model
12Direct Lake fallback toggle: Allow = queries degrade gracefully to DirectQuery. Disable = queries fail if Direct Lake cannot serve them

Feeling confident?

Put your knowledge to the test with a timed DP-600 mock exam.