Inmon vs Kimball vs Data Vault? Personally I prefer wide, nested and denormalized tables as data warehouse architecture. Why?

Cloud Data warehouses are designed as distributed systems with columnar storage that is separated from compute. Hence, you can efficiently query specific fields over a huge amount of records but you want to avoid joins as it introduces overhead when shuffling data between compute instances. Also, I prefer to keep my data immutable and if something is wrong I rather replay the data with the new logic than performing mutations on existing data.

Another aspect that rarely is mentioned is that wide, nested and denormalized tables better reflect the operational data structures produced by micro-services that are exchanged over API:s (think JSON but with a schema) but more frequently stored in key/value-stores or document DB:s. That is different from the relational tables that have been the default choice of monoliths and perhaps reflected by traditional data warehouse architectures.

It is often claimed that the star schema is easier for end-users to navigate, but my experience is actually the opposite once end-users understand UNNEST() and the fields contain proper descriptions.

Also, wide & nested models makes it easier to use the same structure and logic for batch SQL as streaming SQL (you really want to avoid joins in streaming mode if possible).

I must say that BigQuery really shines when applying this architecture and I’m puzzled that this data warehouse architecture isn’t more popular. But I guess the analytical layer will often reflect the operational layer used (similar to Conways law).