定时调度
百度智能云Elasticsearch(BES)提供定时调度功能,使用此功能可实现:
- 定时创建索引
- 定时删除索引
- 对索引存储进行限制
- 对冷热数据分离的索引定时置冷
- 定时备份数据
- 定时修改集群配置
- 定时rollover
- 定时forcemerge
可以按照业务场景创建调度任务,更方便地使用和管理百度智能云Elasticsearch(BES)。
创建任务
- 登录百度智能云Elasticsearch控制台,并点击集群名称,进入集群详情界面。
- 在左侧导航栏,单击定时调度进入定时调度界面。
- 在定时调度配置界面,选择调度方式、时间配置、任务名称、和任务类型,根据不同任务类型,配置各类任务信息。最后点击“创建任务“按钮,完成任务创建。
创建索引
定时创建索引支持用户指定索引的命名规则,以及settings、mappings等信息,并按照设定的时间策略创建索引。
用户可根据业务需求配置调度方式、任务名称、任务类型、索引名称前缀、索引名称后缀和索引信息。
使用说明
-
调度方式:
- 定时调度:可以配置定时调度,指定每天、每周、每月的确定时间执行任务。
- 周期调度:可以配置周期调度,指定每间隔一段时间执行一次任务。
- 任务名称: 用户自行填写。名称规则支持字母(a-z及A-Z)、数字(0-9)、下划线(_)或连字符(-),长度6~24个字符。
- 任务类型:在任务类型中选择“创建索引”。
- 索引名称前缀:索引名称仅能由数字、小写字符、下划线(
_
)和横线(-
)组成。 - 索引名称后缀:可选5种时间格式,“yyyy.MM.dd.HH.mm”、“yyyy.MM.dd”、“yyyy-MM-dd-HH-mm”、“yyyy-MM-dd“和”yyyy-MM“。系统会将索引名称前缀和索引名称后缀相结合成索引名称,并按指定时间创建索引。
- 索引信息:索引信息为JSON格式,可以设置索引的settings和mappings,详见创建索引。非必填。
建议在创建索引前先创建模板。
例如:用户需求每周一零点创建一个新索引,命名规则为test_index_2020.12.01
,则可以配置一个创建索引任务。配置方式如下图:
删除索引
用户可以使用通配符等方式匹配索引,并按照策略定期删除索引。
使用说明
-
调度方式:
- 定时调度:可以配置定时调度,指定每天、每周、每月的确定时间执行任务。
- 周期调度:可以配置周期调度,指定每间隔一段时间执行一次任务。
- 任务名称: 用户自行填写。名称规则支持字母(a-z及A-Z)、数字(0-9)、下划线(_)或连字符(-),长度6~24个字符。
- 任务类型:在任务类型中选择“删除索引”。
-
索引匹配规则:可以使用通配符、索引名称匹配索引或使用减号排除索引。
- 使用通配符(*)来匹配多个索引,如
test*
代表匹配以test
为前缀的所有索引; - 直接使用索引名称匹配,如
test
代表匹配名称为test
的索引;也可以输入多个索引名称用逗号分隔,如test1,test2
; - 可以使用减号(-)排除索引,例如,
test*,-test
,代表匹配以test
为前缀且除去名称为test
的所有索引。
- 使用通配符(*)来匹配多个索引,如
- 索引最小年龄:执行定时任务的时间减去索引创建时间称为索引年龄,只有年龄超过索引最小年龄的索引才会执行定时任务。最小年龄可以配置为0,代表符合索引匹配规则的索引都可以执行定时任务。
例如:用户需要在每天凌晨0点删除7天前创建的,并且名称符合 test*
的索引,则可以配置一个创建索引任务。配置方式如下图:
注意事项
- 索引删除不可恢复,请提前确定索引数据可删除,再进行任务配置。
存储限制
用户可以使用通配符等方式匹配索引,定期检查索引占据的存储空间是否超过设定值,如果超过设定值,则将索引置为只读模式。
使用说明
-
调度方式:
- 定时调度:可配置定时调度,指定每天、每周、每月的确定时间执行任务。
- 周期调度:可配置周期调度,指定每间隔一段时间执行一次任务。
- 任务名称: 用户自行填写。名称规则支持字母(a-z及A-Z)、数字(0-9)、下划线(_)或连字符(-),长度6~24个字符。
- 任务类型:在任务类型中选择“存储限制”。
-
索引匹配规则:可以使用通配符、索引名称匹配索引或使用减号排除索引。
- 使用通配符(*)来匹配多个索引,如
test*
代表匹配以test
为前缀的所有索引; - 直接使用索引名称匹配,如
test
代表匹配名称为test
的索引;也可以输入多个索引名称用逗号分隔,如test1,test2
; - 可以使用减号(-)排除索引,例如,
test*,-test
,代表匹配以test
为前缀且除去名称为test
的所有索引。
- 使用通配符(*)来匹配多个索引,如
- 索引最大存储量:索引允许的最大存储量,最小为1,只支持整数。当索引存储数据量超过此处设定值,会将索引设置为只读。
例如:用户需要名称符合test*
的索引均不允许超过100GB,则可以配置一个存储限制任务。配置方式如下图:
如图代表,每十分钟对集群中所有符合test*
的索引进行检测,如果存储超过100GB,则置为只读模式。
注意事项
- 此处索引占据的存储空间指的是主分片占据的存储空间,您可以通过以下接口查询pri.store.size字段来查看主分片大小。
get /_cat/indices?v
- 用户可以将调度周期设置得更短,如“每隔1分钟执行一次”,这样可以更精细地对索引存储进行限制。
- 只读模式可以通过以下API恢复。注意:若索引依旧超过限制的最大存储量,即使恢复后,依旧会再次被置为只读模式。
PUT {index_name}/_settings
{
"index.blocks.write":null
}
索引置冷
百度智能云ES支持通过定时调度功能将索引制冷。用户可以使用通配符等方式匹配索引,定时置为冷数据索引。可选将索引迁移到冷数据节点或对象存储BOS。
使用说明
-
调度方式:
- 定时调度:可配置定时调度,指定每天、每周、每月的确定时间执行任务。
- 周期调度:可配置周期调度,指定每间隔一段时间执行一次任务。
- 任务名称: 用户自行填写。名称规则支持字母(a-z及A-Z)、数字(0-9)、下划线(_)或连字符(-),长度6~24个字符。
- 任务类型:在任务类型中选择“索引置冷”。
-
索引存储位置:可选冷数据节点或对象存储BOS,用户可根据自身集群进行选择。索引存储位置不影响调度任务其他配置。
- 冷数据节点:如果集群中包含冷数据节点,可选择将索引变为只读索引且数据存储在冷数据节点。
- 对象存储BOS: 如果集群支持并开启了基于BOS的冷热数据分离功能,可将索引变为只读索引且数据上传到BOS。非冷热数据分离的index则不受影响。
-
索引匹配规则:可以使用通配符、索引名称匹配索引或使用减号排除索引。
- 使用通配符(*)来匹配多个索引,如
test*
代表匹配以test
为前缀的所有索引; - 直接使用索引名称匹配,如
test
代表匹配名称为test
的索引;也可以输入多个索引名称用逗号分隔,如test1,test2
; - 可以使用减号(-)排除索引,例如,
test*,-test
,代表匹配以test
为前缀且除去名称为test
的所有索引。
- 使用通配符(*)来匹配多个索引,如
- 索引最小年龄:执行定时任务的时间减去索引创建时间称为索引年龄,只有年龄超过索引最小年龄的索引才会执行定时任务。最小年龄可以配置为0,代表符合索引匹配规则的索引都可以执行定时任务。
例如:用户需要将创建超过1周且名称符合test*
的冷热数据分离索引置为冷索引,存放在冷数据节点,每周一0点执行。则可以配置一个索引置冷任务。配置方式如下图:
再例如:用户需要将创建超过3天且名称符合test*
的冷热数据分离索引置为冷索引,存放在对象存储BOS,每天0点执行。则可以配置一个索引置冷任务。配置方式如下图:
注意事项
- 索引存储位置为对象存储BOS的功能只支持基于BOS冷热数据分离的集群使用,详见基于BOS的冷热数据分离。
- 索引存储位置为冷数据节点的功能只有在创建了冷数据节点的集群才能使用。相见基于节点磁盘介质的冷热数据分离。
备份数据
用户可以通过基于BOS的快照与恢复来备份数据。在创建BOS仓库后,用户可以设置需要备份的索引和其他快照策略,系统会根据配置,定时执行快照备份数据,保证数据的安全性。
使用方式
-
调度方式:
- 定时调度:可配置定时调度,指定每天、每周、每月的确定时间执行任务。
- 周期调度:可配置周期调度,指定每间隔一段时间执行一次任务。
快照任务的最短间隔是1h,若配置较小的时间间隔,也会以1h的时间间隔备份数据。
- 任务名称: 用户自行填写。名称规则支持字母(a-z及A-Z)、数字(0-9)、下划线(_)或连字符(-),长度6~24个字符。
- 任务类型:在任务类型中选择“备份数据”。
- 仓库名称:repository名称,snapshot使用的仓库, 快照仓库必须在备份数据前创建。 创建方式参见基于BOS的快照与恢复。
- 快照名称:snapshot名称,在执行snapshot时,该名称作为前缀执行。具体snapshot名称为:[snapshot_time_uuid]。
- 索引列表:需要被包含在snapshot中的index列表,默认为备份全部index;格式为index1,index2,index3
- 快照过期时间:快照过期时间,默认为90天。快照过期之后将会被删除。
例如:用户需要每周一将集群中my_index1,my_index2,my_index3
等几个索引的数据备份到BOS,则可以配置一个备份数据任务。配置方式如下图:
集群配置
用户可以根据需要定期修改集群配置。
使用说明
-
调度方式:
- 定时调度:可配置定时调度,指定每天、每周、每月的确定时间执行任务。
- 周期调度:可配置周期调度,指定每间隔一段时间执行一次任务。
- 任务名称: 用户自行填写。名称规则支持字母(a-z及A-Z)、数字(0-9)、下划线(_)或连字符(-),长度6~24个字符。
- 任务类型:在任务类型中选择“集群配置”。
- settings:setting支持JSON格式配置。
例如:用户需要每天21:00关闭配置action.destructive_requires_name
,以便能够使用通配符删除索引,而在每天的23:00完成删除,并开启action.destructive_requires_name
,禁止使用通配符删除索引,以防止误操作导致数据丢失。则配置方式如下图:
rollover
rollover API可以根据索引的大小、文档数、创建时长等规则翻转到新索引。当rollover触发后,将创建新索引,并将写入别名(write alias)指向新索引,后续写入都将写入新索引。用户可以配置索引的大小、文档数、创建时长等策略定时翻转索引。
使用方式
-
调度方式:
- 定时调度:可配置定时调度,指定每天、每周、每月的确定时间执行任务。
- 周期调度:可配置周期调度,指定每间隔一段时间执行一次任务。
- 任务名称: 用户自行填写。名称规则支持字母(a-z及A-Z)、数字(0-9)、下划线(_)或连字符(-),长度6~24个字符。
- 任务类型:在任务类型中选择“rollover”。
- 索引别名:索引别名可由数字,大小写字符和(_,-,+)组成,不能以(_,-,+)开头,可以使用通配符、索引名称匹配索引别名或使用减号排除索引别名。
- max_size:当索引主分片存储达到这个参数设定的量级,即可触发rollover,设置为0表示此项不生效。
- max_age:当索引在创建后达到这个参数设定的年龄,即可触发rollover,设置为0表示此项不生效。
- max_docs:当索引文档数达到这个参数设定的数目,即可触发rollover,设置为0表示此项不生效。
用户同时设置了max_size、max_age和max_docs,只要其中一项达到设定值就会触发rollover。
例如:用户需要每周一对别名test_a
的索引进行rollover,则可以配置一个rollover任务(rollover使用参见rollover API)。
配置方式如下图:
forcemerge
用户可以使用通配符等方式匹配索引,并按照策略定期合并segment。forcemerge一般适用于不再更新或只有定时批量更新的索引,且执行频率不易过高,建议在没有写入的时间段进行。
使用方式
-
调度方式:
- 定时调度:可配置定时调度,指定每天、每周、每月的确定时间执行任务。
- 周期调度:可配置周期调度,指定每间隔一段时间执行一次任务。
- 任务名称: 用户自行填写。名称规则支持字母(a-z及A-Z)、数字(0-9)、下划线(_)或连字符(-),长度6~24个字符。
- 任务类型:在任务类型中选择“forcemerge”。
- 索引匹配规则:可以使用通配符、索引名称匹配索引或使用减号排除索引。
- 最大Segment数量:forcemerge合并segment的最大数量。
- 索引最小年龄:定时任务的执行时间减去索引创建时间称为索引年龄,只有年龄超过索引最小年龄的索引才会执行定时任务。最小年龄可以配置为0,代表符合索引匹配规则的索引都可以执行定时任务。
例如:用户需要每天凌晨0点对创建超过10天且名称符合test*
的索引进行segment合并,且将segment合并为10个,则可以配置一个forcemerge任务。配置方式如下图:
查看任务列表
在定时调度配置界面下方,用户可以看到已经创建的任务列表,以及定时任务的执行次数和失败次数。
修改任务
点击任务列表操作列中修改按钮,在右侧弹出页面中可修改对应定时任务。
删除任务
点击任务列表中的删除按钮,确认后即可删除对应定时任务。