1.hive SQL的分组topN问题
成绩表S,字段sid,cid,score
求每门课程的前2名与后2名sid
下面是我的做法,求个更好的
select sid from
(select sid,
rank() over(partition by cid order by score) as RA
from S) as A
union
(select sid,
rank() over(partition by cid order by score DESC) as RB
from S) as B
where RA<3 and RB<3
2.ES中游标和快照有什么区别?
它们两个没有什么可比性, 在深分页场景下我们不能使用(from+size)的方式查询ES,因为性能太低(from+size 方式会从每个分片取出from+size大小的数据,让后在协调节点做Merge返回,分页越深协需要处理的数据量越大)。一般使用scroll方式解决深分页问题,scroll在初始化阶段会对查询数据生成快照(不可变的数据集,不受索引的更新,删除的影响,单维护这个快照是需要耗费资源的),之后的查询都会对快照数据根据scroll_id进行遍历查询。
更多关于大数据培训的问题,欢迎咨询千锋教育在线名师。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,拥有国内一体化教学管理及学员服务,助力更多学员实现高薪梦想。