Skip to content

DP-600 · Domain 2: Prepare and serve data · 42% of the exam

Task 2.2: Copy data

Choosing a method to copy data from a Fabric source, copying with a pipeline, dataflow or notebook, adding stored procedures, notebooks and dataflows to a pipeline, and scheduling pipelines, dataflows and notebooks.

Study it

  • Choosing how to copy data from a Fabric source

    Lesson coming

  • Pipeline activities and schedules for pipelines, dataflows and notebooks

    Lesson coming

Sample questions

Try each one before opening the answer. Every option is explained, with the Microsoft documentation page that proves it.

Question 1 · choose 1

A Dataflow Gen2 query reads orders from an API and must load them into an existing table in a Fabric warehouse. Publishing fails on the OrderedAt column, whose type in the query is Date/Time/Timezone. Every other column loads. What should you change?

  1. ASwitch the destination to automatic settings so that the mapping adjusts itself
  2. BChange the schema option from fixed schema to dynamic schema
  3. CTurn on staging for the query so the warehouse compute converts the type
  4. DConvert OrderedAt to Date/Time in the query before the destination
Show the answer and why
  • ASwitch the destination to automatic settings so that the mapping adjusts itself

    Incorrect

    Automatic settings aren't available for Warehouse destinations, and they wouldn't make an unsupported type loadable.

  • BChange the schema option from fixed schema to dynamic schema

    Incorrect

    With a warehouse destination only fixed schema is supported, and the schema option doesn't change which types load.

  • CTurn on staging for the query so the warehouse compute converts the type

    Incorrect

    Staging changes where transformations run; the destination still can't store a DateTimeZone column.

  • DConvert OrderedAt to Date/Time in the query before the destination

    Correct

    The Fabric Warehouse destination doesn't accept the DateTimeZone type, so the column must reach it as a Date/Time value.

Dataflow Gen2 destinations support different data types. For a Fabric Warehouse destination, DateTimeZone, Duration, Currency, Binary and some others aren't supported, so such columns must be converted in the query, for example DateTimeZone to DateTime. Automatic settings are supported for Lakehouse, Azure SQL Database and Snowflake destinations, and when loading into a warehouse only fixed schema is supported.

Question 2 · choose 1

Nadia created a schedule for the LoadGold notebook a year ago. Last month Omar edited the schedule to run an hour earlier. Omar has now left the company and his account was disabled, and since then every scheduled run fails on permissions, although Nadia's account still has all the access the notebook needs. Runs must continue on the same schedule. What should you do?

  1. AHave Nadia update the notebook's schedule
  2. BHave Nadia run the notebook once on demand
  3. CGive Nadia the Admin role in the workspace
  4. DAttach the notebook to a different environment
Show the answer and why
  • AHave Nadia update the notebook's schedule

    Correct

    A scheduled notebook runs under the identity of whoever created or last updated the schedule, so Nadia's update moves runs to her account.

  • BHave Nadia run the notebook once on demand

    Incorrect

    A manual run uses her identity for that run only; scheduled runs keep the identity of whoever last updated the schedule.

  • CGive Nadia the Admin role in the workspace

    Incorrect

    Her permissions are already enough; runs keep using Omar's identity until the schedule is updated.

  • DAttach the notebook to a different environment

    Incorrect

    The environment controls libraries and Spark settings, not the identity of scheduled runs.

A notebook run that the scheduler triggers runs under the identity of the user who created or last updated the schedule. Before creating or updating a schedule, make sure that user has the permissions every operation in the notebook needs. When that identity is removed, a user with the right access must update the schedule so that later runs use their identity.

Question 3 · choose 1

Fast copy is allowed in a Dataflow Gen2 that copies a 3-million-row Azure SQL table into a lakehouse without transformations. The refresh history shows that the standard engine was used, not CopyActivity. You want this query to always use fast copy. What should you do?

  1. AAdd a filter step so the query folds to the source
  2. BTurn off staging for the query
  3. CTurn on Require fast copy for the query
  4. DChange the destination to a Fabric warehouse
Show the answer and why
  • AAdd a filter step so the query folds to the source

    Incorrect

    The query already has no transformations; the engine choice comes from the row-count threshold, not folding.

  • BTurn off staging for the query

    Incorrect

    Staging doesn't decide whether fast copy is used for a source this small.

  • CTurn on Require fast copy for the query

    Correct

    Require fast copy bypasses the size threshold, and the refresh stops if fast copy can't be used.

  • DChange the destination to a Fabric warehouse

    Incorrect

    Fast copy currently loads directly only to a lakehouse; a warehouse destination would need staging and a second query.

With fast copy allowed, a dataflow switches to the pipeline Copy activity backend automatically when the data passes a threshold: 100 MB of CSV or Parquet files in ADLS Gen2 or Blob storage, or 5 million rows in a database source. You can bypass the threshold by selecting Require fast copy, which also stops the refresh if fast copy can't be used. Fast copy currently loads directly only to a Lakehouse destination.

