New · Cohort 3Engineering Analytics Cohort 3 goes live 25 July — only 30 seatsRegister Now
Data Engineering · Core Concepts

ETL Interview Questions: Concepts, Testing, and Scenarios

ETL concepts are the backbone of every data engineering interview regardless of tool — and ETL testing rounds draw on the same core. These 16 answers cover ETL vs ELT, CDC, idempotency, SCD handling, testing types, and the scenario questions that decide offers.

By Durgesh Yadav — Senior Data Engineer @ 7-Eleven · Updated 2026-07-25. Preparation guidance, not a hiring guarantee.

What are the most asked ETL interview questions?

Expect ETL vs ELT, full vs incremental loads, CDC methods (timestamp, log-based, triggers), idempotency, SCD Type 1 vs Type 2, data quality checks, and source-to-target reconciliation testing. Indian service and product companies add scenario rounds — designing an incremental pipeline, safe backfills, and debugging a run that succeeded but produced wrong numbers.

Guide

What To Learn And How To Practice

Concept Round: The Questions That Filter

The opener is almost always ETL vs ELT, followed by load strategies and CDC. Interviewers listen for tradeoffs and a concrete stack, not tool names recited from a course — a candidate who explains when full load is still correct beats one who claims incremental is always better.

ETL vs ELT with a real stack (Informatica vs Snowflake + dbt) beats a textbook definition
Full vs incremental: know when full load is still the right choice
All four CDC approaches with tradeoffs — timestamp, log-based, trigger, snapshot-diff

The ETL Testing Round

If the role says ETL tester or the JD mentions reconciliation or QuerySurge, expect a dedicated testing round; developers get the same questions phrased as "how do you validate your pipeline". Either way, the reconciliation ladder — counts, sums, hashes — is the answer skeleton.

Source-to-target reconciliation: row counts, then column sums, then hash comparison
Incremental-load testing: only the delta moved, and reruns don't duplicate
Know MINUS/EXCEPT queries plus one framework — dbt tests or Great Expectations

Scenario Round: Design and Debugging

Product companies and GCCs decide on scenarios: incremental pipelines without clean change columns, safe backfills on live pipelines, and green-but-wrong debugging. Structure wins — state assumptions, pick an approach with its tradeoff, and close with the check that prevents recurrence.

Always state assumptions first: volume, change indicators, SLA, delete handling
Prove idempotency in every design — it is the most common follow-up
Close debugging answers with the data-quality check you would add

Question bank

16 interview questions with answers

Real questions from beginner to advanced, each with a concise model answer — practice them, then rehearse live in a mock interview.

EasyWhat is the difference between ETL and ELT?

ETL transforms data on a separate engine before loading the warehouse (Informatica, SSIS, Spark); ELT loads raw data first and transforms inside the warehouse using its MPP engine — Snowflake, BigQuery, or Synapse, typically with dbt as the transform layer. ELT dominates cloud stacks because storage is cheap, warehouse compute scales, and raw data stays available for reprocessing. A sharp addition: ELT shifts data-quality and governance checks to after the load.

EasyFull load vs incremental load — when is full load still the right choice?

Full load truncates and reloads everything; incremental moves only new or changed rows using a watermark or CDC. Full load remains correct for small dimension tables, sources with no reliable change indicator, or when the reload window is trivial — simplicity beats maintaining change-detection logic. Incremental becomes mandatory when volume or load windows make full reloads impossible.

EasyWhat is a staging area, and why not load targets directly?

A staging layer holds raw extracted data before transformation — it decouples extraction from transformation, lets you reload and debug without hitting the source again, enables reconciliation against the source, and isolates source outages. In modern lakehouse terms this is the raw or bronze zone. Loading targets directly means any transform bug forces re-extraction, and you lose the audit trail.

EasyWhat data quality checks do you build into a pipeline?

The standard set: row-count and checksum reconciliation between source and target, not-null and uniqueness checks on keys, referential integrity between facts and dimensions, accepted-range and domain checks, and freshness checks confirming today's partition arrived. Make critical rules blocking (fail the pipeline) and the rest warning-level, implemented with dbt tests, Great Expectations, or plain SQL assertions.

EasyWhat does an orchestrator like Airflow or ADF actually do beyond scheduling?

It manages dependencies (task B only after A), retries with backoff, alerting, backfills, parameterized runs, and concurrency control, plus a monitoring surface for run history. Cron only answers "when"; an orchestrator answers "in what order, what happens on failure, and how do I rerun window X". That distinction is exactly what the interviewer is probing.

MediumCompare the CDC approaches: timestamp column, log-based, triggers, and snapshot diff.

Timestamp/watermark: simplest, but misses hard deletes and rows updated without touching the column. Log-based (Debezium, SQL Server CDC, Oracle GoldenGate) reads the transaction log and captures inserts, updates, and deletes with minimal source impact — the production-grade answer. Triggers write change rows on DML — reliable but they add write latency and DBAs resist them. Snapshot diff (full extract plus hash compare) is the fallback when the source offers nothing: expensive but complete, including deletes.

MediumWhat makes a pipeline idempotent, and why does it matter?

Idempotent means rerunning the same run or window produces the same end state — no duplicates, no double counting. Standard techniques: delete-then-insert or overwrite scoped to the partition (usually a date), MERGE/upsert on business keys, or run-scoped keys with dedupe on load. It matters because retries and backfills are inevitable; a non-idempotent pipeline turns every recovery into a data-corruption incident.

MediumHow do you implement SCD Type 2 in a pipeline?

