SaveMyCert
Log in
5 of 5 free questions left today·for 30 a day
DP-700 practice

DP-700 sample questions — 25 answered and explained

25 DP-700 sample questions written to the official Microsoft Certified: Fabric Data Engineer Associate exam guide, grouped by exam domain and weighted like the real exam. Each shows the correct answer, why every other option is wrong, and the lesson that teaches it. None of them repeat the examples on the other DP-700 practice pages.

On this page
25
answers included
Full bank
400
on the practice page
Domains
3
weighted like the exam
Free, no account
5/day
a free account allows 30 a day

Domain 1: Implement and manage an analytics solution

34% of the DP-700 exam, so 9 of the 25 questions on this page.

Question 1Implement and manage an analytics solution

A Fabric tenant admin wants the Finance department to manage which workspaces belong to the Finance domain and to adjust that domain's settings, without granting Finance staff any tenant-wide administrative rights. What should the tenant admin do?

Choose one.

  • a
    Add the Finance team leads to the Fabric administrator role in Microsoft Entra ID.

    That grants full tenant-wide admin rights over all of Fabric, far exceeding the stated scope of a single domain.

  • b
    Add the Finance team leads as domain contributors of the Finance domain.

    Domain contributors can only assign workspaces they already administer to the domain, from the workspace's own settings; they cannot change the domain's settings or manage other workspaces' assignment.

  • c
    Assign Finance team leads as domain admins of the Finance domain. Correct

    Domain admins can manage their own domain — its settings and workspace associations — without receiving any tenant-level privileges.

  • d
    Grant the Finance team leads the Admin role on each Finance workspace.

    Workspace admins control individual workspaces but cannot manage the domain itself or associate other workspaces with it.

The concept

Fabric domains support delegated administration: tenant admins create domains and can appoint domain admins (and domain contributors) so business areas govern themselves.

Why that’s the answer

Appointing domain admins gives Finance exactly the scoped authority requested: manage the Finance domain's settings and which workspaces it contains, while leaving tenant settings untouched. The Fabric administrator role is tenant-wide overreach. Domain contributors are the near-twin, but they can only attach workspaces they administer and cannot change domain settings. Per-workspace Admin roles operate below the domain layer.

How to reason it out
  1. Distinguish the scopes: Fabric admin, domain admin, domain contributor, workspace admin.
  2. Match the requirement: manage the domain's workspaces AND its settings, nothing tenant-wide.
  3. Rule out domain contributors: they assign only their own workspaces and can't change domain settings.
  4. Add the Finance leads as domain admins of the Finance domain.

Exam tip: Domain admin = manage the domain's settings and workspaces; domain contributor = attach your own workspaces only.

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Question 2Implement and manage an analytics solution

A Fabric admin adds the Research security group to the default domain list of the Research domain. Several group members already administer workspaces: some are assigned to the Sales domain and the rest have no domain. What is the result of this configuration?

Choose one.

  • a
    Group members see just the Research items in the OneLake catalog and workspaces.

    Domain assignment never affects visibility or access; item discovery and access still come from workspace roles and item permissions.

  • b
    Each workspace the members administer moves to Research, replacing Sales.

    A default domain does not override an existing assignment; workspaces already in Sales keep that domain.

  • c
    Group members become domain admins of Research and can edit its settings.

    Only a Fabric admin names domain admins. Members of a default-domain list generally become domain contributors for the workspaces assigned this way.

  • d
    Their new and unassigned workspaces join Research, and Sales ones stay in Sales. Correct

    Correct. Unassigned workspaces the members administer are assigned to Research, any workspace they create later joins it, and existing assignments are preserved.

The concept

A default domain applies to specified users or security groups: workspaces they administer that have no domain are assigned to it, workspaces they create afterwards join it, and workspaces already assigned elsewhere keep their domain.

Why that’s the answer

Two behaviours decide it: the default domain picks up new and unassigned workspaces of the specified admins, and it never overrides an existing assignment. So the Sales workspaces stay in Sales. Domains don't restrict what users can see, and a default-domain list grants contributor-style assignment, not domain admin rights.

How to reason it out
  1. Recall what the default domain targets: workspaces whose admin is a specified user or group member.
  2. Apply it to unassigned workspaces and to workspaces created later.
  3. Check how existing assignments are treated: they are preserved.
  4. Reject options that change visibility or grant domain admin rights.

Exam tip: A default domain catches new and unassigned workspaces of the listed admins and leaves existing assignments alone.

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Question 3Implement and manage an analytics solution

A team moving to Fabric has forty Python DAG files that run today on a self-managed Apache Airflow cluster. It wants to keep the DAGs largely unchanged and stop patching scheduler and worker virtual machines. What should the team create in its Fabric workspace?

Choose one.

  • a
    A data pipeline per DAG that rebuilds the Apache Airflow task order as activities.

    Pipelines can orchestrate the same work, but rebuilding forty DAGs as activities is a rewrite, which breaks the 'largely unchanged' requirement.

  • b
    A Spark job definition that runs the Airflow scheduler as its main Python file.

    A Spark job definition runs a Spark application; hosting an Airflow scheduler that way is self-managed infrastructure under another name, not a supported pattern.

  • c
    A notebook per DAG file, chained with %run to follow the Airflow dependencies.

    Chained notebooks would require rewriting each DAG and lose Airflow's scheduling and operators.

  • d
    An Apache Airflow job item that holds the existing DAG files uploaded to it. Correct

    Correct. An Apache Airflow job is managed Airflow in Fabric: upload or Git-sync the Python DAGs and Fabric runs the runtime, with no VMs to patch.

The concept

An Apache Airflow job is Fabric's managed Apache Airflow: a workspace item that runs Python DAGs on a Fabric-managed runtime, so teams keep their DAG code without managing Airflow infrastructure.

Why that’s the answer

The constraints are 'keep the DAGs largely unchanged' and 'no infrastructure to patch'. Only the Apache Airflow job runs existing DAG code as is on a managed runtime. Pipelines and notebooks would mean rewriting each DAG, and running a scheduler from a Spark job definition is still self-managed.

How to reason it out
  1. List the constraints: existing Python DAGs, minimal change, no VMs to maintain.
  2. Recall Fabric's managed Airflow item: the Apache Airflow job.
  3. Reject options that require rewriting the DAGs.
  4. Reject options that keep the team running Airflow infrastructure itself.

