CertavoPrepare. Certify. Excel.
Open menu
DP-600Microsoft

DP-600: Implementing Analytics Solutions Using Microsoft Fabric

This exam is intended for candidates with subject matter expertise in designing, creating, and managing analytical assets such as semantic models, warehouses, and lakehouses. Candidates are responsible for preparing and enriching data for analysis, securing and maintaining analytics assets, and implementing and managing semantic models. The role works closely with stakeholders, architects, analysts, engineers, and administrators, and requires the ability to query and analyze data by using SQL, KQL, and DAX.

What you get with membership

  • The full DP-600 question bank with detailed explanations
  • Readiness tracking by objective so you know when you're ready
  • Access to every other exam in the Certavo library
  • Content kept in step with the latest exam objectives

DP-600 exam objectives and study guide

The skills measured on the DP-600 exam, by objective domain. Percentages are the share of the exam each domain carries.

Prepare data

47.5% of the exam
  • Get data
  • Create a data connection
  • Discover data by using OneLake catalog and Real-Time hub
  • Ingest or access data as needed
  • Choose between different data stores
  • Implement OneLake integration for Eventhouse and semantic models
  • Transform data
  • Create views, functions, and stored procedures
  • Enrich data by adding new columns or tables
  • Implement a star schema for a lakehouse or warehouse
  • Denormalize data
  • Aggregate data
  • Merge or join data
  • Identify and resolve duplicate data, missing data, or null values
  • Convert column data types
  • Filter data
  • Query and analyze data
  • Select, filter, and aggregate data by using the Visual Query Editor
  • Select, filter, and aggregate data by using SQL
  • Select, filter, and aggregate data by using KQL
  • Select, filter, and aggregate data by using DAX

Maintain a data analytics solution

27.5% of the exam
  • Implement security and governance
  • Implement workspace-level access controls
  • Implement item-level access controls
  • Implement row-level, column-level, object-level, and file-level access control
  • Apply sensitivity labels to items
  • Endorse items
  • Maintain the analytics development lifecycle
  • Configure version control for a workspace
  • Create and manage a Power BI Desktop project (.pbip)
  • Create and configure deployment pipelines
  • Perform impact analysis of downstream dependencies from lakehouses, warehouses, dataflows, and semantic models
  • Deploy and manage semantic models by using the XMLA endpoint
  • Create and update reusable assets, including Power BI template (.pbit) files, Power BI data source (.pbids) files, and shared semantic models

Implement and manage semantic models

27.5% of the exam
  • Design and build semantic models
  • Choose a storage mode
  • Implement a star schema for a semantic model
  • Implement relationships, such as bridge tables and many-to-many relationships
  • Write calculations that use DAX variables and functions, such as iterators, table filtering, windowing, and information functions
  • Implement calculation groups, dynamic format strings, and field parameters
  • Identify use cases for and configure large semantic model storage format
  • Design and build composite models
  • Optimize enterprise-scale semantic models
  • Implement performance improvements in queries and report visuals
  • Improve DAX performance
  • Configure Direct Lake, including default fallback and refresh behavior
  • Choose between Direct Lake on OneLake and Direct Lake on SQL analytics endpoint
  • Implement incremental refresh for semantic models

DP-600 practice questions and answers

