首先和数据库做对比
RDBS | ES |
---|---|
数据库(database) | 索引(index) |
表结构(schema) | 类型(type) |
行(row) | 文档(document)) |
列(column) | 字段(field) |
索引 | 反向索引 |
DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
ES 并不是用来替代数据库的,而是以实时搜索,稳定、可靠、快速为主。
ES是负载均衡的,易于扩展
ES是分布式的,横向扩展非常灵活
ES的价值
ES(ElasticSearch)是一款分布式全文检索框架,要计算出2.38亿会员中有多少80后的已婚的上海男士。传统数据库执行时间:5个小时左右,ES执行时间:1分钟
可否完全使用ElasticSearch代替数据库存储?
在数据存储这块,其他可选(且更流行)的方案是RMDB和NoSQL。ElasticSearch一般只是辅助搜索的。
ES是分布式搜索,传统数据库遍历式搜索
ES支持分片和复制,从而方便水平分割和扩展,复制保证了es的高可用与高吞吐。
在ES中,当你创建一个索引(数据库)的时候,你可以指定你想要的分片的数量。每个分片本身也是一个功能完善并且独立的索引(数据库),索引可以被放置到集群中的任何节点上。分片优点:
- 允许你水平分割/扩展你的内容容量
- 允许你在分片之上进行分布式的、并行的操作,进而提高性能/吞吐量
- 分片的分布,它的文档怎样聚合回搜索请求,完全由Elasticsearch管理
优点总结
高可用:容错机制,自动发现新的或失败的节点,重组和重新平衡数据
速度快、易扩展、弹性、灵活、操作简单、多语言客户端、X-Pack、hadoop/spark强强联手、开箱即用。