Exam tip: Existing Airflow DAGs + no infrastructure = a Fabric Apache Airflow job.

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Question 4Implement and manage an analytics solution

A DAG in a Fabric Apache Airflow job fails to import because it uses a PyPI package that the Airflow runtime does not include. Notebooks in the same workspace already use that package through the workspace default environment. How should the engineer make the package available to the DAG?

Choose one.

  • a
    Attach the workspace's Fabric environment that holds the package to the Airflow job.

    Fabric environment items configure Spark sessions for notebooks and Spark job definitions; Airflow jobs don't use them.

  • b
    Run %pip install for the package in a notebook that the DAG triggers first.

    That installs the package into a Spark session, not into the Airflow runtime where the DAG is parsed, so the import still fails.

  • c
    Set the Airflow job to run its tasks on the workspace's custom Spark pool.

    Airflow jobs run on Airflow runtime pools (starter or custom), not on Spark pools, so the package would still be missing.

  • d
    Add the package to the Apache Airflow requirements in the job's settings. Correct

    Correct. In the Airflow job's Settings > Environment configuration, packages listed under Apache Airflow requirements are installed into the managed Airflow runtime.

The concept

An Apache Airflow job has its own runtime. Extra Python packages are declared under Settings > Environment configuration > Apache Airflow requirements; Spark environments and notebook installs don't reach it.

Why that’s the answer

The DAG is parsed and run by the Airflow runtime, so the package must be installed there, via the job's Apache Airflow requirements. The tempting answer reuses the Fabric environment that serves notebooks, but environments apply to Spark sessions only. Notebook %pip installs and Spark pools are also Spark-side.

How to reason it out
  1. Locate where the failing code runs: the Airflow runtime, not Spark.
  2. Recall how that runtime gets extra packages: the job's Apache Airflow requirements.
  3. Reject Spark-side mechanisms: environments, %pip in notebooks, Spark pools.
  4. Save the requirement so the runtime installs it.

Exam tip: Airflow DAG packages go in the Airflow job's requirements; Fabric environments are for Spark only.

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Question 5Implement and manage an analytics solution

A team must run every notebook and Spark job definition in its Fabric workspace on one specific Fabric Runtime version, because a shared library supports only that version. Other workspaces on the same capacity must stay free to choose their own runtime. Where should the runtime be selected?

Choose one.

  • a
    In the capacity's Spark settings, so the runtime is pinned for its workspaces.

    Runtime choice is not a capacity setting, and pinning it there would also take the choice away from the other workspaces.

  • b
    In a %%configure cell at the top of each notebook and job in the workspace.

    %%configure sets session properties such as cores and memory; it can't change the runtime, and per-notebook cells are easy to miss.

  • c
    On the custom Spark pool that the workspace uses, in the pool's properties.

    Fabric pools define nodes and scaling; the runtime version is set by the environment or the workspace setting, not the pool.

  • d
    In the workspace default environment chosen in the workspace Spark settings. Correct

    Correct. The workspace default environment (or the runtime dropdown when no default environment is set) fixes the runtime for every notebook and Spark job definition that inherits it, without affecting other workspaces.

The concept

The Spark runtime version is selected per workspace in the workspace Spark settings: through the workspace default environment, or directly from the runtime list when no default environment is set. Individual items can override it by attaching another environment.

Why that’s the answer

The scope is one workspace: all its items, but no other workspace. The workspace default environment sets the runtime at exactly that scope. Capacity settings would be too broad and don't hold a runtime; pools in Fabric don't carry a runtime; %%configure can't change it.

How to reason it out
  1. Identify the scope: every item in one workspace, not the capacity.
  2. Recall where Fabric sets the runtime: environments and workspace Spark settings.
  3. Choose the workspace default environment so items inherit it.
  4. Reject capacity-wide, pool-level and per-cell options.

Exam tip: One runtime for a whole workspace = set it in the workspace default environment.

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Question 6Implement and manage an analytics solution

A workspace admin is creating a custom Spark pool in the workspace's Spark compute settings for a nightly transformation workload. Which TWO properties does the admin set on the pool itself? (Select TWO.)

Choose TWO.

  • a
    The Python libraries installed for each session

    Libraries live in an environment, which notebooks and jobs attach; Fabric pools carry no libraries.

  • b
    The Fabric Runtime version used by sessions

    The runtime is chosen in an environment or the workspace Environment settings, not on the pool.

  • c
    The idle timeout for interactive notebook sessions

    Session timeout is a workspace setting on the Jobs tab, applied to all interactive sessions.

  • d
    The node family and the node size used for each node Correct

    Correct. A custom pool defines the node family (memory optimized) and the node size.

  • e
    The autoscale minimum and maximum node counts Correct

    Correct. Autoscale bounds (and dynamic executor allocation) are configured on the custom pool.

The concept

A Fabric custom Spark pool defines compute only: node family, node size, autoscale minimum/maximum nodes and dynamic executor allocation. Libraries and runtime are in environments; session timeout is a workspace Jobs setting.

Why that’s the answer

Node family/size and autoscale bounds are the pool's own properties. The distractors are real settings that sit elsewhere: libraries and runtime in environments, session timeout in the workspace Jobs settings. Candidates coming from Synapse often expect libraries and the Spark version on the pool.

How to reason it out
  1. Recall the custom pool form: name, node family, node size, autoscale, dynamic allocation.
  2. Place each distractor in its real home: environment or Jobs tab.
  3. Select the two compute properties.

Exam tip: Pools = nodes and scaling; environments = libraries and runtime; Jobs tab = session timeout.

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Question 7Implement and manage an analytics solution

An enterprise is assigning its Fabric workspaces to domains that match its business areas. Which TWO outcomes does this domain assignment provide? (Select TWO.)

Choose TWO.

  • a
    Consumers can filter the OneLake catalog to show one business area's items. Correct

    Correct. Items inherit their workspace's domain, and the OneLake catalog can be scoped to a domain.

  • b
    Domain admins can override delegated tenant settings, such as certification. Correct

    Correct. Some tenant settings, including certification and a default sensitivity label, can be delegated and set per domain.

  • c
    Users outside a business area lose access to items in the domain's workspaces.

    Domain assignment doesn't affect visibility or access; workspace roles and item permissions still decide.

  • d
    Workspaces in a domain draw compute from a capacity reserved for that domain.

    Compute comes from each workspace's assigned capacity; domains don't allocate capacity.

  • e
    Domain roles replace workspace roles for granting access to the items.

    Workspace roles and item permissions remain the access model; domain roles only manage the domain.