12 free sample questions from the DP-600 bank, with the correct answer and a full explanation for each. These are original questions written to the Microsoft objective domains — not real exam content.

  1. Question 1Implement and manage semantic models

    Sales leaders want a revenue measure to display the currency symbol selected in a slicer while keeping the value usable for numeric sorting, totals, and conditional formatting. Which two implementation statements are correct?

    • ADefine a dynamic format string expression for the measure and leave the measure expression returning a numeric value.
    • BUse `FORMAT` in the measure expression only when returning text is acceptable for the report visual.
    • CCreate a field parameter over the currency table columns to control the numeric format of the measure.
    • DConcatenate the selected currency symbol to the calculation result inside the measure expression.
    • ESet the data category of the currency column so the model applies that symbol to all measures.
    Show answer and explanation

    Correct answers

    • Define a dynamic format string expression for the measure and leave the measure expression returning a numeric value.
    • Use `FORMAT` in the measure expression only when returning text is acceptable for the report visual.

    Explanation

    The correct choices keep the measure result numeric and move only the display pattern into a format expression.

    • A dynamic format string on a measure can use DAX to choose a format pattern, while the measure still returns a numeric value.
    • The FORMAT function returns text. It can display a symbol, but it changes the result to a string, which is not appropriate when visuals still need numeric behavior.
    • A field parameter changes which field or measure a visual uses; it does not define the display format for a measure value.
    • Concatenating a symbol in a calculation item expression also produces text instead of preserving the measure's numeric result.
    • Changing a column or table category does not implement a slicer-driven measure format.

    References:

  2. Question 2Implement and manage semantic models

    Adventure Works is adding report controls that let readers switch a visual between several existing dimensions and explicit measures. Which two statements describe field parameters correctly?

    • AThe generated parameter table stores field references by using the DAX `NAMEOF` function.
    • BThe parameter can be used in visuals with a slicer to let readers switch dimensions or measures.
    • CThe parameter applies reusable calculations by evaluating `SELECTEDMEASURE()` for each selected field.
    • DThe parameter can include implicit aggregations of numeric columns instead of explicit DAX measures.
    • EThe parameter can be configured as the linked field for drill-through and tooltip pages.
    Show answer and explanation

    Correct answers

    • The generated parameter table stores field references by using the DAX `NAMEOF` function.
    • The parameter can be used in visuals with a slicer to let readers switch dimensions or measures.

    Explanation

    Field parameters are designed for visual field selection.

    • Power BI creates a calculated table for a field parameter, and the generated DAX uses NAMEOF to reference the model fields.
    • A field parameter can be placed in a visual and exposed through a slicer so users can switch the fields or measures used by that visual.
    • SELECTEDMEASURE() is a calculation group function, not how field parameters are implemented.
    • Field parameters do not support implicit measures; if an aggregated numeric column is required, create an explicit DAX measure first.
    • Field parameters have documented limitations, including that they cannot be used as linked fields on drill-through or tooltip pages.

    References:

  3. Question 3Implement and manage semantic models

    Report authors see that a visual selector should offer Sales Amount, Gross Margin, and Order Count as choices in the Values well. The model currently has only numeric columns for sales and margin and a row count available through default summarization. The solution must use the built-in field switching experience. What should you do first?

    • ACreate explicit DAX measures for Sales Amount, Gross Margin, and Order Count, and add those measures to the field parameter.
    • BSet the default summarization for the numeric columns and add the raw columns directly to the field parameter.
    • CCreate calculation group items named Sales Amount, Gross Margin, and Order Count that call `SELECTEDMEASURE()`.
    • DAssign dynamic format strings to the numeric columns and use the format string names as the selector values.
    Show answer and explanation

    Correct answer

    • Create explicit DAX measures for Sales Amount, Gross Margin, and Order Count, and add those measures to the field parameter.

    Explanation

    Field parameters can switch measures in a visual, but they do not support implicit measures. Aggregated numeric columns and counts that are needed as selectable values should first be represented as explicit DAX measures, and those measures should be added to the field parameter.

    • Setting default summarization still relies on implicit measures, which is not supported for field parameters.
    • Calculation groups apply calculations to existing measures; they are not the built-in visual field selector for choosing the base metric.
    • Dynamic format strings control display formatting and do not create selectable measure choices.

    References:

  4. Question 4Implement and manage semantic models

    A dashboard must show warehouse inventory measures within minutes of Delta table updates in a Fabric lakehouse. The model should avoid maintaining an imported copy of the large fact table, and the report authors do not need Power Query transformations. Which storage mode should you choose for the lakehouse tables?

    • AUse Direct Lake for the lakehouse tables.
    • BUse Import and configure frequent scheduled refreshes.
    • CUse DirectQuery against the lakehouse SQL analytics endpoint.
    • DUse Dual for the fact and dimension tables in the lakehouse.
    Show answer and explanation

    Correct answer

    • Use Direct Lake for the lakehouse tables.

    Explanation

    Direct Lake is the best fit because the source tables are Delta tables in OneLake and the requirement is to avoid maintaining an imported copy while keeping reports close to the lake data. Import can provide fast report performance, but it requires refresh operations to copy data into the semantic model. DirectQuery through the SQL analytics endpoint keeps data at the source, but it sends report queries to the SQL endpoint instead of using Direct Lake. Dual is a table setting for composite models, typically for dimensions that can act as cached or DirectQuery tables; it is not the primary mode for a whole lakehouse fact model.

    References:

  5. Question 5Prepare data

    Report consumers notice that an `Online Sales` measure still returns values when the channel slicer is set to Retail only. The measure must return online sales when Online is included in the current channel filter, and return blank when the current channel filter excludes Online. Which DAX expression should be used?

    • A`CALCULATE([Sales Amount], KEEPFILTERS('DimChannel'[ChannelName] = "Online"))`
    • B`CALCULATE([Sales Amount], 'DimChannel'[ChannelName] = "Online")`
    • C`CALCULATE([Sales Amount], FILTER(ALL('DimChannel'), 'DimChannel'[ChannelName] = "Online"))`
    • D`CALCULATE([Sales Amount], REMOVEFILTERS('DimChannel'[ChannelName]), 'DimChannel'[ChannelName] = "Online")`
    Show answer and explanation

    Correct answer

    • `CALCULATE([Sales Amount], KEEPFILTERS('DimChannel'[ChannelName] = "Online"))`

    Explanation

    KEEPFILTERS changes the behavior of a CALCULATE filter argument so it is added to the existing filter on the same column instead of replacing that filter. If the current slicer selection is Retail only, intersecting it with Online produces an empty filter and the measure returns blank.

    A plain Boolean filter argument in CALCULATE replaces existing filters on DimChannel[ChannelName]. FILTER(ALL('DimChannel'), ...) also removes the existing channel filter before applying Online. Using REMOVEFILTERS explicitly clears the current channel selection and then applies Online, which violates the requirement.

    References:

  6. Question 6Prepare data

    Report consumers see rows with blank customer attributes after an enrichment step. A governed extract must include only orders that have a matching customer record, and it must not add customers that have no orders. The Dataflow Gen2 merge uses `Orders` as the first table and `Customers` as the second table. Which join kind should be selected?

    • AInner
    • BLeft outer
    • CFull outer
    • DLeft anti
    • ERight outer
    Show answer and explanation

    Correct answer

    • Inner

    Explanation

    The correct choice is Inner. An inner merge returns only rows that have matching keys in both tables, so it excludes orders with unknown customers and does not add customer-only rows.

    • Left outer is incorrect because it keeps all orders, including orders with no matching customer, which causes blank customer attributes.
    • Full outer is incorrect because it also includes customers without orders.
    • Left anti is incorrect because it returns only orders that do not have a matching customer.
    • Right outer is incorrect because it keeps all customers and can include customer rows with no matching order.

    References:

  7. Question 7Prepare data

    Users report that supplier CSV files copied into a lakehouse have inconsistent capitalization, leading and trailing spaces, and delimited address fields. The team needs a persisted cleaned table and wants a no-code experience for trim, replace values, split column, and data type changes. Which Fabric item should be added?

    • ADataflow Gen2 that uses Power Query transformations and writes to a lakehouse destination.
    • BData pipeline Copy activity that maps source columns directly to sink columns.
    • COneLake shortcut that exposes the source folder in the workspace.
    • DSemantic model calculated columns that format values at report query time.
    Show answer and explanation

    Correct answer

    • Dataflow Gen2 that uses Power Query transformations and writes to a lakehouse destination.

    Explanation

    Dataflow Gen2 is the Fabric item designed for no-code data preparation with Power Query transformations and persisted destinations.

    • Dataflow Gen2 provides Power Query transformations such as trimming, replacing values, splitting columns, and changing data types, and it can write the prepared output to a lakehouse destination.
    • A pipeline Copy activity is primarily for data movement and mappings; it is not the no-code transformation surface for these cleansing steps.
    • A OneLake shortcut exposes data in place but does not clean or persist a transformed copy.
    • Semantic model calculated columns can shape reporting behavior but do not produce a persisted prepared table in the lakehouse.

    References:

  8. Question 8Prepare data

    You are designing a Fabric workspace for Fourth Coffee. The source system provides CSV extracts, Parquet files, images, and PDF documents. Data engineers will use notebooks for cleansing, and analysts need SQL access to prepared structured tables after the files are processed. Which Fabric data store should you choose?

    • AUse a Fabric lakehouse with Files for raw objects and Tables for curated Delta data.
    • BUse a Fabric Warehouse with tables for both the raw objects and curated data.
    • CUse a Fabric Eventhouse with a KQL database for raw objects and curated data.
    • DUse a Power BI semantic model in Direct Lake mode as the landing and serving store.
    Show answer and explanation

    Correct answer

    • Use a Fabric lakehouse with Files for raw objects and Tables for curated Delta data.

    Explanation

    A Fabric lakehouse is the best fit because it provides a Files area for raw structured, semi-structured, and unstructured objects and a Tables area for prepared Delta tables. Notebooks can use Spark against the lakehouse, and the lakehouse SQL analytics endpoint can query the prepared tables.

    A Fabric Warehouse is optimized for relational T-SQL analytics, not for landing images, PDFs, and schema-evolving files. An Eventhouse is designed for high-volume event, log, and telemetry analytics with KQL rather than general file preparation. A Power BI semantic model is used for analytical consumption; it is not the raw landing and preparation store.

    References:

  9. Question 9Prepare data

    A governed finance mart must be rebuilt in Fabric. The team has SQL developers but no Spark skills. They need to create and update dimensional tables by using T-SQL DDL and DML, publish a relational serving schema, and expose the data to reporting tools. Which Fabric data store should you choose?

    • AFabric Warehouse
    • BFabric lakehouse queried through its SQL analytics endpoint
    • CFabric lakehouse Files area
    • DFabric Eventhouse
    Show answer and explanation

    Correct answer

    • Fabric Warehouse

    Explanation

    A Fabric Warehouse is the appropriate store for a relational finance mart managed with T-SQL. It is designed for SQL-based data warehousing workloads and supports creating and modifying warehouse tables with T-SQL.

    A lakehouse SQL analytics endpoint is useful for SQL queries over lakehouse Delta tables, but it is read-only for table data and is not the right choice when SQL developers must create and update the prepared dimensional tables through T-SQL. The lakehouse Files area is for file storage rather than a relational serving schema. An Eventhouse is optimized for KQL-based real-time event analytics, not T-SQL dimensional warehousing.

    References:

  10. Question 10Prepare data

    Telemetry analysts at Woodgrove Bank need a Fabric store for application traces arriving continuously from an event stream. Dashboards must filter and aggregate recent records over sliding time windows with KQL, while long-term dimensional sales reporting is handled elsewhere. Which store should be the primary destination for these incoming events?

    • AFabric Eventhouse with a KQL database
    • BFabric Warehouse with relational fact tables
    • CFabric lakehouse with scheduled Spark notebooks
    • DPower BI semantic model in Import mode
    • EOneLake shortcut to an external ADLS Gen2 folder
    Show answer and explanation

    Correct answer

    • Fabric Eventhouse with a KQL database

    Explanation

    A Fabric Eventhouse with a KQL database is the best primary store for continuously arriving traces that will be queried with KQL for near real-time, time-based analytics.

    A Fabric Warehouse is intended for relational SQL analytics and dimensional serving, not KQL-based telemetry exploration. A lakehouse can store event data and support Spark preparation, but scheduled notebook processing is not the best primary pattern for continuously arriving traces that require KQL dashboards. A Power BI semantic model can serve reports, but it is not an ingestion store for raw application events. A OneLake shortcut virtualizes existing data; it does not provide the KQL engine used for real-time event analytics.

    References:

  11. Question 11Prepare data

    Complete the Power Query M expression so a Fabric Dataflow Gen2 query keeps only non-return transactions for fiscal year 2025. The query `SalesTransactions` already contains typed columns named `BusinessDate` and `TransactionType`.

    powerquery
    let
        Source = SalesTransactions,
        FilteredRows = 1(Source, each [BusinessDate] >= #date(2025, 1, 1) and [TransactionType] <> "Return")
    in
        FilteredRows

    Blank 1

    • ATable.SelectRows
    • BTable.SelectColumns
    • CTable.RemoveColumns
    • DTable.Sort
    Show answer and explanation

    Correct answer

    • Blank 1: Table.SelectRows

    Explanation

    Table.SelectRows is the Power Query M function that returns only the rows that satisfy a row condition function.

    • Table.SelectRows is correct because it evaluates the each predicate for every row and keeps only matching rows.
    • Table.SelectColumns projects columns; it does not filter rows by a predicate.
    • Table.RemoveColumns removes fields from the table; it does not evaluate row conditions.
    • Table.Sort orders rows; it does not exclude nonmatching rows.

    References:

  12. Question 12Prepare data

    Lucía, a data analyst, is using Power Query Online in a Fabric Dataflow Gen2 to prepare 5 million customer-contact rows for an email provider. Rows that do not have a value in `CustomerEmail` must not be loaded to the destination, and the team wants a no-code transformation. Which transformation should she use?

    • AUse the filter menu on `CustomerEmail` and remove null or blank values.
    • BUse Choose Columns to keep `CustomerEmail` and the required business columns.
    • CUse Replace Values to replace missing `CustomerEmail` values with `Unknown`.
    • DUse Remove Duplicates on `CustomerEmail` before loading the destination.
    Show answer and explanation

    Correct answer

    • Use the filter menu on `CustomerEmail` and remove null or blank values.

    Explanation

    The correct choice is to use the column filter on CustomerEmail and remove null or blank values.

    • A column filter in Power Query filters rows based on values in a selected column, which satisfies the requirement without code.
    • Choose Columns changes the schema by keeping or removing columns; it does not remove rows with missing email values.
    • Replace Values would keep the rows and substitute a value such as Unknown, which violates the requirement to exclude them.
    • Remove Duplicates removes repeated rows or keys; it does not target rows where CustomerEmail is empty.

    References:

Membership includes 175 questions and explanations aligned to the DP-600 curriculum, including 8 case studies.

Other Microsoft certifications

Every one of these is included with the same membership as DP-600.

DP-600 exam FAQ

How many questions are on the DP-600 exam?+

The DP-600 (Implementing Analytics Solutions Using Microsoft Fabric) exam has around 50 questions. Question counts vary slightly between exam forms, so treat this as the typical number rather than a guarantee.

How long is the DP-600 exam?+

You get 100 minutes for the DP-600 exam itself. Allow extra time at the test centre or for the online check-in process before the timer starts.

Are there free DP-600 practice questions?+

Yes. 12 free DP-600 practice questions are on this page, each with the correct answer and a full explanation. The complete bank of 175 questions is included with membership.

Are these real DP-600 exam questions?+

No. Every question is original, written to match the published DP-600 objective domains and question styles. Real exam content is confidential, and reusing it would breach Microsoft's exam policies.