codec-compression是阿里云Elasticsearch(简称ES)团队自主开发的索引压缩插件,支持brotli和zstd压缩算法,具有更高的索引压缩比,可以大幅降低索引的存储成本。

前提条件

您已完成以下操作:
  • 创建阿里云ES实例(6.7.0版本),详情请参见创建阿里云Elasticsearch实例
    注意 codec-compression插件目前只支持阿里云ES 6.7.0版本,因此请创建6.7.0版本的实例。
  • 安装codec-compression插件(新购实例默认已安装)。

    您可在插件配置页面查看是否已安装codec-compression插件,如果还未安装,请手动进行安装,安装方法请参见安装或卸载系统默认插件

背景信息

codec-compression插件支持brotli和zstd压缩算法,适用于写入量大、索引存储成本高的场景,例如日志场景、时序分析场景等,可以大大降低索引的存储成本。性能测试信息如下:
  • 测试环境
    • 机器配置:数据节点16核64G*3 + 2TB SSD云盘。
    • 数据集:官方esrally自带的nyc_taixs(74GB)。
    • 索引配置:都使用默认配置,写入完成后都可以进行force merge
  • 测试结果
    压缩算法 索引大小(GB) 写入TPS(doc/s)
    ES默认压缩算法(LZ4) 35.5 202682
    best_compression(DEFLATE) 26.4 181686
    brotli 24.4 182593
    zstd 24.6 181393
  • 结论

    codec-compression插件使用的brotli和zstd压缩算法,与默认压缩算法(LZ4)相比,写入性能下降10%,压缩率提升45%;与原生best_compression(DEFLATE)相比,写入性能不变,压缩率提升8%。

操作步骤

  1. 登录Kibana控制台。
    登录控制台的具体步骤请参见登录Kibana控制台
  2. 在左侧导航栏,单击Dev Tools(开发工具)。
  3. Console中,分别执行如下命令,为索引指定不同的压缩算法。
    • brotli压缩算法
      PUT index-1
      {
          "settings": {
              "index": {
                  "codec": "brotli"
              }
          }
      }
    • zstd压缩算法
      PUT index-1
      {
          "settings": {
              "index": {
                  "codec": "zstd"
              }
          }
      }