The concept

Domains provide business-area grouping for discovery (catalog filtering) and federated governance (delegated tenant settings per domain). They do not change access, compute or workspace roles.

Why that’s the answer

Assignment tags items with a domain so consumers can filter by it, and domain admins can override the tenant settings that have been delegated, such as certification. The distractors are the common overreach: domains as an access boundary, a compute boundary or a replacement for workspace roles.

How to reason it out
  1. Recall the two purposes of domains: discovery and federated governance.
  2. Match catalog filtering to discovery, and delegated certification to governance.
  3. Reject claims about access, compute or roles, which domains don't change.

Exam tip: Domains organize and delegate governance; they don't grant or block access.

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Question 8Implement and manage an analytics solution

High concurrency is turned on for notebooks in a Fabric workspace. A user starts a high concurrency session from one notebook, but a second notebook in the workspace cannot attach to it and starts a separate session. Which TWO conditions must hold for both notebooks to share one session? (Select TWO.)

Choose TWO.

  • a
    Both notebooks are scheduled from the same data pipeline.

    Pipeline scheduling isn't required; interactive notebooks share sessions too, and pipelines have their own high concurrency setting.

  • b
    Both notebooks are run by the same user. Correct

    Correct. Session sharing always stays within a single user's boundary.

  • c
    Both have the same default lakehouse and Spark compute settings. Correct

    Correct. Shared sessions need matching default lakehouse and compute configuration (and the same library packages).

  • d
    Both notebooks are stored in the same workspace folder.

    Folders only organize items; the notebooks need to be in the same workspace, not the same folder.

  • e
    Neither notebook contains an inline %pip install cell.

    Inline installs don't prevent sharing; notebooks with different inline installs can still share a session.

The concept

Notebooks share a high concurrency session only when they are run by the same user and have the same default lakehouse, Spark compute configuration and library packages. Inline installs in cells don't block sharing.

Why that’s the answer

The documented conditions are a single user, matching default lakehouse, matching compute configuration and matching library packages. The inline %pip distractor is the subtle one: Fabric explicitly allows different inline installations in a shared session. Folders and pipelines play no part.

How to reason it out
  1. Recall the user boundary of high concurrency sessions.
  2. Recall that the configuration must match: default lakehouse, compute settings, library packages.
  3. Note the exception: inline installs in cells are allowed.
  4. Reject folder and pipeline conditions.

Exam tip: Shared session = same user + same default lakehouse, compute and libraries; inline %pip is fine.

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Question 9Implement and manage an analytics solution

A team runs production DAGs in a Fabric Apache Airflow job and is reviewing the workspace's Apache Airflow runtime settings. Which TWO statements about the available runtime pools are correct? (Select TWO.)

Choose TWO.

  • a
    A custom pool is deprovisioned when no DAG has run for 20 minutes.

    That is starter-pool behaviour; a custom pool stays on until it is paused manually.

  • b
    The starter pool lets the admin choose a Small or Large node size.

    The starter pool runs on a fixed Large compute node; choosing Small or Large is a custom-pool setting.

  • c
    The starter pool shuts down after 20 minutes of inactivity. Correct

    Correct. Starter pools are deprovisioned after 20 minutes without activity and take a few minutes to resume.

  • d
    A custom pool stays on until paused and can add extra nodes. Correct

    Correct. Custom pools are always on until paused and support autoscale and extra nodes (each adds capacity for three more workers).

  • e
    Each extra node on a custom pool adds a standby scheduler.

    Extra nodes add worker capacity so more DAGs run concurrently, not scheduler failover.

The concept

Airflow jobs run on a workspace Airflow runtime pool. The starter pool (default) is a Large node that starts instantly and shuts down after 20 minutes of inactivity. A custom pool is always on until paused, with Small/Large nodes, autoscale and extra nodes for more concurrent workers.

Why that’s the answer

The starter pool's idle shutdown and the custom pool's always-on behaviour with extra nodes are the documented properties. The distractors swap them (idle shutdown on a custom pool, node-size choice on the starter pool) or misstate what extra nodes add.

How to reason it out
  1. Recall the starter pool: default, fixed Large node, idle shutdown after 20 minutes.
  2. Recall the custom pool: always on until paused, configurable size, autoscale, extra nodes.
  3. Check each statement for a swapped property.
  4. Select the two that match.

Exam tip: Airflow starter pool = idles off after 20 minutes (dev); custom pool = always on with extra nodes (production).

Configure Microsoft Fabric Workspace Settings: Spark, Domains, OneLake, Airflow — the lesson that teaches this.

Domain 2: Ingest and transform data

33% of the DP-700 exam, so 8 of the 25 questions on this page.

Question 10Ingest and transform data

A team is designing a sales fact table in a Fabric Lakehouse. Some reports need revenue per order line; others show monthly totals by region. One proposal is to store both order-line rows and monthly summary rows in the same table. Before writing any load logic, what should the team define first?

Choose one.

  • a
    The aggregation level of the most-viewed reports, so the table stores monthly order line totals

    Storing only monthly totals makes order-line revenue impossible to report. Summaries can be derived from detail, never the reverse.

  • b
    The grain, stating that each row in the fact table represents one order line on one order Correct

    Declaring the grain first fixes what one row means. At order-line grain, both detail reports and monthly totals can be computed from the same table.

  • c
    The partition column of the Delta table, so that the monthly reports scan fewer order line files

    Partitioning is a physical tuning choice that can follow later; it does not decide what a fact row represents.

  • d
    The list of measures, so the table can hold order line rows and monthly summary rows side by side

    Mixing grains in one table makes every SUM double-count, because summary rows repeat the order lines they summarise.

The concept

The grain of a fact table is a precise statement of what one row represents. It must be declared before load logic, because every measure and dimension key has to be consistent with it.

Why that’s the answer

Choosing the lowest useful grain, one order line, supports both kinds of report: monthly totals are aggregations of order lines. Storing only summaries loses detail, mixing grains causes double counting, and partitioning is a physical decision that does not define the rows.

How to reason it out
  1. List the most detailed question the reports must answer: revenue per order line.
  2. Declare the grain at that level: one row per order line.
  3. Derive coarser views such as monthly totals by aggregation, not by mixing rows of different grain.

