求助关于sql的面试题
服务器每天产生30亿的访问日志,
每一行日志包括字段:device_id, country, channel_id,date,ip, ......
其中device_id表示设备,country表示国家,channel_id表示渠道,date表示日期,......
已知device_id去重总数不到10亿,每天缓慢增加,缓慢到可以忽略不计;
已知country长度最长3个大写字母,channel_id取值范围是100-999;
已知device_id为36个字符组成;
现在要分析:
1、不同国家的device_id去重计数是多少,
2、不同渠道的device_id去重计数是多少,
3、不同渠道独有的device_id去重计数是多少,(因为一个设备可能在不同渠道出现,也可能只在某一个渠道出现)
4、渠道100的设备与其他渠道(101~999)的设备重复率是多少,
要求:
1、写出各个要求的伪sql(不限方言)
2、在计算第四点时如果是 10亿的device_id表 left join 10亿的device_id表,速度较慢,如何解决?
(不限方言,最好是spark,不要求能运行,逻辑对即可;可以自定义算子,算子功能描述清楚即可)
每一行日志包括字段:device_id, country, channel_id,date,ip, ......
其中device_id表示设备,country表示国家,channel_id表示渠道,date表示日期,......
已知device_id去重总数不到10亿,每天缓慢增加,缓慢到可以忽略不计;
已知country长度最长3个大写字母,channel_id取值范围是100-999;
已知device_id为36个字符组成;
现在要分析:
1、不同国家的device_id去重计数是多少,
2、不同渠道的device_id去重计数是多少,
3、不同渠道独有的device_id去重计数是多少,(因为一个设备可能在不同渠道出现,也可能只在某一个渠道出现)
4、渠道100的设备与其他渠道(101~999)的设备重复率是多少,
要求:
1、写出各个要求的伪sql(不限方言)
2、在计算第四点时如果是 10亿的device_id表 left join 10亿的device_id表,速度较慢,如何解决?
(不限方言,最好是spark,不要求能运行,逻辑对即可;可以自定义算子,算子功能描述清楚即可)
全部评论
相关推荐
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。 点赞 评论 收藏
分享
百度公司氛围 602人发布