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
78 practiced

Write a dbt incremental model for an orders table that pulls only rows changed since the last run using updated_at, deduplicates on order_id, and stays idempotent if the run is retried. Show the model SQL including the is_incremental() block.

MediumTechnical
87 practiced

A source system doesn't expose a reliable last_updated column and offers no native CDC. Compare three ways to still detect only what changed: standing up log-based CDC anyway, computing row-level hashes to diff two full snapshots, and full-table snapshot-vs-snapshot comparison. What does each cost you in latency, source load, and implementation effort, and when is it worth reaching for CDC despite the added complexity versus periodic batch polling?

HardTechnical
72 practiced

You must backfill a derived column onto a partitioned analytics table with billions of rows. Design the SQL-based backfill: how you batch it per partition to minimize locking, how you avoid creating duplicates, how the job resumes cleanly if it fails partway through, and what you'd check before the final cutover to the new column.

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.

Unlock Full Question Bank

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

Sign in to Continue

Join thousands of developers preparing for their dream job.