Exam tip: Declare the grain first, at the most detailed level the reports need, and never mix grains in one fact table.

Fabric Loading Patterns: Full, Incremental, and Dimensional Model Loads — the lesson that teaches this.

Question 11Ingest and transform data

A dimensional model in a Fabric Lakehouse combines customers from two CRM systems whose customer IDs overlap, for example both systems have a customer 1001. The DimCustomer table must also keep a separate row for each historical version of a customer. Which reason makes a generated surrogate key necessary for this design?

Choose one.

  • a
    Integer keys compress better than the IDs from both CRMs, which speeds up joins to each version row

    Smaller integer keys can help performance, but that is a benefit, not the reason the design needs them; it does nothing about overlapping IDs or history.

  • b
    A generated key stays unique across both CRMs and gives each historical version its own row Correct

    The overlapping CRM IDs would collide, and history needs several rows for one customer; only a key the model generates itself can identify each row uniquely.

  • c
    Generated keys hide the CRM customer IDs, which meets a data-privacy requirement for historical data

    A surrogate key is not a privacy control; the business key normally stays in the dimension as an attribute. The scenario states no privacy requirement.

  • d
    A Fabric Warehouse accepts primary keys on integer columns, not on the CRM customer ID strings

    A Fabric Warehouse lets you declare a primary key (NOT ENFORCED) on business-key columns. The problem is that the values collide and repeat, not a platform restriction.

The concept

A surrogate key is a key generated by the warehouse or lakehouse that identifies one dimension row. It is required when business keys from several sources collide and when one business key must map to several historical rows.

Why that’s the answer

Two facts in the scenario force the design: customer 1001 exists in both CRMs, and history requires several rows per customer. Neither can be handled with the CRM IDs as the row key. Compression is a side benefit, privacy is not what surrogate keys are for, and Fabric Warehouse does let you declare a non-enforced primary key on a business key.

How to reason it out
  1. Check for collisions: two sources share ID values, so the source ID is not unique.
  2. Check for history: several rows per customer are needed, so the source ID repeats.
  3. Generate a surrogate key per dimension row and keep the source IDs as attributes.

Exam tip: Overlapping sources or SCD Type 2 history = generated surrogate keys; keep business keys as attributes.

Fabric Loading Patterns: Full, Incremental, and Dimensional Model Loads — the lesson that teaches this.

Question 12Ingest and transform data

In a Fabric Warehouse dimension table, a customer's phone number was entered incorrectly and must be corrected. The business confirms that the wrong value has no analytical significance, and reports for every period should show the corrected number. Which slowly changing dimension technique applies?

Choose one.

  • a
    SCD Type 2: expire the current row and insert a new row with the corrected number

    Type 2 keeps the wrong number as history, and facts loaded before the fix would keep reporting it. A data-entry error is not a real change over time.

  • b
    SCD Type 0: keep the originally loaded phone number and ignore the incoming change

    Type 0 treats the attribute as fixed at first load, so the wrong number would never be corrected, which the business requires.

  • c
    SCD Type 3: move the old number to a PreviousPhone column and store the new one

    Type 3 deliberately keeps the prior value in a second column. Here the prior value is an error with no analytical meaning, so keeping it adds nothing.

  • d
    SCD Type 1: overwrite the phone number in the existing row with the corrected number Correct

    Type 1 replaces the value in place on the existing row, so every report for every period shows the corrected number and fact keys stay valid.

The concept

SCD Type 1 handles attribute changes by overwriting the value in the existing dimension row. No history is kept, which makes it the standard treatment for error corrections and for attributes where only the current value matters.

Why that’s the answer

The choice between SCD types is a business question about whether the previous value matters. Here it does not: the old phone number is simply wrong, and every period should show the fix. Overwriting in place corrects past and future reports at once. Type 2 would preserve the error as history, Type 3 keeps it in a previous-value column, and Type 0 never applies the correction at all.

How to reason it out
  1. Ask the business whether the prior value has analytical meaning; for an error correction, it does not.
  2. Rule out Type 0, which never applies changes, and Types 2 and 3, which keep the old value.
  3. Apply an UPDATE to the existing dimension row, setting the corrected phone number.
  4. Leave the row's surrogate key untouched so all existing fact references remain valid.

Exam tip: SCD Type 1 overwrites in place with no history: the right choice for corrections and analytically insignificant changes.

Fabric Loading Patterns: Full, Incremental, and Dimensional Model Loads — the lesson that teaches this.

Question 13Ingest and transform data

A retail company reassigns stores between sales regions several times a year. Analysts must report historical sales under the region each store belonged to on the date of the sale, as well as current-region views. How should the DimStore table in a Fabric Warehouse handle a region change?

Choose one.

  • a
    SCD Type 1, overwriting StoreRegion on the store's existing row whenever the region changes

    Overwriting moves all past sales to the new region, so the date-of-sale reporting requirement fails.

  • b
    SCD Type 3, adding a PreviousRegion column that keeps the store's prior region on the same row

    A prior-value column holds only one earlier region, and a store moves several times a year; it also cannot tell which region applied on a given sale date.

  • c
    A yearly snapshot of DimStore, with sales joined to the snapshot taken for the year of the sale

    A store can change region several times within a year, so one snapshot per year assigns some sales to the wrong region.

  • d
    SCD Type 2, adding a row with its own surrogate key and effective dates for each change Correct

    Each region change adds a new version row with a new surrogate key, so sales loaded before the change keep pointing at the old region while new sales point at the new one.

The concept

SCD Type 2 preserves full history by adding a new dimension row, with its own surrogate key and effective dates, every time a tracked attribute changes.

Why that’s the answer

The requirement is "region at the time of sale" for changes that happen repeatedly. Type 2 records every version, and facts store the surrogate key that was current when they were loaded. Type 1 rewrites history, Type 3 keeps only one prior value, and yearly snapshots are too coarse for several changes a year.

How to reason it out
  1. Spot the trigger phrase: the value on the date of the sale must be reported.
  2. Check how often the attribute changes: several times, so one prior-value column is not enough.
  3. Choose Type 2 and have the fact load pick up the current surrogate key at load time.

Exam tip: "As it was at the time of the event" = SCD Type 2.

