zoukankan      html  css  js  c++  java
  • Elasticsearch 5.0 磁盘空间节省策略的认识

    前言:本文是当时QQ群员讨论磁盘空间如何优化,我搜了下类似的文章,结合官方文档做了一些总结

    参考文章1

    参考文章2

    如果你有疑问,可以联系我参与讨论,或者去原文查看。

    NOTE: 磁盘空间节省问题,是得失问题。要省出磁盘空间,必会影响某些功能,如果被影响的功能你不需要,你可以采用相应的磁盘节省策略。

    TIP: 磁盘空间节省需要谨慎,一定要看清楚策略的影响。

    一、影响因素

    1. replication

      副本的产生是为了高可用,作为数据的备份,在某些节点挂掉后,保障数据不丢失。从原则上来说,副本数据和数据本身并无区别。因此副本数量,将会成倍数地扩大索引的大小

      修改副本大小的命令:

      curl -XPUT 'localhost:9200/my_index/_settings' -d '
      {
      "index" : {
          "number_of_replicas" : 0
          }
      }'        
      

      默认副本数为1,早期版本2.3支持在elasticsearch.yml中添加index.number_of_replicas: 0这种形式来修改。5.0版本中不在支持在elasticsearch.yml中修改 index settings 层面的配置

      影响: 副本设置为0,虽然会节省一半的磁盘空间,es集群不再高可用,节点一挂,数据就丢。

    2. _source

      Elasticsearch保留每个传入文档的原始数据JSON的副本。这个_source字段在我们重新结构化原始数据、高亮搜索结果非常有用。但是也占了磁盘空间。可以被disable掉以节省磁盘空间

      注意这个原始数据json的副本和上文的replication是两码事,是下文{ }中的内容

      PUT my_index/user/1 
      {
       "first_name":    "John",
       "last_name":     "Smith",
       "date_of_birth": "1970-10-24"
      }
      

      影响:你可以查看我单独写的_source字段认识和影响

      单个字段也可以选择是否store,也会影响磁盘空间。我认为单个字段store和_source是个体和整体的关系,所以我写在一个段落里面?我此处存疑

      单个字段store

    3. _all

      _all字段维护这一个大字符串数组,包含了所有的term。方便我们在不知道field的情况下,也能搜索出term value。大字符串数组也会占用磁盘空间,也是可以被disable掉的

      影响: 你可以查看我单独写的_all字段认识和影响

    4. doc_value
      doc values是elasticsearch为了减小 heap memory 使用率采用的一种机制。在排序和聚合时能节省heap,但它本身会占用磁盘空间

      影响:你可以查看我单独写的doc_value认识和影响

    5. 分词

      影响:对字符串进行分词也会对磁盘空间产生影响,一般情况下不分词会节省空间

      官网分词器介绍

    二、影响程度

    本章节的数据来源于参考文章2

    测试数据为一个67644119 byte log file

    71.212.224.97 - - [28/May/2014:16:27:35 -0500] "GET /images/web/2009/banner.png 
    HTTP/1.1" 200 52315 "http://www.semicomplete.com/projects/xdotool/" 
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.36 
    (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36"
    

    测试数据大小为67644119

    test number string field _all doc value index size Expansion ratio (index size / raw size)
    0 x x x 67644119 1
    1 analyzed and not_analyzed enabled enabled 94633818 1.399
    2 analyzed and not_analyzed disabled enabled 75648416 1.118
    3 not_analyzed disabled enabled 63079805 0.933
    4 analyzed and not_analyzed enabled disabled 80608354 1.192
    5 analyzed and not_analyzed disabled disabled 61680474 0.912
    3 not_analyzed disabled disabled 48432487 0.716
  • 相关阅读:
    POJ 1325 Machine Schedule(待整理)
    URAL 1109 Conference
    结构体排序初始化最傻最傻的错误
    Radar Installation
    关于Eclipse中插件的安装和文件导出
    贪心算法概述
    今年暑假不AC(水题)
    100197C
    100722C
    树状数组
  • 原文地址:https://www.cnblogs.com/yangwenbo214/p/6277728.html
Copyright © 2011-2022 走看看