Compare incoming rows to the current dimension version, typically via a hash of the tracked attributes. Unchanged rows are skipped; changed rows expire the current version (set end_date, is_current = false) and insert a new version with a fresh surrogate key and effective_date; new keys are plain inserts. In SQL this is a MERGE — often two-step UPDATE plus INSERT, since MERGE cannot perform both actions on one matched row; in Delta Lake it is MERGE with a union trick for the insert leg.

MediumWhat ETL testing types should a tester or data engineer know?

Source-to-target count and reconciliation testing (counts, sums, hash or checksum comparison), transformation-logic testing against mapping documents, duplicate and null checks on keys, incremental-load testing (only the delta moved, and reruns don't duplicate), SCD/history testing, regression testing after changes, and performance testing against the load window. Always name a method or tool: MINUS/EXCEPT queries, QuerySurge, dbt tests, or Great Expectations suites.

MediumDescribe your error-handling strategy: what retries, what fails, what quarantines?

Classify errors first. Transient failures (network, deadlock, throttling) get automatic retry with capped exponential backoff. Data errors (bad rows, type violations) shouldn't fail the batch — route them to a reject or dead-letter table with reason codes and load the rest, with a threshold that fails the run if the reject percentage spikes. Structural errors (schema change, missing file) fail fast and alert, because retries cannot fix them; every failure path emits an alert with run context.

MediumHow do you run a backfill safely on a live pipeline?

The prerequisite is idempotency — partition overwrite or MERGE. Parameterize the pipeline by date window rather than "now", run backfill windows with controlled parallelism so you don't crush the source or the warehouse, ideally via a separate backfill job so daily SLAs aren't blocked, and bypass or restore watermarks deliberately. Reconcile each window after it lands and tell consumers in advance, because historical numbers will visibly change.

MediumHow do you reconcile source and target at scale, beyond row counts?

Use a layered approach: row counts per partition, then SUM/MIN/MAX on numeric and date columns, then aggregate hash comparison — MD5 or HASHBYTES over concatenated normalized columns, grouped by key ranges to localize mismatches — and only then row-level EXCEPT/MINUS on the ranges that differ. Counts alone will pass even when rows are corrupted in place, which is exactly why interviewers push past them.

HardThe source table has no updated_at column, no CDC, and 500 million rows. How do you load it incrementally?

In order of preference: enable log-based CDC (SQL Server CDC or Change Tracking, Debezium) — the right fix, but it needs DBA buy-in; hash-diff — stage current keys plus a row-hash, compare against the previous snapshot's hashes to derive inserts, updates, and deletes, which reads everything but moves only the delta; or partition-scoped reloads if the data is append-mostly by date. State the tradeoff explicitly: hash-diff trades source read cost for full correctness, including deletes.

HardExplain exactly-once vs at-least-once delivery, and how you achieve effective exactly-once.

Most movement layers give at-least-once — retries can redeliver the same data. True exactly-once across heterogeneous systems is impractical, so you achieve effective exactly-once by pairing at-least-once delivery with an idempotent sink: MERGE on business keys, partition overwrite, or transactional writes that record offsets or run IDs (Kafka offsets committed atomically with the write, Delta transaction IDs). The pattern name is the interview answer: at-least-once delivery plus an idempotent consumer.

HardHow do you handle late-arriving and out-of-order data in aggregates and SCD Type 2?

For aggregates, reprocess a sliding lookback window — recompute the last N days each run with partition overwrite so late rows land correctly — and watermark on event time, not load time. For SCD2, a late change dated before the current version means inserting a version into history and adjusting adjacent effective and end dates, which is expensive; many teams accept load-time ordering and document the limitation. In streaming terms: watermarks with allowed lateness, and truly late data routed to a correction path.

HardScenario: the pipeline is green but the dashboard numbers are wrong. Walk me through debugging.

Work backwards through lineage: define what "wrong" means with a reconciliation query against source for the affected slice, then check the usual suspects — duplicate loads from a rerun without idempotency, timezone or partition-boundary bugs (IST vs UTC cutoffs are a classic in India-based teams), late data that arrived past the watermark, silently changed source semantics, and join fanout or filter changes in the transform. Fix it, then add the blocking data-quality check that would have caught it — interviewers listen for that closing move.

FAQ

Common Questions

Are ETL testing interview questions different from ETL developer questions?

About seventy percent overlap. Testers get deeper mapping-document validation, reconciliation methods, and test-case design; developers get the same concepts framed as design questions, like "how do you make this rerun-safe". Prepare the reconciliation ladder and idempotency either way — this page covers both framings.

Which ETL tools should I name in an Indian interview?

Match the JD. Services companies still run Informatica, Talend, SSIS, and ADF heavily; GCCs and product companies expect Airflow, dbt, and Spark. The concepts — CDC, SCD, idempotency, reconciliation — transfer across all of them, and interviewers reward concept depth over tool trivia.

Is ETL obsolete now that everyone says ELT?

No. The transform moved into the warehouse, but every concept here — incremental loads, CDC, data quality, SCD — applies unchanged to ELT stacks like Snowflake plus dbt. "ELT is ETL with the transform pushed onto warehouse compute" is a perfectly good interview line.

How are scenario questions asked in ETL interviews?

As open designs: "500-million-row table with no timestamp column, load it daily" or "the pipeline succeeded but the dashboard numbers are wrong". State assumptions, choose a CDC approach and name its tradeoff, prove the design is idempotent, and end with the data-quality check you would add.

Next Step

Turn The Guide Into Practice

Use PrepNPlaced tools to turn this learning path into resume proof, targeted practice, and interview-ready explanations.

Practice AI Mock Interview