Azure Data Engineer, Databricks & Azure Data Factory course banner
TRENDING

Azure Data Engineer, Databricks & Azure Data Factory

DURATION2 MonthsBeginner to Advanced

Cloud Data Engineering • Live online + placement support

Azure Data Factory pipelines and cloud data engineering dashboards

Azure Data Factory Interview Questions & Answers

49 questions our trainers actually hear in Azure Data Engineer interviews — for freshers and for engineers with two to five years of experience. Every answer is written the way you should say it out loud.

Updated August 2026 15 min read Azure Data Engineering

Azure Data Factory is the orchestration layer of almost every Azure data platform, so it dominates the first round of an Azure Data Engineer interview. Interviewers are not looking for memorised definitions — they want to hear that you have built pipelines, tuned a slow copy, handled a failure at night and deployed through Git.

Work through the sections below in order. Read the answer, then close the page and say it in your own words. Where you see a trainer tip, that is the line that usually earns the follow-up question.

ADF basics — pipelines, activities and integration runtimes

Almost every interview opens here. Answer in one crisp sentence, then add one practical detail from your project.

What is Azure Data Factory and when would you use it?

Azure Data Factory is a fully managed, serverless data integration service used to build ETL and ELT pipelines. You use it to move data from on-premises and cloud sources into a lake or warehouse, orchestrate transformations in Databricks, Synapse or SQL, and schedule and monitor those workflows without managing servers.

Trainer tip: Say 'orchestration first, transformation second' — ADF's core strength is orchestration; heavy transformation usually happens in Databricks or SQL.

Explain the main ADF components: pipeline, activity, dataset and linked service.

A linked service is the connection string to a source or sink. A dataset is a named view of the data inside that connection (a table, folder or file pattern). An activity is a single unit of work such as Copy, Lookup or Notebook. A pipeline is a logical grouping of activities with dependencies and control flow.

What are the types of integration runtime in ADF?

Azure IR for cloud-to-cloud movement and data flow execution; Self-hosted IR for on-premises or private-network sources, installed on a VM inside your network; and Azure-SSIS IR for lifting and shifting existing SSIS packages into Azure.

Trainer tip: Interviewers often follow up with 'how do you make self-hosted IR highly available?' — answer: register up to four nodes on the same self-hosted IR.

What are the categories of activities in ADF?

Data movement (Copy activity), data transformation (Mapping Data Flow, Databricks Notebook, Stored Procedure, HDInsight, Synapse) and control flow (ForEach, If Condition, Switch, Until, Wait, Lookup, Get Metadata, Execute Pipeline, Web, Set/Append Variable, Filter, Validation).

What is the difference between a dataset and a linked service?

A linked service defines where and how to connect (server, auth, credentials). A dataset defines what to read or write within that connection. One linked service is typically reused by many datasets.

What is the difference between ADF v1 and v2?

V2 added control flow (loops, branching, conditions), parameterization, triggers beyond simple scheduling, Mapping Data Flows for code-free transformation, SSIS package execution and integrated CI/CD with Git. All new work uses v2.

Can ADF pipelines be version controlled?

Yes. ADF integrates with Azure DevOps Git or GitHub. You develop in a feature branch, publish from the collaboration branch which generates ARM templates in the adf_publish branch, and deploy those templates to higher environments with parameter overrides.

How is ADF billed?

By pipeline activity runs, data movement in Data Integration Units per hour, data flow cluster execution time by core-hours, plus operations such as monitoring and debugging. Idle pipelines cost almost nothing because the service is serverless.

Data movement and Copy activity

Expect performance questions here — this is where experienced candidates are separated from beginners.

How does the Copy activity work internally?

The Copy activity reads from the source through the integration runtime, optionally serialises or deserialises formats, applies column mapping and type conversion, and writes to the sink. Throughput scales with Data Integration Units and the degree of copy parallelism you configure.

How do you improve Copy activity performance?

Increase DIUs, raise parallel copies, partition the source (by date, key range or physical partition), enable staged copy through Blob or ADLS when the sink needs it (for example PolyBase or COPY INTO for Synapse), choose a columnar format like Parquet, and place the integration runtime in the same region as the data.