Question 4 · choose 1

A Dataflow Gen2 uses incremental refresh with a monthly bucket size on InvoiceDate to load invoices into a lakehouse. Finance wants each month's rows to be extracted only after the month has ended, so that no partly complete month is ever loaded. Which setting should you turn on?

  1. AOnly extract new data when the maximum value in this column changes
  2. BRequire incremental refresh query to fully fold
  3. COnly extract data for concluded periods
  4. DExtract data from the past: 1 month
Show the answer and why
  • AOnly extract new data when the maximum value in this column changes

    Incorrect

    That required setting decides when a bucket is refreshed; it still loads the current, incomplete month.

  • BRequire incremental refresh query to fully fold

    Incorrect

    It validates that the query folds to the source; it doesn't hold back the current month.

  • COnly extract data for concluded periods

    Correct

    With a monthly bucket size, this setting extracts only complete months that contain no future data.

  • DExtract data from the past: 1 month

    Incorrect

    That setting controls how far back the initial load reaches, not whether an incomplete month is loaded.

Dataflow Gen2 incremental refresh divides data into buckets on a Date, DateTime or DateTimeZone column and refreshes a bucket when the maximum value of the change-detection column changes. The optional setting Only extract data for concluded periods limits extraction to periods that are complete, for example whole months with a monthly bucket size. Extract data from the past sets the range of the initial load.

Question 5 · choose 1

Each night, a vendor drops CSV files into Files/orders of the RetailLH lakehouse in the Retail workspace. The rows must be loaded into dbo.Orders in the FinanceDW warehouse of the Finance workspace. The finance team writes T-SQL and wants neither a pipeline nor an external staging storage account. The engineer who runs the load has the Contributor role in both workspaces. Which statement fits?

  1. AINSERT INTO dbo.Orders SELECT * FROM RetailLH.dbo.orders
  2. BCOPY INTO dbo.Orders FROM 'https://onelake.dfs.fabric.microsoft.com/<workspaceId>/<itemId>/Files/orders/*.csv'
  3. CCOPY INTO dbo.Orders FROM 'https://onelake.dfs.fabric.microsoft.com/Retail/RetailLH.Lakehouse/Files/orders/*.csv'
  4. DCOPY INTO dbo.Orders from the ID-based OneLake path, with a shared access signature in the CREDENTIAL clause
Show the answer and why
  • AINSERT INTO dbo.Orders SELECT * FROM RetailLH.dbo.orders

    Incorrect

    Three-part names reach tables of items in the same workspace, not CSV files in the Files section of a lakehouse in another workspace.

  • BCOPY INTO dbo.Orders FROM 'https://onelake.dfs.fabric.microsoft.com/<workspaceId>/<itemId>/Files/orders/*.csv'

    Correct

    COPY INTO can load files from OneLake directly, with a path that uses the workspace and item IDs and the user's Microsoft Entra identity.

  • CCOPY INTO dbo.Orders FROM 'https://onelake.dfs.fabric.microsoft.com/Retail/RetailLH.Lakehouse/Files/orders/*.csv'

    Incorrect

    With OneLake as the source, paths must use workspace and item IDs; friendly workspace and item names aren't supported.

  • DCOPY INTO dbo.Orders from the ID-based OneLake path, with a shared access signature in the CREDENTIAL clause

    Incorrect

    For OneLake sources, only Microsoft Entra ID and the workspace identity are supported; SAS tokens, shared keys and connection strings aren't.

The COPY statement in a Fabric warehouse loads CSV, JSONL and Parquet files from Azure storage accounts and from OneLake, so files in a lakehouse's Files section can be ingested without an external staging account. With OneLake as the source, the path must use workspace and item IDs, the credential must be Microsoft Entra ID or the workspace identity, and a user who runs it with their own identity needs at least the Contributor role on both the source and the target workspace. T-SQL that reads tables with three-part names works only within the same workspace.

Question 6 · choose 1

At 10:00 on a weekday, a developer publishes a change to a Dataflow Gen2 whose only schedule runs at 02:00. Minutes later, the operations team sees the dataflow's queries running against the source ERP database during business hours. What started this?

  1. APublishing moves the next scheduled refresh to the publish time
  2. BThe editor keeps refreshing the data preview after the dataflow is published
  3. CThe 02:00 refresh failed, and failed refreshes retry at the next publish
  4. DA successful publish starts an on-demand refresh of the dataflow
Show the answer and why
  • APublishing moves the next scheduled refresh to the publish time

    Incorrect

    The schedule stays as it is; the extra refresh is the on-demand one that publishing starts.

  • BThe editor keeps refreshing the data preview after the dataflow is published

    Incorrect

    Data previews run while you author; the queries seen after publishing come from the refresh it starts.

  • CThe 02:00 refresh failed, and failed refreshes retry at the next publish

    Incorrect

    Nothing ties retries to publishing; a successful publish itself starts the refresh.

  • DA successful publish starts an on-demand refresh of the dataflow

    Correct

    When a dataflow publish completes successfully, an on-demand refresh starts.

