Kylin查詢性能低下原因分析


在處理指數行情數據時(IDXD),我遇到一個KYLIN性能查詢低下的問題,非常奇怪。經過一番研究發現了其中的原因並順利解決:

症狀:

select count(*) from sensitop.idxd where ticker = ‘000300’ and tradedate between ‘2016-01-01’ and ‘2016-07-01'
很快,不到一秒

select * from sensitop.idxd where ticker = ‘000300’ and tradedate between ‘2016-01-01’ and ‘2016-07-01'
很慢,要50多秒,有時候還會超時。

分析:

既然count很快,說明檢索cube本身是很快的,問題可能出在獲取數據上,可能是讀取數據的存在問題,需要檢查cube的設置

解決:

發現默認情況下,cube中的TRADEDATE字段是dict,當改成date時,性能問題得到解決。

NewImage

 

結論:

這應該是一個反序列化的問題。當檢索cube完成之后,得到索引,之后需要從磁盤讀取數據並反序列化成對象。針對TRADEDATE,顯然dict的encoding和date的encoding存在巨大的性能差異。這一點值得我們注意!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM