新栋BOOK教你学elasticsearch(一)-基本概念

一、首先必须要掌握以下4个数据结构的基本概念。

1、索引(index)

我们已经有了关系型数据库的基础,现在可以用类比理解。elasticsearch的索引,你就可以理解为是一张表。记住这里的‘索引’是名词。后续我们操作的时候,比如我们把一条数据索引起来,就是指动词。

2、文档(document)

同样用类比理解,文档是传统关系型数据表中的一条记录。也就是elasticsearch存储的主要实体。

3、文档类型

就是指这条记录,也即这个文档是什么类型的。比如 User类型、Order类型。这里的类型是指业务类型。毕竟你存的都是业务上面的数据实体。同一个索引里面可以包含不同的文档类型,比如下面这里的post帖子,user用户,就是存储在一个索引里面的两种类型。post和user两种类型的字段个数可以不相同,但是如果两种类型里面含有相同的字段名称,比如name,那么这个name的字段类型必须一致,即都必须为string类型。

  1. {
  2.   "mappings":{
  3.     "post":{
  4.       "properties":{
  5.         "id":{"type":"long","store":"yes"},
  6.         "name":{"type":"string","store":"yes"},
  7.         "content":{"type":"string","store":"no"}
  8.       }
  9.     },
  10.     "user":{
  11.       "properties":{
  12.         "id":{"type":"long","store":"yes"},
  13.         "name":{"type":"string","store":"yes"},
  14.         "age":{"type":"integer","store":"no"}
  15.       }
  16.     }
  17.   }
  18. }
  1.  

4、映射(mapping)

就是数据结构,比如创建传统关系型数据库表的时候,要有一份表结构描述的文本。就是指这个。映射能够让elasticsearch知道如何处理文档。例如上面的mapping描述,告诉es要如何对待这些文档。

 

二、其次,再掌握elasticsearch集群相关的基本概念

1、节点(node)

就是指集群(cluster)中的每个独立的服务器。

2、分片(shard)

一个索引的数据,散落在不同的分片上。这些分片分别在不同的节点上。数据量大,处理能力不足,无法快速响应客户端的请求,一个节点不够,就会涉及到分片。

3、副本(replica)

一个分片的精确复制。每个分片可以有零个或多个副本。副本,或者叫做副本分片,那么也就对应有一个主分片,主分片负责索引的操作。

  1. "settings": {
  2.     "number_of_shards": "32",
  3.     "number_of_replicas": "1"
  4.   },

 

上面这段定义,代表有32个分片,每个分片有1个副本。如下图:

另外集群中Index TPS,Search TPS与副本数的关系,如下:

集群写入文档TPS与副本数正相关,查询TPS与副本数无关。

举例:

1分钟向集群写入1000个文档:

       当索引有0个副本:集群写入文档次数为1000,Index TPS为1000/60.

       当索引有1个副本:集群写入文档次数为2000,Index TPS为2000/60.

       当索引有2个副本:集群写入文档次数为3000,Index TPS为3000/60.

1分钟查询1000次:

       当索引有0个副本:search TPS为 1000/60.

       当索引有1个副本:search TPS为 1000/60.

 

副本的数量(number_of_replicas)在创建索引之后,在集群里面是可以调整的。只要你愿意,同时资源又充足的条件下,你可以删除和添加副本。但是分片的数量(number_of_shards),就不能这样来操作了。一旦创建好索引,再想更改分片数量,只有一个办法,那就是创建另一个索引,并重新索引数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值