DP-700 sample exam questions
15 exam-style questions for Microsoft DP-700: Fabric Data Engineer, with answers and explanations. Take them as a timed practice exam first if you want a score out of 1000.
- You have a Fabric workspace that contains a warehouse named Warehouse1.
You have an on-premises Microsoft SQL Server database named Database1 that is accessed by using an on-premises data gateway.
You need to copy data from Database1 to Warehouse1.
Which item should you use?- Aa Dataflow Gen1 dataflow
- Ba data pipeline
- Ca KQL queryset
- Da notebook
Show answer
Correct answer: B
WhyA data pipeline Copy activity can use an on-premises data gateway connection to read from SQL Server and write to a Fabric warehouse. Dataflow Gen1 cannot target a Fabric warehouse, a KQL queryset only queries KQL databases, and notebooks cannot use the on-premises data gateway.
- A
- You have a Fabric workspace named Workspace1 that contains a lakehouse named Lakehouse1. Lakehouse1 contains the following tables:
Orders
Customer
Employee
The Employee table contains Personally Identifiable Information (PII).
A data engineer is building a workflow that requires writing data to the Customer table, however, the user does NOT have the elevated permissions required to view the contents of the Employee table.
You need to ensure that the data engineer can write data to the Customer table without reading data from the Employee table.
Which three actions should you perform? Each correct answer presents part of the solution.
NOTE: Each correct selection is worth one point.- AShare Lakehouse1 with the data engineer.
- BAssign the data engineer the Contributor role for Workspace2.
- CAssign the data engineer the Viewer role for Workspace2.
- DAssign the data engineer the Contributor role for Workspace1.
- EMigrate the Employee table from Lakehouse1 to Lakehouse2.
- FCreate a new workspace named Workspace2 that contains a new lakehouse named Lakehouse2.
- GAssign the data engineer the Viewer role for Workspace1.
Show answer
Correct answer: D, E, F
WhyWorkspace roles grant access to every item, so isolate the PII: create Workspace2 with Lakehouse2, migrate the Employee table there, and give the engineer Contributor on Workspace1 so they can write to Customer. Viewer cannot write, and roles on Workspace2 would expose the Employee data.
- A
- You have a Fabric workspace that contains a warehouse named DW1. DW1 is loaded by using a notebook named Notebook1.
You need to identify which version of Delta was used when Notebook1 was executed.
What should you use?- AReal-Time hub
- BOneLake data hub
- Cthe Admin monitoring workspace
- DFabric Monitor
- Ethe Microsoft Fabric Capacity Metrics app
Show answer
Correct answer: D
WhyFabric Monitor (the Monitoring hub) lets you open the notebook's Spark application run details, where the Spark and Delta runtime versions used for the execution are shown. Real-Time hub and OneLake data hub list data sources, and the Admin monitoring workspace and Capacity Metrics app track usage and capacity, not run-level Delta versions.
- A
- DRAG DROP
You have two Fabric notebooks named Load_Salesperson and Load_Orders that read data from Parquet files in a lakehouse. Load_Salesperson writes to a Delta table named dim_salesperson. Load_Orders writes to a Delta table named fact_orders and is dependent on the successful execution of Load_Salesperson.
You need to implement a pattern to dynamically execute Load_Salesperson and Load_Orders in the appropriate order by using a notebook.
How should you complete the code? To answer, drag the appropriate values the correct targets. Each value may be used once, more than once, or not at all. You may need to drag the split bar between panes or scroll to view content.
NOTE: Each correct selection is worth one point.

Move each item to the matching row:
- activities
- broadcast
- dependencies
- execute
- notebooks
- runMultiple
- Top-level key holding the list of notebooks
- Key on Load_Orders listing ["Load_Salesperson"]
- mssparkutils.notebook. method called with (DAG)
Show answer
- Top-level key holding the list of notebooks activities
- Key on Load_Orders listing ["Load_Salesperson"] dependencies
- mssparkutils.notebook. method called with (DAG) runMultiple
Whynotebook.runMultiple accepts a DAG whose activities array lists each notebook, and a dependencies property makes Load_Orders wait for Load_Salesperson. Note that mssparkutils is now the legacy name; Microsoft recommends notebookutils, which offers the same method.
- You have a Fabric workspace named Workspace1 that is connected to a GitHub repository named repo1. Workspace1 contains the items shown in the following table.

You modify Semanticmodel1, Semanticmodel2, and Report2.
You need to commit the changes to repo1.
What is the minimum number of commits you should perform?- A1
- B2
- C3
- D4
Show answer
Correct answer: B
WhyOnly the changed items (Semanticmodel1 26 MB, Semanticmodel2 14 MB and Report2 12 MB, 52 MB total) are committed, and their combined size exceeds the per-commit size limit Fabric enforces for GitHub repositories. Splitting them into two selective commits keeps each under the limit, so two commits is the minimum.
- A
- HOTSPOT
You have a Fabric workspace.
You plan to deploy two Apache Spark environments that will each contain one of the following notebooks:
• Notebook1: A data ingestion notebook that will run as a scheduled Spark job
• Notebook2: An ad hoc notebook for interactive data analysis that will be used by a team of analysts and data scientists
You need to configure the Spark environments to meet the following requirements:
• For the environment that contains Notebook1, minimize compute costs.
• For the environment that contains Notebook2, support multiple concurrent users.
What should you use for each environment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.

