(1) optimized for bulk inserts and bulk read operations, not updates or deletes, nor for single row updates
(2) stores data from multiple sources
(3) often a "columnstore" columnar table format is used. This format usually compresses columns in a format that is trivial to decompress (so if a column only contains a handful of similar flags, the database will run-length-encode them to optimize a full column scan), and additionally if you limit the number of columns accessed you can substantially reduce the cost of the query
(4) the data warehouse can easily shard or partition data
If you want to technical file format examples, I suggest looking up how the Parquet file format compresses data, or how Microsoft SQL Server columnstore tables work under-the-hood.