# ELT Interview Questions

> ELT pattern questions for data engineer interview prep.

Canonical URL: <https://datadriven.io/elt-interview-questions>

Breadcrumb: [Home](https://datadriven.io/) > [ELT Interview Questions](https://datadriven.io/elt-interview-questions)

## Summary

ELT interview questions for data engineer roles. Extract, load raw to warehouse, transform in-warehouse with dbt or Spark. Bronze, silver, gold layers. Idempotent MERGE INTO on composite natural keys. The dominant pattern in 2026 data engineer pipelines.

## What this page covers

ELT (extract, load, transform) is the dominant data engineer pipeline pattern in 2026. The change from ETL to ELT happened over the late 2010s and early 2020s as columnar warehouse compute became cheap enough that transforming inside the warehouse beat transforming in flight. The modern stack: extract from source (CDC via Debezium, batch SELECT, API pull), land raw immutable in the warehouse bronze layer (Snowflake variant or external table to S3 Parquet), transform in-warehouse with dbt (SQL-based) or Spark (Python or Scala).

Six ELT-specific concerns appear in data engineer interview rounds. Bronze layer design: raw immutable, schema-on-read for flexibility, partitioned by load_date for replay. Silver layer design: cleaned, typed, deduplicated, conformed dimensions. Gold layer design: business-ready star schemas with aggregates and materialized views. dbt versus Spark for transformation: dbt is SQL-only, runs in the warehouse, has the better developer experience for analytical transformations; Spark is general-purpose, handles non-SQL workloads (ML feature engineering, complex Python logic), more operational overhead. Most modern data engineer pipelines use both: dbt for analytics, Spark for ML and heavy transforms.

Idempotency in ELT. Bronze layer is append-only with load_date partition; re-running an extract for a date overwrites the same partition. Silver and gold use MERGE INTO on composite natural keys with run_id. dbt's incremental materialization handles this pattern automatically with the unique_key config option. Spark with Delta or Iceberg MERGE INTO similarly. The senior data engineer signal is articulating idempotency at every layer, not just at the top.

Schema evolution in ELT. The bronze layer's raw immutable nature handles additive changes naturally: new columns flow into bronze without code change. Silver layer transformations need explicit schema handling: dbt source freshness checks plus schema tests catch breaking changes; Spark schema-on-read with explicit column references propagates additive changes and breaks on rename. Schema registries at the producer side enforce contracts.

The dbt-specific patterns appear in data engineer interview rounds where the company uses dbt heavily (most 2026 startups, many enterprise teams). Incremental models with the unique_key config for idempotency. Snapshots for SCD Type 2 dimension tracking. Sources with freshness tests. Macros for cross-project DRY (a custom_dedup macro that wraps ROW_NUMBER for the team's standard dedup logic). Tests (not_null, unique, accepted_values, custom singular tests) gating deploys.

Companies whose data engineer interviews emphasize ELT and dbt: Stripe (dbt-heavy), Airbnb (Airflow + dbt-equivalent internal tool), most modern startups (Snowflake or BigQuery + dbt Cloud), Snowflake itself (vendor-specific dbt patterns), Databricks (Delta + dbt or Spark).

## Frequently asked questions

### What is the difference between ETL and ELT?

ETL transforms in flight before landing clean data in the warehouse. ELT lands raw data in the warehouse first (bronze layer) and transforms in-warehouse with dbt or Spark. ELT dominates in 2026 because columnar warehouse compute is cheap and the raw bronze layer enables replay. ETL persists for use cases where landing raw is too expensive or source-system loading is unacceptable.

### Why has ELT become the default for data engineer pipelines?

Three reasons. Columnar warehouse compute (Snowflake, BigQuery, Redshift, Databricks) is cheap enough to transform in-warehouse without breaking the budget. The raw bronze layer enables replay: a bug in silver does not require re-ingesting from the source. The dbt ecosystem and similar in-warehouse tools have matured to the point that SQL-based transformation is more productive than custom Spark code for most workloads.

### When does a data engineer pick dbt versus Spark for in-warehouse transformation?

dbt for analytical transformations: aggregations, dimensional modeling, business-rule applications, dashboards. SQL-only, runs in the warehouse, fast developer iteration. Spark for non-SQL workloads: ML feature engineering, complex Python logic, very large transforms that benefit from Spark's distributed compute. Most modern data engineer pipelines use both: dbt for analytics, Spark for ML and heavy transforms.

### What is the bronze, silver, gold layer pattern in ELT?

Bronze: raw immutable from source, partitioned by load_date, schema-on-read for flexibility. Silver: cleaned, typed, deduplicated, conformed dimensions, schema-on-write. Gold: business-ready star schemas with aggregates and materialized views, optimized for query. Each layer has its own ownership and quality contract; a bug in silver does not require re-ingesting from source.

### How does dbt handle idempotency?

Incremental models with the unique_key config option. The model's transformation logic produces rows keyed by unique_key; dbt MERGE INTO the destination table replacing or upserting matching rows. Re-running with the same source data produces the same destination. dbt also supports the insert_overwrite materialization for partition-replace idempotency.

### What is a dbt snapshot and when does a data engineer use it?

dbt snapshot is the built-in SCD Type 2 mechanism. The snapshot captures the state of a source table at the snapshot time and tracks changes with valid_from, valid_to columns. Re-running the snapshot adds new rows for any source changes. Useful for tracking slowly-changing dimensions (customer attributes, product catalog) without writing custom merge logic.

### How does ELT handle schema evolution?

Bronze layer's raw immutable nature handles additive changes naturally: new columns flow into bronze without code change. Silver layer transformations need explicit schema handling: dbt source freshness checks and schema tests catch breaking changes; Spark schema-on-read with explicit column references propagates additive and breaks on rename. Schema registries enforce contracts at producer.

### What is the difference between dbt Cloud and dbt Core?

dbt Core is the open-source CLI tool; runs on any infrastructure. dbt Cloud is the managed service with web UI, scheduling, alerting, IDE, CI integration. Most data engineer interviews are stack-agnostic about which dbt; the patterns are the same. Mention dbt Cloud if the company uses it (most cloud-first companies do).

## How a data engineer designs an ELT pipeline

Six-step ELT design framework for data engineer interview rounds.

### Step 1: Land raw to bronze

Extract via CDC, batch SELECT, or API. Land immutable to S3 Parquet or warehouse external table. Partition by load_date.

### Step 2: Clean and conform to silver

dbt or Spark transformation. Dedup on composite natural key. Apply typing and validation. Schema-on-write.

### Step 3: Model to gold

Star schemas with conformed dimensions. dbt for analytical workloads. Materialized views for hot queries.

### Step 4: Handle idempotency at every layer

Bronze: partition overwrite. Silver: MERGE INTO with composite key. Gold: dbt incremental with unique_key.

### Step 5: Handle schema evolution

Bronze accepts additive automatically. Silver schema tests catch breaking. Schema registry at producer enforces contracts.

### Step 6: Orchestrate with Airflow or Dagster

Airflow for incumbent ecosystem. Dagster for asset-based. dbt runs as a task within the orchestrator.

## Related practice catalogs

- [ETL design interview prep (with ELT as the modern variant)](https://datadriven.io/etl-design-interview-prep): Design prep covering both ETL and ELT patterns.
- [ETL interview questions](https://datadriven.io/etl-interview-questions): ETL pattern questions for context.
- [ETL practice problems](https://datadriven.io/etl-practice-problems): Hands-on practice covering ETL and ELT.
- [CDC pipeline interview questions](https://datadriven.io/cdc-pipeline-interview-questions): CDC as the ingest layer for ELT bronze.
- [Data pipeline design interview questions](https://datadriven.io/data-pipeline-interview-questions): End-to-end pipeline design including ELT.
- [Data warehouse interview questions](https://datadriven.io/data-warehouse-interview-questions): Warehouse design that ELT targets.
- [Advanced SQL: MERGE for ELT silver/gold layers](https://datadriven.io/advanced-sql-interview-questions): Idempotent MERGE INTO syntax for in-warehouse transformations.
- [dbt tutorial for data engineer prep](https://datadriven.io/tools/dbt-tutorial): dbt is the de facto in-warehouse transformation tool for ELT.
- [System design interview prep](https://datadriven.io/system-design-interview-prep): Full system design prep including ELT scenarios.

---

Source: DataDriven (https://datadriven.io). 100% free data engineering interview prep. Live code execution against Postgres 16, Python 3.11, and Spark sandboxes. No paywall, no premium tier, no signup gate.