問題來源
最近新做一個項目,有部分搜索比較頻繁的數(shù)據(jù),而且量級比較大,預(yù)計一兩年時間很可能達到100G,項目要求不要存在數(shù)據(jù)庫中,最終出來有兩個方案,一個是使用Protocol Buffers存儲在文件上,另外就是存在Elasticsearch中,也方便搜索,但這兩個方案需要驗證,到底哪個方案好,從存儲速度,搜索響應(yīng),占用空間方面做對比,而我負責(zé)給出Elasticsearch的部分技術(shù)建議!
驗證需求
1、數(shù)據(jù)量:初步只算52億條
2、寫數(shù)據(jù)速度:需要超過1W條每秒
遇到問題以及解決辦法
而在驗證過程中遇到了無論是使用Elasticsearch.Net或者PlainElastic.Net來寫數(shù)據(jù),并且是使用了Bulk的api,加上多線程,都是太慢了,粗略算了一下,大概一秒插入3千條左右,這樣的話,52億條數(shù)據(jù),得插到何年何月啊,太慢了,根據(jù)查閱資料,網(wǎng)上也有人說插入數(shù)據(jù)還是挺快 的,一秒可以插入18w條,但具體也沒說是用什么辦法插入的,所以只能到官方看看了,發(fā)現(xiàn)用REST API的_bulk來批量插入,這樣速度明顯快了,可以達到5到10w條每秒,速度還可以,但問題是這方法是先定義一定格式的json文件,然后再用curl命令去執(zhí)行Elasticsearch的_bulk來批量插入,所以得把數(shù)據(jù)寫進json文件,然后再通過批處理,執(zhí)行文件插入數(shù)據(jù),另外在生成json文件,文件不能過大,過大會報錯,所以建議生成10M一個文件,然后分別去執(zhí)行這些小文件就可以了,說了這么多都是文字,真的有點暈乎乎的,看圖吧!
json數(shù)據(jù)文件內(nèi)容的定義
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26
![學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)](http://m.roadsoft.com.cn/attached/image/templet/e87d53eb-cf7a-4689-887a-1cd260f416a5.jpg)