Fabric Loading Patterns: Full, Incremental, and Dimensional Model Loads — the lesson that teaches this.

Question 14Ingest and transform data

A nightly Fabric notebook maintains DimCustomer as an SCD Type 2 dimension with a surrogate key, EffectiveStartDate, EffectiveEndDate and IsCurrent. Tonight's extract shows that customer C-1042's Segment changed from 'Standard' to 'Premium'. Which writes apply the change correctly?

Choose one.

  • a
    Update the current row's Segment to 'Premium' and set its EffectiveStartDate to today's load date

    This overwrites the 'Standard' value, so sales made while the customer was Standard now report as Premium; it is a Type 1 change with a misleading date.

  • b
    Close the current row (end date today, IsCurrent false), then insert a 'Premium' row with a new surrogate key Correct

    Expiring the old row keeps exactly one current row per customer, and the new row with its own surrogate key lets past facts keep pointing at the 'Standard' version.

  • c
    Insert a 'Premium' row with a new surrogate key and IsCurrent true, and leave the 'Standard' row unchanged as it is

    Without expiring the old row, the customer has two current rows, so the next fact load can pick up either surrogate key.

  • d
    Close the current row (end date today, IsCurrent false), then insert a 'Premium' row reusing its surrogate key

    Reusing the surrogate key makes the two versions indistinguishable to facts: every fact joins to both rows, so history is no longer tied to a single version.

The concept

An SCD Type 2 change is applied as expire-then-insert: the current version row is closed (end date set, current flag cleared) and a new version row is inserted with its own surrogate key, start date and current flag.

Why that’s the answer

Both halves are needed. Expiring keeps one current row per business key, which the fact load relies on for surrogate-key lookups. Inserting a row with a new surrogate key creates the new version without changing the old one, so facts recorded during the 'Standard' period still join to the 'Standard' row. Overwriting is Type 1, skipping the expire step leaves two current rows, and reusing the key joins every fact to both versions.

How to reason it out
  1. Detect the change by comparing the extract with the customer's current row.
  2. Update the current row: EffectiveEndDate = load date, IsCurrent = false.
  3. Insert the new version with a new surrogate key, EffectiveStartDate = load date and IsCurrent = true.
  4. Leave existing facts pointing at the old surrogate key.

Exam tip: SCD Type 2 = expire the current row, then insert a new row with a new surrogate key.

Fabric Loading Patterns: Full, Incremental, and Dimensional Model Loads — the lesson that teaches this.

Question 15Ingest and transform data

IoT sensor readings arrive continuously through an Eventstream and land in the bronze layer of a Fabric Lakehouse. Each reading is an event that never changes after it occurs, and a monitoring notebook reads bronze readings within a minute of arrival. Which write pattern should the bronze Delta table use?

Choose one.

  • a
    Append each micro-batch of readings without changing any rows already in the table Correct

    Readings are immutable events, so landing them by appending is the cheapest write and keeps every reading exactly as received.

  • b
    MERGE each micro-batch on SensorId so the table keeps one current row per sensor

    This turns the event log into a latest-value table, losing every earlier reading, and adds a costly merge to each micro-batch.

  • c
    Overwrite the table with each micro-batch so it holds only the latest set of readings

    Each micro-batch replaces the previous one, so the bronze table loses all history after a few seconds.

  • d
    Collect the readings in files and load them in one batch after each day's files close

    A daily batch breaks the requirement that readings are available within a minute.

The concept

A streaming loading pattern lands immutable events by appending them. Bronze keeps events as received; there is no truncate-and-reload and no merge at the landing edge.

Why that’s the answer

Events never change after they occur, so there is nothing to update. Appending keeps the full history at the lowest write cost and meets the one-minute latency. A per-sensor MERGE and an overwrite both destroy history, and a daily batch fails the latency requirement.

How to reason it out
  1. Note that the data is immutable events arriving continuously.
  2. Note the latency requirement: about one minute.
  3. Choose append-only micro-batch writes into bronze.

Exam tip: Streaming into bronze = append-only; no merge or overwrite at the landing edge.

Fabric Loading Patterns: Full, Incremental, and Dimensional Model Loads — the lesson that teaches this.

Question 16Ingest and transform data

A Fabric Lakehouse uses a medallion architecture for a clickstream workload. An Eventstream appends raw events to a bronze table as they arrive, and gold tables hold business aggregates. Where should the engineer deduplicate events, validate them, and conform them to standard schemas?

Choose one.

  • a
    In bronze, by validating, deduplicating and conforming each event before it is written

    Bronze keeps events as received. Cleaning at ingestion slows the landing path and loses the raw record that reprocessing depends on.

  • b
    In gold, by deduplicating and validating the events while each business aggregate is built

    Gold builds business aggregates from clean data. Repeating cleansing in every aggregate duplicates logic and lets the aggregates disagree.

  • c
    In silver, by reading the bronze events and writing deduplicated, validated, conformed rows Correct

    Silver refines raw bronze data into cleansed, validated, conformed tables, so every gold aggregate starts from the same clean data.

  • d
    In the Power BI semantic model, by removing duplicate and invalid events at each refresh

    Cleaning in the semantic model leaves the Lakehouse tables wrong for every other consumer, such as notebooks and SQL queries.

The concept

In the medallion architecture, bronze holds raw data as received, silver holds cleansed, deduplicated, validated and conformed data, and gold holds business-level aggregates and dimensional models.

Why that’s the answer

Deduplication, validation and conformance are the silver step. Doing them once there gives every gold table and consumer the same clean base while bronze keeps the raw events for reprocessing. Cleaning in bronze loses the raw record, cleaning in gold or in the semantic model repeats the work per consumer.

How to reason it out
  1. Recall the job of each layer: raw, refined, business.
  2. Match deduplication, validation and conformance to the refined layer.
  3. Keep bronze append-only as the raw record.

Exam tip: Bronze = raw as received; silver = cleaned and conformed; gold = business aggregates.

Fabric Loading Patterns: Full, Incremental, and Dimensional Model Loads — the lesson that teaches this.

Question 17Ingest and transform data

A Fabric Warehouse loads a star schema every night: FactSales plus DimCustomer, DimProduct and DimDate. The fact load resolves each incoming row's business keys to dimension surrogate keys through lookups, and tonight's sales include customers created today. In what order should the pipeline load the tables?

Choose one.

  • a
    Load FactSales first, then the three dimensions, and repeat the fact key lookups when they finish

    Lookups that run before the dimensions are updated fail or pick up old versions for new and changed customers, and repeating them adds a second pass over the facts.

  • b
    Load the four tables in parallel, because each lookup reads committed dimension rows

    Running in parallel means the fact lookups can run before today's customers are committed, so their keys do not resolve.

  • c
    Load and update the three dimension tables first, then load FactSales with the lookups Correct

    Once the dimensions include today's new and changed members, every business key in tonight's sales resolves to the correct current surrogate key.

  • d
    Load the tables in no fixed order, because the Warehouse enforces their foreign keys

    Fabric Warehouse primary and foreign keys are informational (NOT ENFORCED), so nothing stops a fact row from loading with an unresolved key.

The concept

In dimensional loading, fact rows carry surrogate keys obtained by looking up each business key in its dimension, so dimensions must be loaded and current before the facts that reference them.

Why that’s the answer

Tonight's sales include customers that only exist after tonight's dimension load. Only after DimCustomer and the other dimensions are updated do those business keys map to correct surrogate keys. Loading facts first or in parallel causes lookup failures, and Fabric Warehouse does not enforce foreign keys, so integrity is the loading pattern's job. The dimension loads can run in parallel with each other; the fact load waits for all of them.

How to reason it out
  1. Run the dimension loads (inserts, Type 1 updates, Type 2 versions), in parallel with each other if needed.
  2. When every dimension load has completed, start the fact load.
  3. Resolve each business key to the current surrogate key during the fact load.
  4. Handle any key that still does not resolve with the late-arriving-member policy.

Exam tip: Load dimensions before facts: surrogate-key lookups only resolve against dimensions that are already current.

Fabric Loading Patterns: Full, Incremental, and Dimensional Model Loads — the lesson that teaches this.

Domain 3: Monitor and optimize an analytics solution

33% of the DP-700 exam, so 8 of the 25 questions on this page.

Question 18Monitor and optimize an analytics solution

A pipeline copies data from an external database into a Lakehouse table. Last night's run succeeded, but the table has fewer new rows than the source query returned. The engineer wants to compare rows read with rows written for that copy, and see its throughput and how the copy duration was split between stages. Where is this information found?

Choose one.

  • a
    The Monitoring hub row for the run, using its duration and status columns

    The Monitoring hub row summarises the whole pipeline run. It does not report rows read and written or per-stage timings for one activity.

  • b
    The table's Delta log history, through DESCRIBE HISTORY on the Lakehouse table

    Delta history records the write operation and its output row count. It cannot show how many rows were read from the source, the throughput or the copy stages.

  • c
    The Capacity Metrics app's timepoint detail for the pipeline's operations

    The Capacity Metrics app reports compute consumed by the pipeline. It has no row counts or copy-stage breakdown.

  • d
    The Copy activity details in the activity list of the pipeline run Correct

    Each activity in a pipeline run exposes its input, its output and, for Copy, a details view with rows read, rows written, throughput and a duration breakdown by stage.

The concept

Pipeline run details list every activity run. A Copy activity's output and details view report data read and written (rows and bytes), throughput, and the duration of each stage, such as queuing and transfer.

Why that’s the answer

The engineer needs read-versus-written counts and stage timings for one Copy activity, and those live in that activity's run details. Delta history is the closest near-twin: it shows rows written by the commit but nothing about the source side. The Monitoring hub and the Capacity Metrics app work at run and capacity level.

How to reason it out
  1. Open the pipeline run from the Monitoring hub or the pipeline's run history.
  2. Find the Copy activity in the activity list.
  3. Open its details or output to compare rows read with rows written and check throughput.
  4. Use the duration breakdown to see whether the time went to queuing, reading or writing.

Exam tip: For Copy activity read/write counts and throughput, open the Copy activity's details in the pipeline run.

Monitor Fabric Items: Monitoring Hub, Refresh History, and Activator Alerts — the lesson that teaches this.

Question 19Monitor and optimize an analytics solution

A semantic model refreshes on a schedule four times a day. Yesterday its refresh history shows six entries: four with type Scheduled, one with type On demand and one with type Via API. The data steward asks why the model refreshed more often than its schedule. What do the extra entries indicate?

Choose one.

  • a
    A user started a refresh manually, and a client such as a pipeline started one through the API Correct

    The type column records how each refresh was started. On demand is a manual Refresh now, and Via API is a refresh requested programmatically, for example by an orchestrating pipeline or script.

  • b
    Two scheduled refreshes failed, and the service logged its automatic retries as new entries

    The service does retry failed refreshes automatically, but the attempts appear inside the details of the same refresh entry, not as extra rows with another type.

  • c
    The query cache refresh after a data refresh is logged as a separate entry

    Each refresh entry is split into Data and Query cache operations within the same entry. The query cache step does not create its own row.

  • d
    Incremental refresh logs each refreshed partition as its own entry

    Incremental refresh processes several partitions inside one refresh operation, and the history still shows one entry per refresh.

The concept

Semantic model refresh history shows one entry per refresh, with its type (how it was started, such as Scheduled, On demand or an API call), start time, duration, status and details. Automatic retry attempts and the Data and Query cache operations appear inside an entry's details.

Why that’s the answer

The extra rows carry the types On demand and Via API, and the type tells you who or what started the refresh: a person using Refresh now and a programmatic caller. The tempting alternative is retries, but the service records retry attempts inside the details of one entry, not as new rows. The same applies to the Query cache operation. Partitions are processed within one refresh.

How to reason it out
  1. Read the type column. It records how each refresh was started.
  2. Map On demand to a manual refresh and Via API to a programmatic caller, such as a pipeline, script or flow.
  3. Remember that retries and query cache operations appear inside an entry, not as extra rows.
  4. Ask who owns the manual and API refreshes before changing the schedule.

Exam tip: The refresh history type column records how each refresh started. Retries and cache steps sit inside an entry, so extra rows mean extra triggers.

Monitor Fabric Items: Monitoring Hub, Refresh History, and Activator Alerts — the lesson that teaches this.

Question 20Monitor and optimize an analytics solution

A pipeline runs a notebook every night through a Notebook activity. This morning the activity shows Failed. Since then a colleague has edited the notebook. The engineer needs to see the code exactly as it ran last night, with each cell's output and the error under the failing cell. What should the engineer open?

