Why Elasticsearch
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,可以横向扩展至数百(数千)的服务器节点,同时处理PB级数据。在下文Elasticsearch 简称Es,提供的功能,如全文检索、同义词处理、相关度排名、复杂数据分析、海量数据的近实时处理,目前在计算资源存储中心主要为业务侧提供日志检索等功能。相对于常见的NoSQL数据库,为什么要用Es ,Es有什么特征呢?先看下表中NoSQL两大家族的对比。
MongoDB |
ElasticSearch |
备注 |
|
||
定位 |
(文档型)数据库 |
(文档型)搜索引擎 |
一个管理数据,一个检索数据 |
|
|
资源占用 |
一般 |
高 |
mongo使用c++, Es使用Java开发 |
|
|
写入延迟 |
低 |
高 |
Es的写入延迟默认1s, 可配置, 但是要牺牲一些东西 |
|
|
全文索引支持度 |
一般 |
非常好 |
Es本来就是搜索引擎, 这个没啥可比性 |
|
|
有无Schema |
无 |
无 |
两者都是无Schema |
|
|
支持的数据量 |
PB+ |
TB+ ~ PB |
相对来说MongoDB的数据量支持要更大一点 |
||
性能 |
非常好 |
好 |
MongoDB在大部分场景性能比Es强的多 |
|
|
索引结构 |
B树 |
LSM树 |
Es追求写入吞吐量, MongoDB读写比较均衡 |
|
|
操作接口 |