包虫病

注册

 

发新话题 回复该主题

RolloverAPI滚动API [复制链接]

1#

Rollover

简介

了解Elasticsearch的同学应该都知道,索引的主分片在设定之后,改变(shrink,split,reindex)主分片数目的成本相当大;因此在设计之初,一定要规划好索引的分片数目。如果集群的中节点数目固定,且写入的数据不会再有更新操作或者更新操作极其少;可以使用Rolloverindex的方式来限制每个索引的大小。

Rollover:

若rollover-target绑定的当前索引满足设定的条件,执行滚动操作将会为rollover-target创建新索引。滚动目标可以是索引别名或者数据流;

当滚动目标是别名时,执行滚动别名将指向新的索引。

当滚动目标是数据流时,数据流将数据写入到新的索引,且新索引名后缀自增。

POST/alias/_rollover/my-index-{"conditions":{"max_age":"7d","max_docs":2,"max_size":"5gb"}}

如果需要实现Rollover自动化,可以自行实现一个定时任务请求该API或者使用Elasticsearch的indexlifecyclemanagement(ILM)功能。

2API介绍

2.RolloverAPI

POST/rollover-target/_rollover/target-index?wait_for_active_shards=numberPOST/rollover-target/_rollover?wait_for_active_shards=number

2.2URI参数

rollover-target

必填参数,参数类型string。将已存的索引别名或数据流,分配给目标索引,来完成执行滚动。

target-index

可选参数,参数类型string。代表要被创建和分配索引别名的目标索引名称;

目标索引名称必须遵循以下规则:

所有字符必须小写

不允许包含\,/,*,?,",,,

,``(spacecharacter),,,#

在7.0版本之前允许包含:,在7.0+不再支持

不能够以-,_,+开头

名称不能够是.或者..

长度不能超过字节(注意:这是字节数限制,如果是字符得看表示一个字符需要多少个字节)

名称以.开头已经过时;除了隐藏索引和由插件管理的内部索引

如果rollover-target为数据流,target-index参数是不被允许的;执行Rollover数据流会按照相应规则生产新的索引:格式为.ds-rollover-target-,其中-,数字必为6位数,左侧高位用0补充,每发生一次Rollover自增加。

如果rollover-target为一个索引别名,且别名绑定的索引以-number结尾;如果不指定target-index执行Rollover,将生成新的索引indexName-number+。

如果别名现绑定的索引名称不满足以-number形式结尾,则必须指定target-index。

2.3查询参数

dry_run

可选参数,参数类型为boolean,默认值为false。该参数的作用为检测index是否满足提供的rollover条件。如果设置为true,将会完成检查工作,但不会真正执行rollover。

include_type_name

可选参数,参数类型为boolean,默认值为false。在mappings体内要求必须有mappingtype。

wait_for_active_shards

可选参数,参数类型为string,默认值为(即只要一个主分片处于活跃便可以执行操作)。在执行rollover,要求处于活跃状态的索引分片副本数目,以保证数据的可靠和安全性;设置为all或任何正整数,最多为索引分片的总数(number_of_replicas+)。

详情可以参考Activeshards:

分享 转发
TOP
发新话题 回复该主题