Trainer tip: Always mention region proximity — many candidates forget it and it is often the biggest single win.

What is staged copy and when is it needed?

Staged copy writes data to an interim Blob or ADLS location before loading the sink. It is needed when the sink loads fastest from storage (Synapse PolyBase/COPY INTO), when the source cannot connect directly to the sink, or when data must cross a firewall boundary.

How do you implement incremental loading in ADF?

Use a watermark pattern: store the last loaded value (a timestamp or an incrementing key) in a control table, use a Lookup activity to read it, filter the source query with it, copy the delta, then update the watermark with a Stored Procedure activity. For SQL sources you can also use Change Data Capture or change tracking.

Trainer tip: Draw the Lookup → Copy → Stored Procedure sequence on the whiteboard; interviewers score this question on structure, not wording.

How do you copy multiple tables with one pipeline?

Keep a metadata table listing source and target tables. Use a Lookup activity to read that list, pass it to a ForEach activity, and inside the loop run a parameterized Copy activity where the dataset's table name comes from the loop item. This is the standard metadata-driven framework.

What is the difference between Get Metadata and Lookup activities?

Get Metadata returns properties about a file or folder such as existence, item name, size, last modified and child items. Lookup returns actual rows from a dataset or a query, either the first row or the full result set, and is commonly used to read config or watermark values.

How do you handle schema drift or fault-tolerant copies?

Enable fault tolerance on the Copy activity to skip incompatible rows and log them to storage, use auto-mapping instead of explicit mapping where columns vary, and use Mapping Data Flows with schema drift enabled and byName expressions when structure genuinely changes over time.

What file formats does ADF support and which would you choose?

Delimited text, JSON, Avro, ORC, Parquet, XML and binary. Parquet is the default choice for analytics because it is columnar and compressed; Avro suits row-based streaming ingestion; delimited text is used mainly for interop with legacy systems.

Mapping Data Flows and transformations

Answer these by naming the transformation and the business problem it solves.

What is a Mapping Data Flow?

A visually designed, code-free transformation that ADF compiles into Spark and executes on a managed Databricks-backed cluster. You build sources, transformations and sinks on a canvas and ADF handles cluster provisioning.

Mapping Data Flow vs Wrangling Data Flow?

Mapping Data Flow is for production-scale transformation logic executed on Spark. Wrangling Data Flow uses Power Query for exploratory, spreadsheet-style data preparation and is aimed at analysts rather than engineers.

Which transformations have you used in Mapping Data Flows?

Source, Select, Derived Column, Filter, Aggregate, Join, Lookup, Exists, Union, Conditional Split, Pivot/Unpivot, Surrogate Key, Window, Rank, Alter Row and Sink. Alter Row plus an upsert-enabled sink is how you implement inserts, updates and deletes.

How do you implement a slowly changing dimension Type 2 in ADF?

Read the source and the existing dimension, join on the business key, use a Derived Column to compute a hash of tracked attributes, use Conditional Split to route new versus changed rows, use Alter Row to expire the current record (set end date and active flag) and insert the new version with a Surrogate Key transformation.

Trainer tip: SCD2 is the single most asked data-flow scenario — rehearse it until you can explain it in ninety seconds.

What is debug mode and what does it cost?

Debug mode spins up a live Spark cluster so you can preview data at each transformation. It bills for cluster uptime while enabled, so you set a short time-to-live and turn it off when you finish developing.

How do you optimise a slow data flow?

Right-size the compute type and core count, set sensible partitioning (hash or round robin) instead of leaving defaults, push filters and projections as early as possible, avoid unnecessary sorts and broadcast only genuinely small sides of a join, and reuse a cluster across activities with a time-to-live setting.

Triggers, scheduling and parameterization

These questions test whether you have actually run pipelines in production.

What trigger types does ADF support?

Schedule triggers (wall-clock recurrence), tumbling window triggers (fixed, non-overlapping, stateful windows that support backfill and dependency), event-based triggers (blob created or deleted, and custom events via Event Grid) and manual or REST-invoked runs.