A dataflow refresh can be triggered on demand or by a refresh schedule of up to 48 slots a day. Besides selecting Refresh or running a pipeline with a Dataflow activity, a successful publish of a dataflow also starts an on-demand refresh. Plan publishes of dataflows that read busy sources with that in mind.

Question 7 · choose 1

You're adding a daily schedule to a pipeline that must keep running for the foreseeable future. The schedule dialog asks for an end date. What should you do?

  1. ASet the end date far in the future, such as 2099
  2. BLeave the end date empty to create an open-ended schedule
  3. CSet the end date to today and turn on auto-renew
  4. DUse an event-based trigger instead, which has no end date
Show the answer and why
  • ASet the end date far in the future, such as 2099

    Correct

    Pipeline schedules need both a start and an end date, so a distant end date keeps it running long term.

  • BLeave the end date empty to create an open-ended schedule

    Incorrect

    There's no option for an open-ended schedule.

  • CSet the end date to today and turn on auto-renew

    Incorrect

    Schedules have no auto-renew; they end on their end date.

  • DUse an event-based trigger instead, which has no end date

    Incorrect

    An event trigger starts runs on events, not daily at a set time.

When you schedule a pipeline, you specify a schedule type, frequency, start and end dates and times, and a time zone. You must set both a start and an end date because there's no option for an open-ended schedule; to keep a pipeline running long term, set the end date far in the future, for example 01/01/2099. You can edit or stop the schedule at any time.

Question 8 · choose 1

A Script activity in a pipeline must run CREATE TABLE and INSERT statements against a warehouse before a load. These statements don't return data. Which script type should you choose?

  1. AQuery
  2. BNonQuery
  3. CStored procedure
  4. DLookup
Show the answer and why
  • AQuery

    Incorrect

    Query is for statements that return a result set, such as SELECT.

  • BNonQuery

    Correct

    NonQuery runs statements that don't return data, such as INSERT, UPDATE, DELETE, CREATE and DROP.

  • CStored procedure

    Incorrect

    That's a separate activity, not a Script activity script type.

  • DLookup

    Incorrect

    Lookup is another activity that reads data; it isn't a Script activity setting.

The Script activity runs query and nonquery SQL scripts against data stores that support DML and DDL, such as Fabric Data Warehouse. In its settings you choose Query to get a data result from SELECT statements or NonQuery for statements that don't return data, such as INSERT, UPDATE, DELETE, CREATE and DROP.

Question 9 · choose 1

A user with the Contributor role in a workspace tries to refresh a Dataflow Gen2 there on demand, and the refresh isn't allowed. She has access to all the dataflow's connections. What does she need?

  1. AOwnership of every connection the dataflow uses
  2. BA Power BI Pro license
  3. CEdit permission shared on the dataflow item
  4. DThe Member role or higher in the workspace
Show the answer and why
  • AOwnership of every connection the dataflow uses

    Incorrect

    Access to the connections is required, not ownership, and she already has access.

  • BA Power BI Pro license

    Incorrect

    The documented requirement is the workspace role and connection access, not a Pro license.

  • CEdit permission shared on the dataflow item

    Incorrect

    Item-level edit permission doesn't replace the Member role that refreshing requires.

  • DThe Member role or higher in the workspace

    Correct

    The user who triggers a dataflow refresh must have Member or higher access to the workspace and access to its connections.

To refresh a Dataflow Gen2, the user who triggers the refresh must have Member (or higher) access to the workspace and access to all connections the dataflow uses. The Contributor role doesn't meet that prerequisite, and neither a license nor an item-level permission replaces it.

Question 10 · choose 1

You add a Stored procedure activity to a pipeline and select a warehouse procedure that has four parameters. What's the quickest way to add the parameter definitions to the activity?

  1. AAdd each one with + New, typing its name, type and nullability
  2. BDefine them as pipeline variables with the same names
  3. CSelect Import to pull them from the procedure
  4. DWrap the call in a Script activity instead
Show the answer and why
  • AAdd each one with + New, typing its name, type and nullability

    Incorrect

    That works, but it's the manual route; Import is quicker.

  • BDefine them as pipeline variables with the same names

    Incorrect

    Pipeline variables don't define the activity's procedure parameters.

  • CSelect Import to pull them from the procedure

    Correct

    Import brings in the parameters with their names and types, ready for values.

  • DWrap the call in a Script activity instead

    Incorrect

    A Script activity can run the call, but it doesn't import the procedure's parameter definitions.

In the Stored procedure activity's settings, after choosing a connection and a stored procedure, you can select Import to import the parameters from the stored procedure as it's stored in the data source, or add them manually with + New by providing name, data type and nullability. Each parameter then takes a value or a dynamic expression.

Practice domain 2 →Practice all domains →