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中游標(biāo)和快照有什么區(qū)別?
它們兩個沒有什么可比性, 在深分頁場景下我們不能使用(from+size)的方式查詢ES,因為性能太低(from+size 方式會從每個分片取出from+size大小的數(shù)據(jù),讓后在協(xié)調(diào)節(jié)點做Merge返回,分頁越深協(xié)需要處理的數(shù)據(jù)量越大)。一般使用scroll方式解決深分頁問題,scroll在初始化階段會對查詢數(shù)據(jù)生成快照(不可變的數(shù)據(jù)集,不受索引的更新,刪除的影響,單維護(hù)這個快照是需要耗費資源的),之后的查詢都會對快照數(shù)據(jù)根據(jù)scroll_id進(jìn)行遍歷查詢。
更多關(guān)于大數(shù)據(jù)培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實現(xiàn)高薪夢想。