快手面试题:
1. 介绍数据仓库模型分层设计、层级作用功能、设计思路? 2. 数仓的设计原则:尽量满足复用性,尽量满足复用性。那么在范式建模上层的DW层,因为有比较多外键,如何输出较为好用的数据表? 3. DW层数据粒度是怎样的?如果做聚合的话,如果确定汇总粒度? 4. DW层和DM层的区别什么? 5. SQL题目:
直播事实表:fact_live live_id user_id time(ms级时间戳) duration 直播维度表:dim_live live_id params 需求输出: user_id first_live_id last_live_id first_live_dt last_live_dt(yyyy-MM-dd) first_live_params last_live_params
参考:
SELECT
A.user_id,
A.first_live_id,
A.last_live_id,
from_unixtime(B.first_live_dt, 'yyyy-MM-dd') AS first_live_dt,
from_unixtime(B.last_live_dt, 'yyyy-MM-dd') AS last_live_dt,
C.params AS first_live_params,
D.params AS last_live_params
FROM (
SELECT
user_id,
first_value(live_id) OVER (PARTITION BY user_id ORDER BY time ASC) AS first_live_id,
last_value(live_id) OVER (PARTITION BY user_id ORDER BY time ASC) AS last_live_id
FROM fact_live
) A
LEFT JOIN (
SELECT
user_id,
min(time) AS firt_live_dt,
max(time) AS last_live_dt
FROM fact_live
GROUP BY user_id
) B
ON A.user_id = B.user_id
LEFT JOIN dim_live C ON A.first_live_id = C.live_id
LEFT JOIN dim_live D ON A.last_live_id = D.live_id
6. 常用的窗口函数有哪些? 7. 除了sqoop有没有使用或者调研过其他同类型的产品?为什么使用sqoop? 8. hive有哪些场景下需要优化?优化的手段有哪些? 9. 指标结果怎么判断其正确性?有哪些核验方法? 10. 数仓运维中如果发现数据问题?有哪些规则? 11. 指标波动性的阈值如何确定? 12. 跳槽期望和职业规划
|