As asked
Explain the fundamental design differences between OLTP and OLAP systems, why you cannot run analytics queries directly against your production Postgres database at scale, and what design decisions in a warehouse like Snowflake or BigQuery optimize for analytical workloads.
Sample answer outline
OLTP (operational): optimized for high-concurrency low-latency point reads and writes (INSERT, UPDATE, DELETE by primary key), row-store, normalized to 3NF to minimize write amplification. OLAP (analytical): optimized for large sequential scans aggregating millions of rows, columnar store, denormalized for read performance, often partitioned by date. Running analytics directly against Postgres at scale causes full table scans that degrade OLTP performance and hold locks. Snowflake and BigQuery separate compute from storage, use columnar compression, and do not have row-level locking, making aggregate scans fast and cheap. Strong candidates mention that separation also prevents analytic workloads from affecting operational system availability.
Expect these follow-ups
- What is HTAP (Hybrid Transaction/Analytical Processing) and when would you use it?
- Why does Postgres perform so poorly on a COUNT(*) across 100 million rows compared to Snowflake?