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.
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?
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.
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.
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.
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 ContinueJoin thousands of developers preparing for their dream job.