analytic-search插件是阿里云Elasticsearch團隊自主開發(fā)的日志場景檢索插件。通過該插件,您可以實現(xiàn)Kibana Discover查詢加速,支持通過開啟時間字段index.sort,在特定查詢條件下,降低查詢耗時;支持開啟查詢并發(fā)功能,大幅降低查詢耗時。本文介紹如何使用analytic-search插件。
背景信息
analytic-search插件的主要功能以及各功能的適用場景和性能測試信息如下:
Kibana Discover查詢加速功能
- 適用場景:日志檢索場景。例如Kibana Discover中的無條件或單條件查詢。
- 功能優(yōu)勢:通過優(yōu)化索引合并策略及Date_histogram執(zhí)行計劃策略,在沒有查詢條件或者僅有一個查詢條件時,大幅度降低查詢耗時(日增量>1 TB數(shù)據(jù)量的場景下,分鐘級查詢可優(yōu)化至5s內(nèi))。
- 性能測試信息:
- 測試環(huán)境
- 節(jié)點:10 * 16核64 GB。
- 數(shù)據(jù)集:某業(yè)務(wù)日志數(shù)據(jù),一天600億個文檔,分成12個索引,每個索引60個分片。
- 開啟Kibana Discover查詢加速后,不同存儲介質(zhì)的性能表現(xiàn)如下:
查詢條件 SSD云盤 高效云盤 OpenStore存儲 沒有查詢條件 耗時降低96% 耗時降低95% 耗時降低94% 一個查詢條件 耗時降低88% 耗時降低77% 耗時降低85% 多個查詢條件 耗時降低8% 耗時降低11% 耗時降低14%
- 測試環(huán)境
查詢并發(fā)功能
- 適用場景:查詢QPS低,查詢召回階段耗時高,節(jié)點計算資源充足的場景。
- 功能優(yōu)勢:通過實現(xiàn)召回過程的并發(fā),提高資源利用率,召回階段平均耗時降低50%。
- 性能測試信息:
- 測試環(huán)境
- 節(jié)點:3 * 16核64 GB OpenStore冷熱共享計算型。
- 數(shù)據(jù)集:某業(yè)務(wù)日志數(shù)據(jù),單索引1.6 TB,60億個文檔,60個分片。
- 查詢:3 TermQuery(and) + TimeRange + Sort + Datehistogram,單shard命中1000w(命中率10%)。
- 測試結(jié)果:
- 單shard查詢耗時降低65%。
- 多shard查詢耗時降低53%。
- 測試環(huán)境
前提條件
已創(chuàng)建阿里云Elasticsearch實例,版本為7.10.0且內(nèi)核版本為1.7.0及以上。本文以阿里云Elasticsearch 7.10.0為例介紹,創(chuàng)建實例的方法請參見創(chuàng)建阿里云Elasticsearch實例。
說明 analytic-search插件默認(rèn)已安裝,不可卸載,您可在插件配置頁面查看。
開啟Kibana Discover查詢加速
創(chuàng)建索引時,在settings和mappings中增加如下配置即可。
說明 以下示例僅供參考。實際使用時,您需要按照業(yè)務(wù)實際字段名稱調(diào)整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"
}
}
}
}