白话Elasticsearch50-深入聚合数据分析之doc values机制

举报
小工匠 发表于 2021/09/10 22:39:26 2021/09/10
【摘要】 文章目录 概述官网doc value原理(1)index-time生成(2)核心原理与倒排索引类似(3)性能问题:给jvm更少内存,64g服务器,给jvm最多16g column压缩(1)所有...


在这里插入图片描述


概述

继续跟中华石杉老师学习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


  
 
  • 1
  • 2
  • 3
  • 4
  • 5

合并相同值,100,doc1和doc2都保留一个100的标识即可


(2)少于256个值,使用table encoding模式

了解即可, table encoding 一种压缩方式


(3)大于256个值,看有没有最大公约数,有就除以最大公约数,然后保留这个最大公约数

举个例子

doc1: 36
doc2: 24

  
 
  • 1
  • 2

doc1: 最大公约数6, doc2: 最大公约数4 -----> 保留一个最大公约数6的标识,6也保存起来


disable doc value

如果的确不需要doc value,那么可以禁用,减少磁盘空间占用

PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "my_field": {
          "type":       "keyword"
          "doc_values": false 
        }
      }
    }
  }
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。

原文链接:artisan.blog.csdn.net/article/details/100128943

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。