elasticsearch存儲數據
發布時間: 2025-03-07 04:24:52
我們使用Elasticsearch存儲的文檔數量接近50億(算上1份復制,接近
100億文檔),總共10個數據節點和2個元數據節點(48GB內存,8核心CPU,ES使用內存達到70%),每天的文檔增量大概是3000W條(速度
持續增加中)。目前來看,單個文檔的查詢效率基本處於實時狀態;對於1到2周的數據的聚合統計操作也可以在10秒之內返回結果。
但是,還有提升的空間:
1. 對於查詢單條數據的應用場景來說,我們可以使用ES的路由機制,將同一索引內的具有相同特徵(比如具有相同的userid)的文檔全部存儲於一個節點上,這樣我們之後的查詢都可以直接定位到這個節點上,而不用將查詢廣播道所有的節點上;
2. 隨著數據節點的增加,適當增加分片數量,提升系統的分布水平,也可以通過分而治之的方式優化查詢性能;
個人以為Elasticsearch作為內部存儲來說還是不錯的,效率也基本能夠滿足,在某些方面替代傳統DB也是可以的,前提是你的業務不對操作的事
性務有特殊要求;而許可權管理也不用那麼細,因為ES的許可權這塊還不完善。由於我們對ES的應用場景僅僅是在於對某段時間內的數據聚合操作,沒有大量的單文
檔請求(比如通過userid來找到一個用戶的文檔,類似於NoSQL的應用場景),所以能否替代NoSQL還需要各位自己的測試。如果讓我選擇的話,我
會嘗試使用ES來替代傳統的NoSQL,因為它的橫向擴展機制太方便了。
熱點內容