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

A stakeholder wants a key metric's historical definition changed and every past value recomputed under the new definition, while the current dashboard keeps working and the team can defend the restated numbers later. Design the backfill: how you preserve reproducibility of both the old and new definitions, how consumers see (or don't see) the transition, and how you document what was changed and when.

EasyTechnical
94 practiced

Define Change Data Capture. Compare log-based CDC (reading the transaction log), trigger-based CDC, and timestamp/high-water-mark polling on latency, load placed on the source, implementation complexity, and correctness guarantees. Name a tool for the log-based approach and give one scenario where each of the three is the right call.

HardTechnical
82 practiced

You're asked to migrate a set of nightly on-prem ETL jobs onto a cloud-native ELT stack (a modern warehouse plus dbt). Walk through the migration plan: how you'd inventory the existing jobs, map old transformations onto new models, prove parity before cutover, and decide on rollback criteria if something goes wrong mid-migration.

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.

Unlock Full Question Bank

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

Sign in to Continue

Join thousands of developers preparing for their dream job.