百科问答小站 logo
百科问答小站 font logo



elasticsearch(lucene)可以代替NoSQL(mongodb)吗? 第1页

  

user avatar   tinylambda 网友的相关建议: 
      

我们使用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,因为它的横向扩展机制太方便了。

在我的工作过程中,我深切体会到:经验固然是一个很重要的东西,因为它能够帮助我们少走很多弯路,但同时也应该看到经验的另一面——它会变成一个笼子,将我们闭塞其中,使我们错过一些可能更好的解决方案,关键是我们要学会尝试,接触新的世界。




  

相关话题

  elasticsearch(lucene)可以代替NoSQL(mongodb)吗? 
  淘宝研发的 OceanBase 相比其他开源的 noSQL 数据库有什么独特的优点? 
  如何利用搜索引擎找到值得信赖的医疗机构? 
  为什么在知乎搜索栏搜C#从来不会转到C#话题,甚至前段时间直接error? 
  作为一个K-V数据库,levelDB索引为什么要使用LSM树实现,而不采用哈希索引? 
  你有多厌恶有人说「你不会百度吗?」这句话? 
  如何通俗地、不用术语地解释李彦宏的「超链分析」? 
  elasticsearch(lucene)可以代替NoSQL(mongodb)吗? 
  淘宝研发的 OceanBase 相比其他开源的 noSQL 数据库有什么独特的优点? 
  电商网站中,50W-100W高并发,秒杀功能是怎么实现的? 

前一个讨论
有哪些中外名人说过类似「喝最烈的酒,操最野的狗」这样快意恩仇的话?
下一个讨论
什么样的男人不容易出轨?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利