Elasticsearch7.X Rollover 滚动生成动态时间索引
使用场景:Elasticsearch每天生成一个索引存储操作日志,为了不每天修改存储索引名,即每天写到一个固定的索引别名下,使用es Rollover滚动生成索引。
一 . 添加模版
PUT _template/test_template { "index_patterns" : [ "test*" # 正则,以此前缀的索引都依照此模版 ], "settings" : { "index" : { "number_of_shards" : "3", "number_of_replicas" : "1", "mapping" : { "total_fields" : { "limit" : "1000" # 最大字段数 } } } }, "mappings" : { "dynamic_templates" : [ { "strings" : { "mapping" : { "type" : "keyword" }, "match_mapping_type" : "string" } }, { "integers" : { "mapping" : { "type" : "keyword" }, "match_mapping_type" : "long" } }, { "floats" : { "mapping" : { "type" : "keyword" }, "match_mapping_type" : "double" } } ] }, "aliases" : { "aliases_test" : { } # 添加大别名 也可不添加 可在{}添加其他参数 } }
二 . 手动创建索引
第一次需要手动创建索引,并添加一个固定的滚动别名,操作日志之后会固定往滚动别名中发送 注意:手动创建索引时 需要指定动态日期,后缀为6位以内数字格式
PUT %3Ctest-%7Bnow%2Fd%7D-000001%3E { "aliases": { "test_rollover": { # 创建索引时指定滚动别名 } } }
%3Ctest-%7Bnow%2Fd%7D-000001%3E == <test-{now/d}-000001>
查看索引格式是否为指定格式 “provided_name” : “<test-{now/d}-000001>”
"number_of_shards" : "3", "provided_name" : "<test-{now/d}-000001>", "creation_date" : "1668700803060", "number_of_replicas" : "0", "uuid" : "4LXDZAhUTg20ivzmavEnxQ", "version" : { "created" : "7090399"
三 . Rollover滚动生成
POST /test_rollover/_rollover { "conditions": { "max_age": "0d", # 0天 "max_docs": 0, # 0条文档 "max_size": "0gb" # 0GB数据 } }
手动触发滚动Rollover,符合三个条件中任意一条件即可触发Rollover 可编辑脚本定时调度触发Rollover
触发滚动后查看索引是否创建,是否自动切换别名
上一篇:
JS实现多线程数据分片下载
下一篇:
Anaconda安装与使用教程