1. 维度建模和范式建模是什么,两者之间比较大的区别。
2. 为什么说维度建模可以故意引入数据冗余,而范式建模要避免数据冗余,它们这样做的目的是什么?
3. 两道Sql题。
order_info (
order_id bigint, -- 订单id
city_name string, -- 城市名
driver_id bigint, -- 司机id
passenger_id bigint, -- 乘客id
call_time string, -- 订单呼叫时间
finish_time string, -- 订单完成时间
pay_time string) -- 订单支付时间
这个表是订单粒度的一个打车记录,call_time、finish_time、pay_time都有可能为空。
(1) 求有多少个用户曾经呼叫过,多少个用户曾经完成过订单,多少个用户曾经支付过订单。用户可能多次打车。
(2) 求每个城市完成订单最多的十个司机。
4. 项目中数仓分了几层?为什么要分成5层?