Environment for Notebook1: A custom Spark pool that has multiple nodes and high concurrency mode enabled / A custom Spark pool that has a single small node and high concurrency mode enabled / A serverless Spark environment / A starter pool Environment for Notebook2: A custom Spark pool that has multiple nodes / A custom Spark pool that has a single small node / A serverless Spark environment / A starter pool Show answer
- Environment for Notebook1: A starter pool
- Environment for Notebook2: A custom Spark pool that has multiple nodes
WhyA scheduled job gains nothing from high concurrency, and starter pools need no sizing and bill only while a session runs. Multi-node custom pools give several analysts enough capacity at once. This item is debatable, because Fabric offers no separate serverless Spark environment option to compare.
- You have a Fabric workspace that contains an eventstream named Eventstream1. Eventstream1 processes data from a thermal sensor by using event stream processing, and then stores the data in a lakehouse.
You need to modify Eventstream1 to include the standard deviation of the temperature.
Which transform operator should you include in the Eventstream1 logic?- AExpand
- BGroup by
- CUnion
- DAggregate
Show answer
Correct answer: B
WhyThe eventstream Group by operator computes aggregations over a time window and supports functions such as average, min, max, sum, count, percentile and standard deviation. The Aggregate operator only supports sum, minimum, maximum and average, while Expand and Union do not compute statistics.
- A
- HOTSPOT
You have a Fabric workspace that contains a lakehouse named Lakehouse1. Lakehouse1 contains a table named Status_Target that has the following columns:
• Key
• Status
• LastModified
The data source contains a table named Status_Source that has the same columns as Status_Target. Status_Source is used to populate Status_Target.
In a notebook name Notebook1, you load Status_Source to a DataFrame named sourceDF and Status_Target to a DataFrame named targetDF.
You need to implement an incremental loading pattern by using Notebook1. The solution must meet the following requirements:
• For all the matching records that have the same value of key, update the value of LastModified in Status_Target to the value of LastModified in Status_Source.
• Insert all the records that exist in Status_Source that do NOT exist in Status_Target.
• Set the value of Status in Status_Target to inactive for all the records that were last modified more than seven days ago and that do NOT exist in Status_Source.
How should you complete the statement? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.