Choose one.

  • a
    The current notebook in edit mode, after rerunning its cells from the top

    The notebook has been edited since the failure, so rerunning it shows the current code's behaviour, not what ran last night.

  • b
    The notebook's version history, restored to the version from last night

    Version history recovers earlier code, but it has no cell outputs or errors from the scheduled run.

  • c
    The run's notebook snapshot, opened from the Notebook activity's run details Correct

    A pipeline-run notebook keeps a snapshot of the code and cell outputs as executed, including the exception under the failing cell. It opens from the activity output or from the run in the Monitoring hub.

  • d
    The Notebook activity's settings and parameters in the pipeline editor

    The activity settings show what was passed to the notebook, not the code that ran or its outputs.

The concept

When a notebook runs as a job (from a pipeline or a schedule), Fabric keeps a snapshot of the notebook as executed, with its cell outputs and errors. You open it from the run details.

Why that’s the answer

Two facts rule out the shortcuts. The notebook has changed since the run, so the current code or a rerun is not evidence. Version history restores code but not outputs. Only the run snapshot preserves both the code as executed and its outputs, including the failing cell's exception.

How to reason it out
  1. Note that the notebook changed after the failed run.
  2. Find the failed run from the pipeline activity output or the Monitoring hub.
  3. Open the notebook snapshot for that run.
  4. Read the error under the failing cell before deciding on a fix.

Exam tip: To see a failed scheduled notebook as it actually ran, open the run snapshot, not the current notebook.

Monitor Fabric Items: Monitoring Hub, Refresh History, and Activator Alerts — the lesson that teaches this.

Question 21Monitor and optimize an analytics solution

An engineer plans to add a new Lakehouse destination to an existing eventstream. Before doing so, the engineer wants to confirm that the eventstream is still receiving events from its source and to check how many events per minute have arrived over the last hour. Where can the engineer see this?

Choose one.

  • a
    The Monitoring hub's run list, filtered to the eventstream item

    The Monitoring hub tracks jobs that start and finish. A continuously running eventstream is not a run there with per-minute event counts.

  • b
    The destination Eventhouse, using the .show ingestion failures command

    This command lists ingestion errors in the Eventhouse. It cannot show the arrival rate at the eventstream source, and the new destination does not exist yet.

  • c
    The eventstream's data preview and data insights on its source node Correct

    Inside the eventstream, data preview shows the latest events and data insights charts incoming and outgoing event metrics for each node over time.

  • d
    The Capacity Metrics app's item details for the eventstream's operations

    The Capacity Metrics app shows compute consumed by the eventstream. It does not count incoming events per minute or show their content.

The concept

Eventstreams run continuously, so you monitor them in the eventstream editor: data preview for the latest events, data insights for incoming and outgoing event metrics per node, and runtime logs for errors.

Why that’s the answer

The question is about live throughput at the source. That is answered on the eventstream's own nodes through data preview and data insights. The Monitoring hub covers jobs, not continuous streams. The Eventhouse command reports downstream ingestion errors. The Capacity Metrics app measures compute, not event counts.

How to reason it out
  1. Recognise that an eventstream runs continuously rather than as a job.
  2. Open the eventstream and select its source node.
  3. Use data preview to confirm events are arriving.
  4. Use data insights to read incoming event counts over the last hour.

Exam tip: Monitor eventstreams inside the eventstream: data preview, data insights and runtime logs. They do not appear as runs in the Monitoring hub.

Monitor Fabric Items: Monitoring Hub, Refresh History, and Activator Alerts — the lesson that teaches this.

Question 22Monitor and optimize an analytics solution

A Dataflow Gen2 with staging enabled loads a large table into an existing Warehouse table. In last night's run details, the activity that evaluated the query and wrote the result to staging shows Succeeded, but the second activity listed for the same query shows Failed. Which root cause fits this pattern?

Choose one.

  • a
    An expired credential on the source connection that the query reads

    The source is read while the query is evaluated, and that activity succeeded, so the source credential worked.

  • b
    A data type mismatch between the query output and the Warehouse column Correct

    The second activity loads the staged result into the output destination. A column whose type the existing Warehouse table cannot accept fails there, after evaluation and staging have already succeeded.

  • c
    A Power Query step that refers to a column renamed in the source table

    A step that references a missing column fails during evaluation, and the evaluation activity succeeded.

  • d
    A lack of write permission on the staging Lakehouse that the dataflow uses

    Staging is written by the first activity, which succeeded, so the staging Lakehouse accepted the data.

The concept

A Dataflow Gen2 refresh runs in phases, and its run details list them as activities: queries are evaluated (optionally into staging), then results are loaded to the output destination. The activity that failed tells you which side to investigate.

Why that’s the answer

Use the phase boundary. The first activity covers the source connection, its credentials, the Power Query steps and the write to staging, and it succeeded. The second activity is the load from staging into the output destination, so only a destination-side cause fits: here, a column type that the existing Warehouse table cannot accept. The other options are all exercised by the activity that succeeded.

How to reason it out
  1. Open the failed refresh's details and read the activities listed for the query.
  2. Recall the phases: evaluation (with the write to staging) first, then the load to the output destination.
  3. Rule out every cause that the successful evaluation and staging activity already exercised.
  4. Read the failed load activity's error and check the destination table's schema, connection and permissions.

Exam tip: In Dataflow Gen2 run details, the failing activity locates the problem. If staging succeeded and the load failed, look at the destination.

Monitor Fabric Items: Monitoring Hub, Refresh History, and Activator Alerts — the lesson that teaches this.

Question 23Monitor and optimize an analytics solution

In the Capacity Metrics app, the timepoint detail for an F32 capacity lists a nightly Spark job whose total CU seconds far exceed what the F32 provides during the job's 10-minute run, yet no requests were delayed or rejected that night. Later in the week, after days of heavy load, interactive report queries were delayed. Which behaviour explains why the nightly job caused no throttling?

