白话Elasticsearch50-深入聚合数据分析之doc values机制
生活随笔
收集整理的這篇文章主要介紹了
白话Elasticsearch50-深入聚合数据分析之doc values机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 概述
- 官網
- doc value原理
- (1)index-time生成
- (2)核心原理與倒排索引類似
- (3)性能問題:給jvm更少內存,64g服務器,給jvm最多16g
- column壓縮
- (1)所有值相同,直接保留單值
- (2)少于256個值,使用table encoding模式
- (3)大于256個值,看有沒有最大公約數,有就除以最大公約數,然后保留這個最大公約數
- disable doc value
概述
繼續跟中華石杉老師學習ES,第51篇
課程地址: https://www.roncoo.com/view/55
官網
doc_values: 戳這里
doc value原理
(1)index-time生成
PUT/POST的時候,就會生成doc value數據,也就是正排索引
(2)核心原理與倒排索引類似
正排索引,也會寫入磁盤文件中,然后呢,os cache先進行緩存,以提升訪問doc value正排索引的性能
如果os cache內存大小不足夠放得下整個正排索引,doc value,就會將doc value的數據寫入磁盤文件中。
(3)性能問題:給jvm更少內存,64g服務器,給jvm最多16g
es官方是建議,es大量是基于os cache來進行緩存和提升性能的,不建議用jvm內存來進行緩存,那樣會導致一定的gc開銷和oom問題。
給jvm更少的內存,給os cache更大的內存。
舉個例子:64g服務器,給jvm最多16g,剩下的幾十個g的內存給os cache
os cache可以提升doc value和倒排索引的緩存和查詢效率
column壓縮
(1)所有值相同,直接保留單值
舉個例子
doc1: 100 doc2: 100 doc3: 200合并相同值,100,doc1和doc2都保留一個100的標識即可
(2)少于256個值,使用table encoding模式
了解即可, table encoding 一種壓縮方式
(3)大于256個值,看有沒有最大公約數,有就除以最大公約數,然后保留這個最大公約數
舉個例子
doc1: 36 doc2: 24doc1: 最大公約數6, doc2: 最大公約數4 -----> 保留一個最大公約數6的標識,6也保存起來
disable doc value
如果的確不需要doc value,那么可以禁用,減少磁盤空間占用
PUT my_index {"mappings": {"my_type": {"properties": {"my_field": {"type": "keyword""doc_values": false }}}} }總結
以上是生活随笔為你收集整理的白话Elasticsearch50-深入聚合数据分析之doc values机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白话Elasticsearch50-深入
- 下一篇: 白话Elasticsearch51-深入