DP-700: Implementing Data Engineering Solutions Using Microsoft Fabric
This exam is intended for candidates with subject matter expertise in data loading patterns, data architectures, and orchestration processes. Candidates are responsible for ingesting and transforming data, securing and managing an analytics solution, and monitoring and optimizing an analytics solution. They work closely with analytics engineers, architects, analysts, and administrators to design and deploy data engineering solutions for analytics and should be skilled in SQL, PySpark, and Kusto Query Language (KQL).
What you get with membership
- The full DP-700 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-700 exam objectives and study guide
The skills measured on the DP-700 exam, by objective domain. Percentages are the share of the exam each domain carries.
Implement and manage an analytics solution
32.5% of the exam- Configure Microsoft Fabric workspace settings
- Configure Spark workspace settings
- Configure domain workspace settings
- Configure OneLake workspace settings
- Configure Apache Airflow workspace settings
- Implement lifecycle management in Fabric
- Configure version control
- Implement database projects
- Create and configure deployment pipelines
- Configure security and governance
- Implement workspace-level access controls
- Implement item-level access controls
- Implement row-level, column-level, object-level, and folder/file-level access controls
- Implement dynamic data masking
- Apply sensitivity labels to items
- Endorse items
- Implement and use Microsoft Fabric audit logs
- Configure and implement OneLake security
- Orchestrate processes
- Choose between Dataflow gen 2, a pipeline and a notebook
- Design and implement schedules and event-based triggers
- Implement orchestration patterns with notebooks and pipelines, including parameters and dynamic expressions
Ingest and transform data
32.5% of the exam- Design and implement loading patterns
- Design and implement full and incremental data loads
- Prepare data for loading into a dimensional model
- Design and implement a loading pattern for streaming data
- Ingest and transform batch data
- Choose an appropriate data store
- Choose between Dataflows Gen2, notebooks, KQL, and T-SQL for data transformation
- Create and manage OneLake shortcuts
- Implement mirroring
- Ingest data by using pipelines
- Transform data by using PySpark, SQL, and KQL
- Denormalize data
- Group and aggregate data
- Handle duplicate, missing, and late-arriving data
- Ingest and transform streaming data
- Choose an appropriate streaming engine
- Choose between native tables and OneLake shortcuts in Real-Time Intelligence
- Choose between Query acceleration for OneLake shortcuts and standard OneLake shortcuts in Real-Time Intelligence
- Process data by using Eventstreams
- Process data by using Spark structured streaming
- Process data by using KQL
- Create windowing functions
Monitor and optimize an analytics solution
32.5% of the exam- Monitor Fabric items
- Monitor data ingestion
- Monitor data transformation
- Monitor semantic model refresh
- Configure alerts
- Identify and resolve errors
- Identify and resolve pipeline errors
- Identify and resolve Dataflow Gen2 errors
- Identify and resolve notebook errors
- Identify and resolve Eventhouse errors
- Identify and resolve Eventstream errors
- Identify and resolve T-SQL errors
- Identify and resolve OneLake shortcut errors
- Optimize performance
- Optimize a Lakehouse table
- Optimize a pipeline
- Optimize a data warehouse
- Optimize Eventstreams and Eventhouses
- Optimize Spark performance
- Optimize query performance
DP-700 practice questions and answers
10 free sample questions from the DP-700 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.
- Question 1Ingest and transform data
You are preparing a Fabric notebook for semi-structured order data that will be curated with Spark and then read by analysts through the Lakehouse SQL analytics endpoint. The team selected a Lakehouse because the raw files and managed tables need to remain in OneLake. Complete the PySpark write operation so the result is a Lakehouse table rather than only a folder of files.
python (orders_df.write .format('1') .mode('append') .2('curated_orders'))Blank 1
- Adelta
- Bparquet
- Cjson
- Dcsv
Blank 2
- AsaveAsTable
- Bsave
- CinsertInto
- Dparquet
Show answer and explanation
Correct answers
- Blank 1: delta
- Blank 2: saveAsTable
Explanation
deltaandsaveAsTableare the correct choices. Fabric Lakehouse tables are Delta Lake tables in OneLake, andsaveAsTableregisters the DataFrame output as a table that can be discovered and queried through table-oriented experiences such as Spark and the SQL analytics endpoint.parquet,json, andcsvare valid Spark formats for files, but they do not create a Delta Lake table with a transaction log.savewrites to a path and does not register a managed table by name.insertIntoappends to an existing table and is not the right operation when the notebook must create the Lakehouse table.parquetas a writer method writes Parquet files to a path rather than creating the named Lakehouse table.
References:
- Question 2Ingest and transform data
Marisol, an analytics engineer, must land monthly vendor packages that contain CSV manifests, PDF invoices, and nested JSON detail files. Data scientists will explore the files with Spark notebooks, and analysts only need read-only SQL over curated Delta tables. Which Fabric store should Marisol create?
- AFabric Lakehouse
- BFabric Warehouse
- CKQL database in a Fabric Eventhouse
- DMirrored Azure SQL database
- EPower BI semantic model
Show answer and explanation
Correct answer
- Fabric Lakehouse
Explanation
A Fabric Lakehouse is the best fit. A Lakehouse supports files and Delta tables in OneLake, Spark notebooks for engineering and exploration, and a SQL analytics endpoint for read-only SQL access to tables.
- A Warehouse is suited to relational T-SQL analytics, but it is not the right store for keeping PDFs and raw nested files next to Spark-managed tables.
- An Eventhouse is optimized for real-time event analytics and KQL, not monthly mixed file packages.
- A Mirrored Azure SQL database is for replicating supported operational databases, not landing vendor file packages.
- A semantic model is a BI modeling layer, not the physical data store for raw invoices and curated tables.
References:
- Question 3Monitor and optimize an analytics solution
Anika, a Fabric operations lead, must create a daily operations process for semantic model refreshes across eight workspaces. Analysts need an interactive view for failed and running refresh activities in the Fabric portal, and an automation runbook must store the last refresh status for each model as JSON. Which TWO monitoring approaches should Anika include?
- AInstall the Microsoft Fabric Capacity Metrics app and use CU utilization rows as the refresh success log.
- BUse the Fabric Monitoring hub, filtered to semantic model refresh activities, for the operator view.
- CSend Azure Data Factory pipeline diagnostic logs to Log Analytics and query pipeline run failures.
- DCall the Power BI REST API Get Refresh History In Group for each semantic model and persist the returned records.
- EScan the workspaces with Microsoft Purview Data Map and read certification metadata.
Show answer and explanation
Correct answers
- Use the Fabric Monitoring hub, filtered to semantic model refresh activities, for the operator view.
- Call the Power BI REST API Get Refresh History In Group for each semantic model and persist the returned records.
Explanation
The correct answers are B and D.
- B is correct because the Fabric Monitoring hub provides a central portal experience for monitoring Fabric item activities, including semantic model refresh activity visible to users with access.
- D is correct because the Power BI REST API
Get Refresh History In Groupoperation returns semantic model refresh history records as JSON for models in a workspace. The REST API still uses thedatasetspath for semantic models. - A is incorrect because the Microsoft Fabric Capacity Metrics app is used to analyze capacity usage, throttling, and CU consumption. It is not the operational refresh success and error-history log for each semantic model.
- C is incorrect because Azure Data Factory diagnostic logs cover Data Factory pipeline activity, not Power BI/Fabric semantic model refresh status.
- E is incorrect because Microsoft Purview Data Map is for data governance, cataloging, scanning, and lineage scenarios, not runtime refresh monitoring.
References:
- Question 4Monitor and optimize an analytics solution
Users report that the sales report still shows yesterday's data even though the scheduled import semantic model refresh should run at 06:00. The model uses an on-premises data gateway, and the administrator must confirm whether the scheduled refresh failed because of credentials without checking gateway machine logs. What should the administrator open first?
- AThe Manage connections and gateways page for the gateway cluster.
- BThe report usage metrics report for the affected report.
- CThe semantic model Refresh history page in the Power BI service.
- DThe workspace lineage view for the report and semantic model.
Show answer and explanation
Correct answer
- The semantic model Refresh history page in the Power BI service.
Explanation
The correct answer is C.
- C is correct because the semantic model Refresh history shows scheduled and on-demand refresh attempts, including status, timing, and failure details for a specific refresh run. A gateway credential failure is surfaced as a refresh failure for the model.
- A is incorrect because Manage connections and gateways is used to administer gateway connections and credentials, but it does not provide the run-by-run refresh history for the 06:00 semantic model refresh.
- B is incorrect because report usage metrics show report consumption behavior, not whether a semantic model refresh succeeded or failed.
- D is incorrect because lineage view shows item dependencies. It does not provide the detailed failure message for a scheduled semantic model refresh.
References:
- Question 5Monitor and optimize an analytics solution
Wide World Importers has a Fabric F64 capacity where two import semantic models refresh during business hours. Refresh history shows completion times are increasing, but the team needs to determine whether refresh workloads are causing CU saturation and throttling on the capacity during the same interval. Which monitoring source should they use?
- ASemantic model Refresh history for each affected model.
- BPower BI Desktop Performance Analyzer for the reports.
- COneLake catalog for the workspace items.
- DMicrosoft Fabric Capacity Metrics app for the F64 capacity.
Show answer and explanation
Correct answer
- Microsoft Fabric Capacity Metrics app for the F64 capacity.
Explanation
The correct answer is D.
- D is correct because the Microsoft Fabric Capacity Metrics app is designed to analyze Fabric capacity consumption, including CU usage and throttling. It is the right source for correlating semantic model refresh workloads with capacity saturation.
- A is incorrect because semantic model Refresh history is useful for per-model status, duration, and failure details, but it does not provide the capacity-level CU saturation and throttling analysis required here.
- B is incorrect because Power BI Desktop Performance Analyzer measures report visual and query performance during report authoring, not capacity-level refresh workload consumption.
- C is incorrect because OneLake catalog helps users discover and manage Fabric data items. It is not a capacity utilization or throttling monitoring tool.
References:
- Question 6Monitor and optimize an analytics solution
To verify yesterday's scheduled refresh for one semantic model, you want to use MicrosoftPowerBIMgmt in PowerShell instead of opening the portal. Complete the command that retrieves the latest refresh history records for the model.
powershell Connect-PowerBIServiceAccount $uri = "groups/$workspaceId/datasets/$semanticModelId/refreshes?`$top=5" Invoke-PowerBIRestMethod -Url $uri -Method 1Blank 1
- APost
- BPatch
- CGet
- DDelete
Show answer and explanation
Correct answer
- Blank 1: Get
Explanation
The correct completion is Get.
Invoke-PowerBIRestMethodcan call Power BI REST API endpoints. AGETrequest to therefreshescollection retrieves refresh history for the semantic model.Postis used on this collection to start a refresh, not to read history.PatchandDeletedo not retrieve semantic model refresh history.References:
- Question 7Monitor and optimize an analytics solution
Fourth Coffee's finance team asks whether yesterday evening's scheduled import refresh for the Finance semantic model succeeded. Which location in the Power BI service provides this information for that model?
- AThe report Subscriptions pane.
- BThe semantic model Refresh history page.
- CThe workspace Access page.
- DThe deployment pipeline rules page.
Show answer and explanation
Correct answer
- The semantic model Refresh history page.
Explanation
The correct answer is B.
- B is correct because the semantic model Refresh history is the built-in place to view recent refresh attempts and their status for a specific model.
- A is incorrect because report subscriptions control email delivery of report snapshots or links, not semantic model refresh run status.
- C is incorrect because the workspace Access page manages permissions and does not show refresh outcomes.
- D is incorrect because deployment pipeline rules control item deployment behavior between stages, not the refresh history of a semantic model.
References:
- Question 8Monitor and optimize an analytics solution
You are tuning a Fabric notebook that creates three silver tables from the same cleansed bronze DataFrame. The Spark UI shows the same scan, filter, and projection stages repeated for a `count()` check and two write actions. The capacity has memory headroom, and the team does not want to persist an extra intermediate Delta table in OneLake. Which change best addresses the issue?
- ACall `persist()` or `cache()` on the cleansed DataFrame before the first action, and call `unpersist()` after the final action.
- BCheckpoint the cleansed DataFrame to a new Delta table and read it back for each silver-table write.
- CIncrease `spark.sql.shuffle.partitions` so the repeated transformations run with more tasks.
- DUse `broadcast()` on the cleansed bronze DataFrame before deriving the three silver tables.
Show answer and explanation
Correct answer
- Call `persist()` or `cache()` on the cleansed DataFrame before the first action, and call `unpersist()` after the final action.
Explanation
Cache or persist the reused DataFrame before the first action, and unpersist it after the last consumer. Spark DataFrames are lazily evaluated, so multiple actions can recompute the same lineage unless the intermediate result is materialized in memory or storage.
- Checkpointing or writing an intermediate Delta table can break lineage, but it violates the requirement to avoid persisting another intermediate table in OneLake.
- Increasing
spark.sql.shuffle.partitionschanges shuffle parallelism; it does not prevent repeated scans of the same lineage. - Broadcasting the cleansed bronze DataFrame is intended for small join inputs and is not appropriate for a large shared transformation.
References:
- Question 9Monitor and optimize an analytics solution
Khalil, a warehouse performance analyst, must reduce the runtime of a Fabric Data Warehouse report after a large nightly load. Query insights shows that the same T-SQL statement is now slower, and the query filters and joins on columns whose value distribution changed during the load. The team must keep the current Fabric capacity and avoid changing the report query. What should Khalil do first?
- ARun `UPDATE STATISTICS` on the affected Warehouse tables or statistics for the columns used by the filters and joins.
- BRun Lakehouse table maintenance with `OPTIMIZE` and V-Order on the Warehouse tables before the report starts.
- CInstrument the report client by using Application Insights OpenTelemetry and review Live metrics during the report run.
- DChange the semantic model storage mode to Import so that the report stops issuing the Warehouse query.
Show answer and explanation
Correct answer
- Run `UPDATE STATISTICS` on the affected Warehouse tables or statistics for the columns used by the filters and joins.
Explanation
The correct answer is to update the relevant Warehouse statistics. Fabric Data Warehouse query optimization depends on statistics for cardinality estimates. After a large data change, stale or missing statistics on filter and join columns can cause inefficient plans, so using T-SQL statistics statements such as
UPDATE STATISTICSor creating needed statistics is the right first optimization step.- Running Lakehouse table maintenance with V-Order is useful for Delta tables in a Lakehouse, but it does not address stale query optimizer statistics in a Fabric Data Warehouse.
- Adding Application Insights OpenTelemetry instrumentation can improve application observability, but it does not change the Warehouse optimizer plan or update data distribution metadata.
- Moving the report to Import mode can sometimes reduce report-time query latency, but it violates the requirement to avoid changing the report query path and does not fix the Warehouse query regression.
References:
- Question 10Monitor and optimize an analytics solution
Users report that a Direct Lake report becomes slower after each hourly append to a large Fabric Lakehouse table. The Spark write job creates many small Delta files, and the same table is queried by the SQL analytics endpoint. The solution must preserve Direct Lake behavior and must not increase capacity. Which maintenance action should you schedule?
- ARun Lakehouse table maintenance with `OPTIMIZE` and V-Order for the frequently queried Delta table after the append workload.
- BRun `VACUUM` for the table after every hourly append so that obsolete Delta files are removed immediately.
- CRewrite the table by partitioning it on the unique session identifier used by the clickstream source.
- DConvert the semantic model to Import mode and schedule refreshes to match the hourly append process.
Show answer and explanation
Correct answer
- Run Lakehouse table maintenance with `OPTIMIZE` and V-Order for the frequently queried Delta table after the append workload.
Explanation
The correct answer is to schedule Lakehouse table maintenance that runs
OPTIMIZEwith V-Order.OPTIMIZEcompacts many small Delta files into larger files, and V-Order improves read performance for Fabric engines that consume Delta/Parquet data, including Direct Lake and the SQL analytics endpoint.VACUUMremoves old files that are no longer needed by Delta retention, but it does not compact active small files.- Partitioning by a high-cardinality session identifier typically creates many small partitions and files, which worsens the symptom.
- Switching to Import mode can reduce interactive query load, but it violates the requirement to preserve Direct Lake behavior and introduces refresh management.
- Application Insights Live metrics are for application performance monitoring and do not optimize Delta file layout in OneLake.
References:
Membership includes 180 questions and explanations aligned to the DP-700 curriculum, including 8 case studies.
Other Microsoft certifications
Every one of these is included with the same membership as DP-700.
Microsoft 365 Copilot and Agent Administration Fundamentals
This exam is intended for candidates who are familiar with Microsoft 365, including core services, security, identity and access, data…
Microsoft Azure AI Fundamentals
This exam measures knowledge of machine learning and AI concepts and related Microsoft Azure services. It is intended for candidates…
Microsoft Azure Fundamentals
This exam is intended for technology professionals who want to demonstrate foundational knowledge of cloud concepts and Microsoft Azure.…
DP-700 exam FAQ
How many questions are on the DP-700 exam?+
The DP-700 (Implementing Data Engineering 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-700 exam?+
You get 100 minutes for the DP-700 exam itself. Allow extra time at the test centre or for the online check-in process before the timer starts.
What level is DP-700?+
DP-700 is a Microsoft associate-level certification.
Are there free DP-700 practice questions?+
Yes. 10 free DP-700 practice questions are on this page, each with the correct answer and a full explanation. The complete bank of 180 questions is included with membership.
Are these real DP-700 exam questions?+
No. Every question is original, written to match the published DP-700 objective domains and question styles. Real exam content is confidential, and reusing it would breach Microsoft's exam policies.