Clause with set = {"targetDF.LastModified": "sourceDF.LastModified"} .whenMatchedInsert( / .whenMatchedUpdate( / .whenNotMatchedBySourceInsert( / .whenNotMatchedBySourceUpdate( / .whenNotMatchedInsert( / .whenNotMatchedUpdate( Clause with values = { Key, LastModified, Status } .whenMatchedInsert( / .whenMatchedUpdate( / .whenNotMatchedBySourceInsert( / .whenNotMatchedBySourceUpdate( / .whenNotMatchedInsert( / .whenNotMatchedUpdate( Clause with condition and set = {"targetDF.Status": "'inactive'"} .whenMatchedInsert( / .whenMatchedUpdate( / .whenNotMatchedBySourceInsert( / .whenNotMatchedBySourceUpdate( / .whenNotMatchedInsert( / .whenNotMatchedUpdate( Show answer
- Clause with set = {"targetDF.LastModified": "sourceDF.LastModified"} .whenMatchedUpdate(
- Clause with values = { Key, LastModified, Status } .whenNotMatchedInsert(
- Clause with condition and set = {"targetDF.Status": "'inactive'"} .whenNotMatchedBySourceUpdate(
WhyIn a Delta merge, whenMatchedUpdate changes rows found in both tables, whenNotMatchedInsert adds rows found only in the source, and whenNotMatchedBySourceUpdate changes rows found only in the target. The exhibit's condition uses a greater-than comparison, which would actually need less-than for older rows.
- DRAG DROP
You are building a data loading pattern by using a Fabric data pipeline. The source is an Azure SQL database that contains 25 tables. The destination is a lakehouse.
In a warehouse, you create a control table named Control.Object as shown in the exhibit. (Click the Exhibit tab.)

You need to build a data pipeline that will support the dynamic ingestion of the tables listed in the control table by using a single execution.
Which three actions should you perform in sequence? To answer, move the appropriate actions from the list of actions to the answer area and arrange them in the correct order.

Arrange 3 of these in the correct order:
- Add a ForEach activity to iterate over the list of tables and copy the source data to the lakehouse Delta tables.
- Add a Get metadata activity to query Control.Object and generate a list of schemas and tables to copy.
- Add an Until activity to iterate over the list of tables and copy the source data to the lakehouse Delta tables.
- Add a Lookup activity to query Control.Object and generate a list of the schemas and tables to copy.
- Add a Copy data activity as an inner activity to the iterator activity.
Show answer
- Add a Lookup activity to query Control.Object and generate a list of the schemas and tables to copy.
- Add a ForEach activity to iterate over the list of tables and copy the source data to the lakehouse Delta tables.
- Add a Copy data activity as an inner activity to the iterator activity.
WhyA Lookup activity runs a query against the control table and returns its rows, whereas Get Metadata only returns item properties. ForEach loops over a known list, whereas Until repeats on a condition. The inner Copy data activity uses each row's schema and table values.
- You have a Fabric workspace that contains a lakehouse named Lakehouse1.
In an external data source, you have data files that are 500 GB each. A new file is added every day.
You need to ingest the data into Lakehouse1 without applying any transformations. The solution must meet the following requirements:
• Trigger the process when a new file is added.
• Provide the highest throughput.
Which type of item should you use to ingest the data?- AEnvironment
- BData pipeline
- CEventstream
- DKQL queryset
Show answer
Correct answer: B
WhyA data pipeline Copy activity provides the highest throughput for large file ingestion without transformations and supports storage event triggers that start the run when a new file arrives. Eventstreams process event data, environments store Spark settings, and KQL querysets only run queries.
- A
- HOTSPOT
You have the development groups shown in the following table.

You have the projects shown in the following table.

You need to recommend which Fabric item to use based on each development group’s skillset. The solution must meet the project requirements and minimize development effort.
What should you recommend for each group? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.

Group1: A data pipeline / A Dataflow Gen2 / An eventstream / A notebook Group2: A data pipeline / A Dataflow Gen2 / An eventstream / A notebook Group3: A data pipeline / A Dataflow Gen2 / An eventstream / A notebook Show answer
- Group1: An eventstream
- Group2: A Dataflow Gen2
- Group3: A notebook
WhyEventstreams match Stream Analytics and Event Hubs experience, since they move events from sources to destinations with no code. Dataflow Gen2 offers Power BI users the familiar low-code Power Query experience. Notebooks are the only listed item that runs R code, through SparkR or sparklyr.
- You have a Fabric lakehouse that contains the resources shown in the following table.

You need to use a notebook to query for customers in the United States and load the filtered data into USCustomers. The solution must minimize the number of scripts used.
Which statement should you use?- Acustomers.write.format("parquet").mode("append").saveAsTable("USCustomers")
- Bcustomers.write.format("delta").mode("overwrite").save("Tables/USCustomers")
- Ccustomers.write.format("delta").mode("overwrite").saveAsTable("USCustomers")
- Dcustomers.write. format("parquet").mode("append").save("Tables/USCustomers")
Show answer
Correct answer: C
WhyWriting with format delta and saveAsTable("USCustomers") registers a managed Delta table in the lakehouse in one statement, and overwrite replaces the content with the filtered US customers. Parquet format does not create a Delta table in the Tables area, and append would duplicate rows on reruns.
- A
- You have a Fabric workspace that contains a lakehouse named Lakehouse1. Lakehouse1 contains a Delta table named Table1.
You analyze Table1 and discover that Table1 contains 2,000 Parquet files of 1 MB each.
You need to minimize how long it takes to query Table1.
What should you do?- ADisable V-Order and run the OPTIMIZE command.
- BDisable V-Order and run the VACUUM command.
- CRun the OPTIMIZE and VACUUM commands.
Show answer
Correct answer: C
Why2,000 files of 1 MB is the small-file problem: OPTIMIZE compacts them into larger files (with V-Order applied), and VACUUM removes the old unreferenced files. Disabling V-Order would make reads slower, not faster.
- A
- You have a Fabric notebook named Notebook1 that has been executing successfully for the last week.
During the last run, Notebook1executed nine jobs.
You need to view the jobs in a timeline chart.
What should you use?- AReal-Time hub
- BMonitoring hub
- Cthe job history from the application run
- DSpark History Server
- Ethe run series from the details of the application run
Show answer
Correct answer: E
WhyIn the notebook's Spark application run details, the Run series view shows a timeline chart of the application's runs and their jobs, which suits a notebook that runs repeatedly. Monitoring hub lists runs without a job timeline, Real-Time hub is for streaming data, and the job history list is not a chart.
- A
- You have a Fabric workspace named Workspace1.
You need to implement workspace monitoring for Workspace1. The solution must meet the following requirements:
• Ensure that the logs and metrics of the items in Workspace1 are collected automatically.
• Minimize administrative effort.
What should you do?- AIn Workspace1, create a lakehouse and an eventstream.
- BFrom Workspace settings, add an eventhouse.
- CFrom Workspace settings, connect a Log Analytics workspace.
- DFrom Workspace settings, connect an Azure Data Lake Storage Gen2 account.
Show answer
Correct answer: B
WhyThe community answer C is wrong because Log Analytics integration is the older Power BI feature for semantic model logs. Fabric workspace monitoring is turned on from Workspace settings by adding a monitoring eventhouse, which automatically collects logs and metrics for workspace items into a KQL database. ADLS Gen2 or a custom eventstream require more effort.
- A