InterviewStack.io LogoInterviewStack.io

ETL and ELT Design Patterns Questions

Trade-offs between extract-transform-load and extract-load-transform strategies, where transformation logic should live, and when to push compute into the warehouse. Covers incremental vs full loads, change-data-capture, slowly changing dimensions handling in the load path, and tooling (dbt-style transformation layers). Focuses on the processing-strategy decision rather than a specific vendor.

MediumTechnical
77 practiced

Walk through how you'd decide where transformation logic should live for a new pipeline: pushed down into the warehouse after loading, or applied upstream before loading. What actually drives that call in practice, and how does your answer change between a small relational source and a high-volume event stream?

MediumTechnical
133 practiced

Write a SQL query that deduplicates a table events(event_id, user_id, event_type, event_time), keeping only the latest row per (user_id, event_type) by event_time. Then explain how the query behaves on exact ties and why it's safe to re-run.

EasyTechnical
74 practiced

What does it mean for a pipeline run to be idempotent, and why does that property matter once retries and reprocessing are inevitable? Give two concrete techniques you'd actually implement to make a load idempotent.

HardTechnical
94 practiced

Write a MERGE statement that idempotently loads a staging table orders_stg(order_id, amount, last_modified, deleted) into a warehouse table orders(order_id PK, amount, last_modified, is_deleted): insert new orders, update existing ones only when last_modified is newer, and soft-delete when deleted is true. Then explain what makes this MERGE safe to re-run after a failure and safe if two runs somehow overlap.

HardSystem Design
104 practiced

Architect a hybrid ETL/ELT pipeline for a global e-commerce system: a 1-billion-event/day clickstream, CDC from transactional databases at 100 million rows/day, sub-5-second personalized recommendations, and daily batch analytics on the same underlying data. Be explicit about WHERE each transform runs and why: what stays as pre-load ETL because it has to be fast or cheap upstream, and what gets pushed down into the warehouse as ELT because it benefits from batch compute and needs to be reprocessable. Cover storage choices, the streaming/batch split, and how you'd handle a failure in either path.

Unlock Full Question Bank

Get access to all 7 ETL and ELT Design Patterns interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.