Schedule trigger vs tumbling window trigger?

A schedule trigger simply fires at set times and has no memory of past runs. A tumbling window trigger maintains state, supports retries, backfill of historical windows, concurrency limits and dependencies between windows — which makes it the right choice for time-sliced incremental loads.

What is the difference between parameters and variables?

Parameters are set at the start of a pipeline run and are read-only during execution. Variables can be created and changed inside the run using Set Variable and Append Variable, typically to accumulate values inside a loop.

How do you parameterize a linked service?

Define parameters on the linked service (for example server name or database) and supply values from the dataset or pipeline at runtime. Combined with a metadata table this lets one pipeline serve many source systems and environments.

How do you pass values between activities?

Reference the previous activity's output with an expression such as @activity('LookupConfig').output.firstRow.WatermarkValue, or store the value in a variable with Set Variable and use it downstream.

How do you run activities in parallel or force them sequential?

ForEach runs in parallel by default up to its batch count; tick Sequential to force ordering. At pipeline level you control overlap with the concurrency setting, and at trigger level with the tumbling window concurrency and dependency options.

Monitoring, error handling and reliability

Speak from operational experience: what you did at 2 a.m. when a pipeline failed.

How do you monitor ADF pipelines?

Through the Monitor tab for pipeline, activity and trigger runs, Azure Monitor and Log Analytics for diagnostic logs and KQL queries, metric alerts on failed runs, and Azure Alerts wired to email, Teams or a webhook for on-call notification.

How do you implement error handling?

Use the failure, success, completion and skipped dependency conditions to route control flow, add a Web or Logic App activity on failure to send a notification, log failures to a SQL audit table with a Stored Procedure activity, and set retry count and retry interval on activities for transient errors.

Trainer tip: Mention that a pipeline with only failure-path activities can still report success — you often need Set Variable plus an If Condition to force the run to fail properly.

How do you rerun only the failed portion of a pipeline?

In Monitor, choose 'Rerun from failed activity', which resumes from the failing point rather than the beginning. Tumbling window triggers additionally allow rerunning specific windows.

How long is pipeline run data retained and how do you keep it longer?

Run history is retained for 45 days in the service. For longer retention, enable diagnostic settings to send logs to Log Analytics or a storage account.

What is the difference between a debug run and a triggered run?

A debug run executes the unpublished version of the pipeline in the authoring session and appears under Debug in Monitor. A triggered run executes the published version and appears under Pipeline runs.

Security, Key Vault and networking

Every enterprise interview includes at least one of these.

How do you store credentials securely in ADF?

Store secrets in Azure Key Vault, add a Key Vault linked service, and reference the secret by name in other linked services. Grant the data factory's managed identity get and list permissions on the vault so no password is ever stored in JSON or Git.

What is a managed identity in ADF and why prefer it?

Each factory gets a system-assigned Microsoft Entra identity. You grant that identity roles on storage, SQL or Key Vault so authentication happens without secrets, which removes credential rotation and leakage risk.

How do you connect to a source that has no public endpoint?

Use a managed virtual network with managed private endpoints for supported PaaS sources, or a self-hosted integration runtime installed inside the private network or on-premises for everything else.

How is data encrypted in ADF?

Data in transit uses TLS; data at rest in linked stores uses those services' encryption. Factory metadata is encrypted by Microsoft-managed keys by default and can use customer-managed keys stored in Key Vault.

Scenario questions asked in Hyderabad interviews

Real prompts our trainees report from product companies and GCCs in HITEC City, Gachibowli and Madhapur.

Files land in ADLS at random times. Load each file exactly once as soon as it arrives.

Create a storage event trigger on blob created for the landing container, pass the trigger's folder path and file name into the pipeline as parameters, copy just that file, then move or archive it to a processed folder. Log processed file names to a control table so a duplicate event cannot reload the same file.

You must load 200 on-premises SQL tables into a lake nightly with one pipeline.

