Elasticsearch实战---------设计索引
大索引的缺陷
索引是es存储数据的地方,如果一个索引很大,数据写入和查询性能都会变差,而高效检索体现在:基于日期的检索可以直接检索对应日期的索引,无形中缩减了很大的数据规模。
比如检索:“2019-02-01”号的数据,之前的检索会是在一个月甚至更大体量的索引中进行
好处:
1.查询效率快,
2.一旦一个大索引出现故障,相关的数据都会受到影响。而分成滚动索引的话,相当于做了物理隔离。
PB 级索引设计实现
综上,结合实践经验,大索引设计建议:使用模板+Rollover+Curator动态创建索引。
使用模板统一配置索引
PUT _template/template_1
{
"index_patterns": ["index-*"], //创建索引的触发条件
"settings": { //索引的配置
"number_of_shards": 1
},
"mappings": { //索引的映射配置
"_doc": {
"_source": {
"enabled": false //备注
},
"properties": {
"host_name": {
"type": "keyword"
},
"created_at": {
"type": "date",
"format": ""
}
}
}
}
}
上述索引模板创建好之后,然后在向一个不存在的索引添加文档时,如果能找到合适的模板,则自动创建索引,否则抛出索引不存在
备注:_source:主要指的是SourceField字段,Source可以理解为ES除了将数据保存在索引文件中,另外还有一份源数据。_source字段在我们进行检索时相当重要,如果在{“enabled” : false}情况下默认检索只会返回ID, 你需要通过Fields字段去到索引中去取数据,效率不是很高。但是enabled设置为true时,索引会比较大,这时可以通过Compress进行压缩和inclueds、excludes来在字段级别上进行一些限制,自定义哪些字段允许存储。
使用 Rollver 增量管理索引
使用 curator 高效清理历史数据
Curator 是elasticsearch 官方的一个索引管理工具,可以通过配置文件的方式帮助我们对指定的一批索引进行创建/删除、打开/关闭、快照/恢复等管理操作。
注意:通过java客户端查询索引的要用scroll方式查询(类似分页查询)因为普通查询最多返回1w
java客户端实现scroll游标查询
上一篇: Elasticsearch索引管理
下一篇: Elasticsearch(十)索引管理