Choose one.

  • a
    Background usage is smoothed across the next 24 hours, so a short burst adds only a small share to each timepoint Correct

    Spark jobs are background operations. Their compute is smoothed over 24 hours of future timepoints, so throttling responds to sustained smoothed usage, not to an instantaneous peak.

  • b
    Background usage is smoothed across the next five minutes, so the burst had cleared before throttling was evaluated

    Five minutes is the minimum smoothing window for interactive operations. Background operations such as Spark are smoothed over 24 hours.

  • c
    Overage protection lets a capacity use the next 24 hours of capacity before any request is delayed

    Overage protection covers only 10 minutes of future capacity. Interactive delays begin beyond 10 minutes, and background rejection begins beyond 24 hours.

  • d
    Throttling compares each operation's peak usage with the SKU per timepoint, and Spark peaks are exempt from it

    Throttling is evaluated on smoothed usage, not raw per-operation peaks, and Spark operations are not exempt.

The concept

Fabric lets operations burst above the SKU and then smooths their compute usage over future 30-second timepoints: interactive operations over a minimum of 5 minutes (up to 64), and background operations over 24 hours. Throttling stages are based on how much future capacity smoothed usage has consumed: overage protection up to 10 minutes, then interactive delay, interactive rejection beyond 60 minutes, and background rejection beyond 24 hours.

Why that’s the answer

Spark work is background, so its compute is smoothed over the next 24 hours and a short burst barely moves any single timepoint. Throttling is driven by accumulated smoothed usage against future capacity, which is why days of sustained heavy load eventually delayed interactive queries. The tempting distractors each misstate one number: the five-minute window belongs to interactive operations, and overage protection is 10 minutes, not 24 hours.

How to reason it out
  1. Classify the operation. A Spark job is a background operation.
  2. Recall the smoothing window for background operations: 24 hours.
  3. Recall that throttling stages follow smoothed usage over future capacity (10 minutes, 60 minutes, 24 hours).
  4. Conclude that sustained load, not a single spike, produces interactive delays.

Exam tip: Spikes rarely throttle on their own. Smoothing (24 hours for background work) means sustained load is what fills the throttling windows.

Monitor Fabric Items: Monitoring Hub, Refresh History, and Activator Alerts — the lesson that teaches this.

Question 24Monitor and optimize an analytics solution

A retailer streams point-of-sale events through an eventstream into an Activator. An Activator property holds the count of failed-payment events per minute. The operations lead wants an alert when that count is above 50 continuously for five minutes, and no alert for a single high minute. How should the rule be configured?

Choose one.

  • a
    Condition Is greater than 50, firing on each minute that meets the condition

    This is the occurrence setting Every time the condition is met. It fires on each minute in which the count exceeds 50, including isolated spikes, which is exactly the noise the lead wants to avoid.

  • b
    Condition Increases above 50, firing on each minute that meets the condition

    Increases above, with occurrence Every time the condition is met, fires when the value crosses 50 from below. A single-minute spike that crosses the line still fires.

  • c
    Condition Is greater than 50, firing when it has been true for 5 minutes Correct

    This occurrence setting makes the rule fire only if the condition stays continuously true for the whole duration, so a single high minute does not alert.

  • d
    Condition Is greater than 50, firing when it has been true for 5 times

    A count of times is not a continuous duration. Five separate high minutes spread over an hour would still fire the rule.

The concept

Activator rule definitions combine a condition (state conditions such as Is greater than, or change conditions such as Increases above) with an occurrence setting: Every time the condition is met, When it has been true for n times, or When it has been true for a duration.

Why that’s the answer

The requirement is "continuously for five minutes". Only the duration-based occurrence, When it has been true for 5 minutes, demands an unbroken stretch. A crossing condition (Increases above) still fires on a one-minute blip. A count of five occurrences can be met by scattered spikes. Every time fires on each high minute.

How to reason it out
  1. Separate what to detect (count above 50) from how persistent it must be (5 continuous minutes).
  2. Choose the state condition Is greater than 50.
  3. Set occurrence to When it has been true for 5 minutes.
  4. Test the rule with Send me a test alert before starting it.

Exam tip: To suppress noise from brief spikes in Activator, use a "When it has been true for" duration, not a count of times or a crossing condition.

Monitor Fabric Items: Monitoring Hub, Refresh History, and Activator Alerts — the lesson that teaches this.

Question 25Monitor and optimize an analytics solution

A Fabric administrator opens the Monitoring hub each morning to triage the overnight workloads in several workspaces. Which TWO tasks can the administrator perform from the Monitoring hub? (Select TWO.)

Choose TWO.

  • a
    Review the status and duration of pipeline, dataflow and notebook runs across workspaces Correct

    The Monitoring hub lists runs of pipelines, Dataflow Gen2, notebooks, Spark job definitions and semantic model refreshes across the workspaces you can access, with status, start time and duration.

  • b
    Review the capacity's compute-unit smoothing and the throttling it applied overnight

    Smoothing and throttling analysis is in the Microsoft Fabric Capacity Metrics app, not in the Monitoring hub.

  • c
    Edit a failed pipeline's activities directly from the hub's list of runs

    Runs open read-only details. Changing activities is done in the pipeline editor.

  • d
    Review the per-node event throughput of the workspaces' running eventstreams

    Eventstream throughput is monitored in the eventstream editor through data insights. The hub tracks jobs that start and finish.

  • e
    Open a run's item-specific details, such as a pipeline run's activity list Correct

    Selecting a run drills into that item's own run details, such as a pipeline's activity runs or a Spark application's details.

The concept

The Monitoring hub is Fabric's cross-workspace triage surface for job runs: what ran, when, and with what status, with drill-through into each item's run details. Capacity analysis, editing and continuous-item metrics live elsewhere.

Why that’s the answer

The hub does two things: list runs across item types and workspaces, and drill into a run's item-specific details. Throttling analysis belongs to the Capacity Metrics app. Editing belongs to the item's editor. Eventstream throughput belongs to the eventstream's data insights, because a continuous stream is not a job run.

How to reason it out
  1. Recall what the hub lists: runs of jobs across workspaces you can access.
  2. Recall what it links to: each run's item-specific details.
  3. Map capacity, editing and stream metrics to their own surfaces.

Exam tip: The Monitoring hub lists job runs across workspaces and drills into each run's details. It does not analyse capacity, edit items or monitor streams.

Monitor Fabric Items: Monitoring Hub, Refresh History, and Activator Alerts — the lesson that teaches this.

Keep going with DP-700

DP-700 practice by domain

DP-700 sample questions: your questions

No. Real exam questions are confidential. These are original questions written to the skills in the official DP-700 exam guide, so they test the same knowledge in the same style without being copies of the exam.

Source

The domains and weights on this page come from the official DP-700 exam guide.