analytic-search插件是阿里云Elasticsearch团队自主开发的日志场景检索插件。通过该插件,您可以实现Kibana Discover查询加速,支持通过开启时间字段index.sort,在特定查询条件下,降低查询耗时;支持开启查询并发功能,大幅降低查询耗时。本文介绍如何使用analytic-search插件。
背景信息
analytic-search插件的主要功能以及各功能的适用场景和性能测试信息如下:
Kibana Discover查询加速功能
- 适用场景:日志检索场景。例如Kibana Discover中的无条件或单条件查询。
- 功能优势:通过优化索引合并策略及Date_histogram执行计划策略,在没有查询条件或者仅有一个查询条件时,大幅度降低查询耗时(日增量>1 TB数据量的场景下,分钟级查询可优化至5s内)。
- 性能测试信息:
- 测试环境
- 节点:10 * 16核64 GB。
- 数据集:某业务日志数据,一天600亿个文档,分成12个索引,每个索引60个分片。
- 开启Kibana Discover查询加速后,不同存储介质的性能表现如下:
查询条件 SSD云盘 高效云盘 OpenStore存储 没有查询条件 耗时降低96% 耗时降低95% 耗时降低94% 一个查询条件 耗时降低88% 耗时降低77% 耗时降低85% 多个查询条件 耗时降低8% 耗时降低11% 耗时降低14%
- 测试环境
查询并发功能
- 适用场景:查询QPS低,查询召回阶段耗时高,节点计算资源充足的场景。
- 功能优势:通过实现召回过程的并发,提高资源利用率,召回阶段平均耗时降低50%。
- 性能测试信息:
- 测试环境
- 节点:3 * 16核64 GB OpenStore冷热共享计算型。
- 数据集:某业务日志数据,单索引1.6 TB,60亿个文档,60个分片。
- 查询:3 TermQuery(and) + TimeRange + Sort + Datehistogram,单shard命中1000w(命中率10%)。
- 测试结果:
- 单shard查询耗时降低65%。
- 多shard查询耗时降低53%。
- 测试环境
前提条件
已创建阿里云Elasticsearch实例,版本为7.10.0且内核版本为1.7.0及以上。本文以阿里云Elasticsearch 7.10.0为例介绍,创建实例的方法请参见创建阿里云Elasticsearch实例。
说明 analytic-search插件默认已安装,不可卸载,您可在插件配置页面查看。
开启Kibana Discover查询加速
创建索引时,在settings和mappings中增加如下配置即可。
说明 以下示例仅供参考。实际使用时,您需要按照业务实际字段名称调整index.sort的时间戳字段名和排序。
{
"settings": {
"index.points.same_sort_order_as_index_sort": true,
"index.sort.field": [
"@timestamp"
],
"index.sort.order": [
"desc"
]
},
"mappings": {
"properties": {
"@timestamp": {
"type": "date"
}
}
}
}