中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Elasticsearch如何實現聚合優化

發布時間:2021-12-16 10:15:20 來源:億速云 閱讀:403 作者:小新 欄目:大數據

這篇文章主要為大家展示了“Elasticsearch如何實現聚合優化”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Elasticsearch如何實現聚合優化”這篇文章吧。

1、聚合為什么慢?

大多數時候對單個字段的聚合查詢還是非常快的, 但是當需要同時聚合多個字段時,就可能會產生大量的分組,最終結果就是占用 Elasticsearch大量內存,從而導致 OOM 的情況發生。 
實踐應用發現,以下情況都會比較慢: 

  • 1)待聚合文檔數比較多(千萬、億、十億甚至更多); 

  • 2)聚合條件比較復雜(多重條件聚合); 

  • 3)全量聚合(翻頁的場景用)。

2、聚合優化方案探討

優化方案一:默認深度優先聚合改為廣度優先聚合。

"collect_mode" : "breadth_first"
  • depth_first 直接進行子聚合的計算

  • breadth_first 先計算出當前聚合的結果,針對這個結果在對子聚合進行計算。

優化方案二: 每一層terms aggregation內部加一個 “execution_hint”: “map”。

 "execution_hint": "map"

國內解釋最詳細的版本來自Wood大叔: 
Elasticsearch如何實現聚合優化
Map方式的結論可簡要概括如下: 
1)查詢結果直接放入內存中構建map,在查詢結果集小的場景下,速度極快; 
2)但如果待結果集合很大的情況,map方式不一定也快。

優化方案N

待進一步深入實踐......

3、做個實驗

聚合的平衡點是多少呢?

3.1 實驗場景

場景一:在近億的document中,檢索滿足給定條件的數據,并對聚合結果全量聚合。 
場景二:在百萬級別的document中,全量聚合。 
場景三:在近億級別的document中,全量聚合。

3.2 聚合操作

POST index_*/_search   

{

  "sort": [

    {

      "nrply": "desc"

    }

  ],

  "aggs": {

    "count_over_sin": {

      "terms": {

        "field": "sin_id",

   "execution_hint": "map",

        "size": 1000,

        "collect_mode": "breadth_first"

      }

    }


  },

  "size":0

}

1)修改索引名稱,以獲取更多的文檔。 
2)map模式添加 “execution_hint”: “map”,默認是global_ordinals模式。 
3)”size”: 1000,設定聚合取值。

3.3 聚合結果

Elasticsearch如何實現聚合優化

以上是“Elasticsearch如何實現聚合優化”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九江县| 庆云县| 郧西县| 大同县| 鄂伦春自治旗| 永福县| 潢川县| 苍南县| 河间市| 三都| 阿图什市| 绵竹市| 奎屯市| 永州市| 高邑县| 于都县| 西安市| 屏边| 衢州市| 壤塘县| 江达县| 新民市| 诸暨市| 九江市| 宁国市| 九台市| 辉南县| 晋江市| 沁水县| 盐池县| 梅州市| 吉林市| 同德县| 成武县| 四子王旗| 特克斯县| 罗田县| 乌兰察布市| 三原县| 桐柏县| 丁青县|