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.

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.

MediumTechnical
90 practiced

After migrating a batch of transforms from a pre-load ETL job into in-warehouse ELT SQL running on Snowflake, the team notices query costs and runtimes have crept up. Where do ELT costs typically show up in a pay-as-you-go warehouse, which transformation patterns make them worse, and what concrete levers would you pull to bring spend back down without breaking freshness SLAs?

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.

HardTechnical
75 practiced

You're deduplicating a high-volume event stream. Compare exact deduplication with a durable keyed state store, hash-based approaches, and Bloom filters for approximate dedup with a lower memory footprint. When is approximate dedup actually acceptable, and how do you keep any of these approaches correct across a job restart?

EasyTechnical
87 practiced

When would you run a full refresh of a table on every load instead of an incremental load, given that incremental is almost always cheaper? Name at least three signals you'd track to confirm an incremental load actually ran correctly.

Unlock Full Question Bank

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

Sign in to Continue

Join thousands of developers preparing for their dream job.