Elasticsearch和Hbase对比分析
目录 为什么写这篇文章 一些重要概念 部署架构 数据写入 数据查询 负载均衡 数据合并策略 宕机恢复 为什么写这篇文章 可能有些童鞋已经发现:1.阿里云上的Hbase服务,基于Hbase深度定制和扩展,能比较好的支持时序场景和全文检索场景,其增强版Lindorm,已经作为单独的云服务售卖,单独演进。2.腾讯云上,基于ES构建了CTSDB时序数据库单独售卖,同时也推出了增强版的ES云服务。可以看出,在这两个服务所在团队中,一边选择基于ES来支持时序和全文检索场景,一边则选择基于Hbase来支持时序和全文检索场景。基于ES来支持时序和全文检索场景是比较好理解的,因为它本身的功能就支持这些,但是Hbase如何比较好支持全文检索场景呢?实际上,阿里云的Hbase服务借助了Solr这个搜索引擎来构建这块的能力,因为Solr和ES一样,都是基于Lucene构建的搜索服务。那为什么阿里不和腾讯一样,直接基于ES来构建这块的能力呢?Hbase和ES又究竟有哪些共同点,有哪些差异点呢? 总的来说,在数据量不是非常大的时候,使用ES更加简单,单纯使用ES就能解决各种查询场景的需求,但是当数据量非常大的时候,现有的社区版本ES则存在不少问题,这个时候往往需要进行一些内核级别的改进(否则就需要更多的业务层干预,并且成本消耗会比较高),类似阿里云和腾讯云上提供的ES服务,实际上都对ES内核做过改进