Build a metadata-driven framework: a control table lists schema, table, watermark column and load type; a Lookup reads it; a ForEach with a sensible batch count loops the list; a parameterized Copy activity writes Parquet into a partitioned folder path; a Stored Procedure updates the watermark. Connect through a self-hosted integration runtime with multiple nodes.

A daily pipeline that normally takes 20 minutes suddenly takes 3 hours. How do you troubleshoot?

Open the Copy activity details to see throughput, DIU usage and which stage dominated (reading, transfer or writing). Check whether source volume grew, whether the source query lost an index or partition filter, whether the self-hosted IR node is CPU or memory bound, and whether the sink is throttling. Then act: repartition, raise DIUs, tune the query or stage the load.

How would you promote a pipeline from dev to test to production?

Develop in a Git branch, raise a pull request into the collaboration branch, publish to generate the ARM template, and deploy through an Azure DevOps release pipeline with environment-specific parameter files for linked services, and stop and restart triggers around the deployment.

Only some rows failed validation. Business wants the good rows loaded and the bad rows reported.

Use a data flow with a Conditional Split on the validation rules: valid rows go to the curated sink, invalid rows go to a reject sink with a reason column, and a downstream Web activity or Logic App emails the reject count and file location to the data steward.

How do you avoid two runs of the same pipeline colliding?

Set pipeline concurrency to 1, or on a tumbling window trigger set max concurrency and self-dependency so a window only starts after the previous one succeeds.

Databricks, Synapse and SQL crossover questions

An Azure Data Engineer interview rarely stops at ADF. Be ready for the surrounding stack.

When do you use ADF data flows versus a Databricks notebook?

Data flows suit standard, visually expressible transformations and teams that prefer low code. Databricks suits complex logic, reusable libraries, unit-tested code, machine learning workloads and very large volumes where fine control over Spark matters.

How do you pass parameters to a Databricks notebook from ADF?

Use the Databricks Notebook activity's base parameters, read them inside the notebook with dbutils.widgets.get, and return values to ADF with dbutils.notebook.exit, which appears in the activity output as runOutput.

What is Delta Lake and why does it matter in a pipeline?

Delta Lake adds ACID transactions, schema enforcement and evolution, time travel and efficient upserts (MERGE) on top of Parquet in the lake — which makes incremental and idempotent loads reliable instead of best-effort.

Explain the medallion architecture.

Bronze holds raw ingested data as received, silver holds cleaned, conformed and deduplicated data, and gold holds business-level aggregates and dimensional models serving BI. ADF typically orchestrates the movement between the layers.

How do you load data into a dedicated SQL pool efficiently?

Land the data as Parquet in ADLS, then use COPY INTO or PolyBase through a staged Copy activity rather than row-by-row inserts, choose an appropriate distribution (hash on a high-cardinality join key) and create statistics after the load.

What is Azure Data Factory's relationship with Synapse Pipelines and Microsoft Fabric?

Synapse Pipelines is essentially the same engine hosted inside Synapse workspaces, and Fabric Data Factory brings the same concepts into Fabric with dataflows and pipelines. Skills transfer almost one to one, which is worth saying in an interview.

Practise these answers with a trainer

Our Azure Data Engineer, Databricks & Azure Data Factory programme (2 Months) covers Azure Data Factory, Databricks, Synapse, Delta Lake and SQL with real-time projects, mock interviews, resume support and placement assistance.

How to prepare in the last week

  1. 1

    Day 1-2 — rebuild one pipeline end to end

    Create a metadata-driven copy from SQL to ADLS with a watermark. Being able to say 'I built this last week' beats any definition.

  2. 2

    Day 3 — data flows

    Implement an SCD Type 2 and a conditional-split reject path. Screenshot both for your portfolio.

  3. 3

    Day 4 — failure drills

    Break a pipeline deliberately, then practise explaining how you found and fixed it using Monitor and Log Analytics.

  4. 4

    Day 5 — deployment story

    Be able to describe your Git branching, ARM template publish and DevOps release in under two minutes.

  5. 5

    Day 6-7 — mock interviews

    Say the answers out loud with a peer or trainer. Fluency, not knowledge, is what fails most candidates.