创建和更新定时调度任务
更新时间:2022-08-16
新建和修改定时调度任务
通过调用API,新建和修改创建索引、删除索引、存储限制、索引置冷、备份数据、集群配置、rollover、forcemerge等定时调度任务。
修改定时调度任务,需要填写该任务相关的全部参数,请求后进行全量字段更新。
请求参数
Header 参数
参数名 | 类型 | 是否必须 | 描述 | 示例值 |
---|---|---|---|---|
x-Region | String | 是 | 区域 | bd |
Body 参数
参数名称 | 必填 | 类型 | 描述 | 示例值 |
---|---|---|---|---|
clusterId | 是 | String | 集群ID | 570900694777860096 |
schedule | 是 | String | 任务的定期或周期调度 | 0 0/5 * * ?:每5min执行一次任务,0 30 1 * ?:每天的1:30am执行任务 |
scheduleName | 是 | String | 定时调度任务名称,支持字母(a-z及A-Z)和数字(0-9),长度6~24个字符 | test123 |
taskType | 是 | String | 定时调度任务类型 | CREATE_INDEX |
task | 是 | object | 任务具体参数,不同任务类型配置相应的详细配置 | 参见请求示例 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "CreateIndexApi1",
"taskType": "CREATE_INDEX",
"task": {
················
}
}
创建索引
定时创建索引支持用户指定索引的命名规则,以及settings、mappings等信息,并按照设定的时间策略创建索引
参数 | 必填 | 类型 | 描述 | 示例值 |
---|---|---|---|---|
indices | 是 | object | 需要创建的索引列表 | |
indexPrefix | 是 | String | 索引名称前缀,仅能由数字、小写字符、下划线(_)和横线(-)组成 | |
indexSuffix | 是 | String | 索引名称后缀,可选5种时间格式,“yyyy.MM.dd.HH.mm”、“yyyy.MM.dd”、“yyyy-MM-dd-HH-mm”、“yyyy-MM-dd“和”yyyy-MM“。系统会将索引名称前缀和索引名称后缀相结合成索引名称,并按指定时间创建索引。 | yyyy.MM.dd.HH.mm |
indexInfo | 否 | String | 索引信息,可以设置索引的settings和mappings,为JSON格式,支持JSON对象或者JSON字符串 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "CreateIndexApi1",
"taskType": "CREATE_INDEX",
"task": {
"indices": [{
"indexPrefix": "apiindex1-",
"indexSuffix": "yyyy.MM.dd.HH.mm",
"indexInfo": {
"settings": {
"index": {
"number_of_shards": "5",
"number_of_replicas": "1"
}
}
}
}]
}
}
或者
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "CreateIndexApi1",
"taskType": "CREATE_INDEX",
"task": {
"indices": [{
"indexPrefix": "apiindex1-",
"indexSuffix": "yyyy.MM.dd.HH.mm",
"indexInfo": "{\"settings\":{\"index\":{\"number_of_shards\":\"5\",\"number_of_replicas\":\"1\"}}}"
}]
}
}
删除索引
用户可以使用通配符等方式匹配索引,并按照策略定期删除索引
参数 | 必填 | 类型 | 描述 |
---|---|---|---|
indexPatterns | 是 | object | 索引匹配规则,可以使用通配符、索引名称匹配索引或使用减号排除索引 |
minIndexAge | 否 | String | 索引最小年龄,默认0,单位可填分钟/小时/天(m:分钟,h:小时,d:天),数字最小为0,只能为整数,不支持小数和分数 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "DelIndexApi1",
"taskType": "DELETE",
"task": {
"indexPatterns": ["apiindex*"],
"minIndexAge": "24h"
}
}
forcemerge
用户可以使用通配符等方式匹配索引,并按照策略定期合并segment。合并前,索引会被置为只读,然后进行forcemerge。
参数 | 必填 | 类型 | 描述 |
---|---|---|---|
indexPatterns | 是 | object | 索引匹配规则,可以使用通配符、索引名称匹配索引或使用减号排除索引 |
maxNumSegments | 是 | Integer | 最大Segment数量,forcemerge合并segment的最大数量,数字最小为1,只能为整数,不支持小数和分数 |
minIndexAge | 否 | String | 索引最小年龄,默认0,单位可填分钟/小时/天(m:分钟,h:小时,d:天),数字最小为0,只能为整数,不支持小数和分数 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "ForcemergeApi1",
"taskType": "FORCEMERGE",
"task": {
"indexPatterns": ["apiindex*"],
"minIndexAge": "100h",
"maxNumSegments": 1
}
}
索引置冷
用户可以使用通配符等方式匹配索引,定时置为冷数据索引。可选将索引迁移到冷数据节点或对象存储BOS。
参数 | 必填 | 类型 | 描述 |
---|---|---|---|
indexPatterns | 是 | object | 索引匹配规则,可以使用通配符、索引名称匹配索引或使用减号排除索引 |
coldStorage | 否 | String | 可填写BOS/ES_COLD_TIER_NODE(冷节点),默认BOS,填写置冷到BOS,需要提前创建BOS bucket;填写冷节点,需要在创建集群时选了冷节点。 |
minIndexAge | 否 | String | 索引最小年龄,默认0,单位可填分钟/小时/天(m:分钟,h:小时,d:天),数字最小为0,只能为整数,不支持小数和分数 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "IndexColdApi1",
"taskType": "MIGRATE_COLD",
"task": {
"indexPatterns": ["apiindex*"],
"minIndexAge": "48h",
"coldStorage": "BOS"
}
}
rollover
rollover支持根据索引的大小、文档数、创建时长等规则翻转到新索引。当rollover触发后,将创建新索引,并将写入别名(write alias)指向新索引,后续写入都将写入新索引。用户可以配置索引的大小、文档数、创建时长等策略定时翻转索引。如果用户同时设置了maxSize、maxAge和maxDocs,只要其中一项达到设定值就会触发rollover。
参数 | 必填 | 类型 | 描述 |
---|---|---|---|
alias | 是 | object | 需要rollver的alias列表,必填,索引别名由数字,小写字符,下划线(_)和横线(-)组成 |
maxSize | 否 | String | 当索引主分片存储达到这个参数设定的量级,即可触发rollover。单位可填分kb/mb/gb/tb,数字最小为0,只能为整数,不支持小数和分数,设置为0表示此项不生效 |
maxDocs | 否 | Integer | 当索引文档数达到这个参数设定的数目,即可触发rollover,数字最小为0,只能为整数,不支持小数和分数,设置为0表示此项不生效 |
maxAge | 否 | String | 当索引在创建后达到这个参数设定的年龄,即可触发rollover,单位可填分钟/小时/天(m:分钟,h:小时,d:天),数字最小为0,只能为整数,不支持小数和分数,设置为0表示此项不生效。 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "RolloverApi1",
"taskType": "ROLLOVER",
"task": {
"alias": ["apiindex1","apiindex2"],
"maxSize": "10gb",
"maxDocs": 100000,
"maxAge": "100h"
}
}
存储限制
用户可以使用通配符等方式匹配索引,定期检查索引占据的存储空间是否超过设定值,如果超过设定值,则将索引置为只读模式。
参数 | 必填 | 类型 | 描述 |
---|---|---|---|
indexPatterns | 是 | object | 索引匹配规则,可以使用通配符、索引名称匹配索引或使用减号排除索引 |
maxSize | 是 | String | 索引最大存储量,单位可填分kb/mb/gb/tb,数字最小为1,只能为整数 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "StoreLimitApi1",
"taskType": "INDEX_STORE_MANAGER",
"task": {
"indexPatterns": ["apiindex*"],
"maxSize": "100gb"
}
}
集群配置
用户可以设置需要备份的索引和其他快照策略,系统会根据配置,定时执行快照备份数据,保证数据的安全性。
参数 | 必填 | 类型 | 描述 |
---|---|---|---|
persistent/transient | 是 | object | 集群配置,为JSON格式,支持JSON对象或者JSON字符串 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "SettingApi1",
"taskType": "CLUSTER_SETTINGS",
"task": {
"persistent": {
"bpack.migrate.max_bytes_per_sec": "40MB"
},
"transient": {}
}
}
或者
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "SettingApi1",
"taskType": "CLUSTER_SETTINGS",
"task": {
"persistent": "{\"bpack.migrate.max_bytes_per_sec\":\"40MB\"}",
"transient": "{}"
}
}
备份数据
用户可以设置需要备份的索引和其他快照策略,系统会根据配置,定时执行快照备份数据,保证数据的安全性。
参数 | 必填 | 类型 | 描述 |
---|---|---|---|
repository | 是 | String | 仓库名称,BOS的repository的名称,snapshot使用的repository,需要提前创建BOS repository |
snapshot | 是 | String | 快照名称,snapshot名称,在执行snapshot时,该名称作为前缀执行。具体snapshot名称为:[snapshot_time_uuid] |
taskParams.indices | 否 | String | 索引列表,需要被包含在snapshot中的index列表,非必填,默认为备份全部index |
retention.expireAfter | 否 | String | 快照过期时间,时间单位为天(d),时间数字最小为0,只能为整数,默认为90天。快照过期之后将会被删除 |
retention.minCount | 否 | String | 即使快照已过期也要保留的最小快照数,默认为0 |
retention.maxCount | 否 | String | 即使快照尚未过期也要保留的最大快照数。如果存储库中的快照数量超过此限制,则该策略将保留最新的快照并删除较旧的快照。默认为无限制 |
示例
{
"clusterId": "665018667943202816",
"schedule": "0 1 0 * * ?",
"scheduleName": "BackupApi1",
"taskType": "SNAPSHOT",
"task": {
"repository": "esRes",
"snapshot": "snaptest",
"retention": {
"expireAfter": "90d"
},
"taskParams": {
"indices": "apiIndex1"
}
}
}
响应参数
参数 | 必填 | 类型 | 描述 | 示例值 |
---|---|---|---|---|
success | 否 | boolean | 请求是否成功 | true |
status | 是 | integer | 状态码 | 200 |
result | 是 | String | 无意义 |