说明
- ElasticSearch数据分片(shard)
- 创建多分片索引、更改多分片索引副本分片数量、路由计算和分片控制
- 官方文档:https://www.elastic.co/cn/
核心概念
》什么是数据分片(shard)?
- 一个分片是一个底层的工作单元 ,它仅保存了全部数据中的一部分,一个分片是一个Lucene的实例,它本身就是一个完整的搜索引擎。我们的文档被存储和索引到分片内,但是应用程序是直接与索引而不是与分片进行交互。
- Elasticsearch 是利用分片将数据分发到集群内各处的。分片是数据的容器,文档保存在分片内,分片又被分配到集群内的各个节点里。当你的集群规模扩大或者缩小时,Elasticsearch会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里。
- 主分片:在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改,索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量。
- 副分片:一个副本分片只是一个主分片的拷贝。副本分片作为硬件故障时保护数据不丢失的冗余备份,并为搜索和返回文档等读操作提供服务。
》如何创建多分片索引?
- 创建索引时不提交分片参数默认是创建一个主分片和一个副本分片(要创建副本分片至少两台节点)
- 可以指定参数规定分为几个主分片和副本
- 创建索引时定义主分片数量后以后无法更改,但是副本数量可以更改
》路由计算和分片控制
- 既然数据是被分别存储在不同的分片中,那么ES是如何定位数据到底存放在哪个分片的呢?
- 路由计算
- 公式:
hash(<文档id>) % <主分片数量></
- 公式:
Elasticsearch 数据分片管理与最佳实践

最低0.47元/天 解锁文章
7957

被折叠的 条评论
为什么被折叠?



