数据仓库面试记录

 1.pv、uv的统计及hivesql的底层原理

数据:table_log

citycode

webId

ip

tms

100100

www.baidu.com

192.168.1.1

1595418314

 

370100

www.goole

192.168.2.8

1595418316

 

统计每天每个城市的pv、uv

提示:

PV:Page View;页面浏览量或点击量,用户的每一次对网站中的每一个网页访问均被记为一个pv,多个用户累计访问累计统计,用来衡量网站的网页访问数量。

UV:Unique Vistor;通过互联网访问、浏览这个网页的自然人,一天内一个访客的多次访问只被计算一次。

VV:Vistit Vies:用以统计所有访客1天内访问网站的次数。当访客完成所有浏览并最终关掉该网站的所有页面时便完成了一次访问,同一访客1天内可能有多次访问行为,访问次数累计。

解答:

Select from_unixtime(cast(tms as int) ,'yyyy-MM-dd') ,citycode,webId,count(1),count(distinct ip)

from table_log

group by  from_unixtime(cast(tms as int) ,'yyyy-MM-dd') ,citycode,webId

提问:

(1) 实际操作过程中会遇到什么问题(数据倾斜)?怎么解决?

(2) 在hive中底层是怎么实现的,对应MapReduce的键值是什么?

2.  统计最大同时在线人数

给定数据表:table_log2

userId(用户id)

end_time(离线时间)

duration(浏览时长)

 

1

1595418314

20

 

2

1595418317

16

 

个人思路:将数据拆分成多条,在统计最大在线人数

提问:解决过程中会出现数据激增的问题,该怎么解决,还有其他实现方式吗?
3. 数据仓库理论知识

(1)范式建模和维度建模,详细介绍下。

(2)雪花模型和星型模型对比,各自的优缺点

(3)生产过程中的缓慢变换维是怎么处理的?

4.反思

面试过程:简单介绍项目,说了几分钟,面试官估计也不感兴趣,什么也没问。接下来直接上sql,一开始我以为pv、uv很简单,当他说有几个shuffle,MapReduce的键值时我就蒙了,一个大坑等着我跳啊。第二个问题我用代码实现了,估计不是面试官想要的回答。最后就是数仓理论知识了,我感觉我准备的还可以,当他问我范式建模的代表人物时我就知道栽了,其他问题我都回答上来,但是在面试官的脸上没有任何表情。

这是某手的二面,一面时和面试官聊得来,感觉很开心;二面就感觉很压抑,面试官没有任何反馈,我问这样解决怎么样?面试官直接说下个问题,无奈啊我,面试完我感觉自己很糟糕,好多我会的并没能很好的表达出来,这就是不合适吧。

整个过程下来确实暴露了自己很多问题,很多底层原理不清晰,解决问题的思路还比较单一。接下来要沉淀下来,多一些sql实践和思考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值