So for many days, I had a question in mind.

**how do modern data warehouses tackle frequent small writes? esp. when streaming data is one of the sources?**
Kafka/Kinesis => DW(Snowflake, Teradata, Oracle ADW, etc)

I was under the impression that
Since data warehouse tables are typically **highly denormalized and columnar**(for quick performance for reporting queries to avoid joins);
they are slow for frequent small writes
But have good performance for reporting style SELECT statements. Hence the concept of **bulk nightly uploads from OLTP data sources to OLAP data warehouses**.


what has changed in the modern DW internal architecture?
Is there a staging area within DW itself, where data lands and then it is aggregated, stats are collected and then denormalized before it finally rests into actual DW tables powering the reporting?
I am interested in knowing how does it internally works at a high level.
I know this is a dumb question, this is my understanding from my school days hence I am pretty sure it is out of date.