前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch 8.x 存储有无压缩?能压缩到多少?

Elasticsearch 8.x 存储有无压缩?能压缩到多少?

作者头像
铭毅天下
发布2024-07-15 12:37:39
880
发布2024-07-15 12:37:39
举报
文章被收录于专栏:铭毅天下

1、认知前提

Elasticsearch 支持压缩,压缩方式默认为:LZ4 压缩算法。

具体参见:

The default value compresses stored data with LZ4 compression, but this can be set to best_compression which uses DEFLATE for a higher compression ratio, at the expense of slower stored fields performance.

中文翻译为:

默认值使用 LZ4 压缩压缩存储的数据,但这可以设置为 best_compression,它使用 DEFLATE 来获得更高的压缩率,但会降低存储字段的性能。

https://www.elastic.co/guide/en/elasticsearch/reference/8.14/index-modules.html#index-codec

这里要引申一下,这属于:静态配置,类似:number_of_shard 主分片数,不允许动态修改,除非重建索引。

2、动手验证一下压缩比到底能压缩多少?

2.1 样例数据准备

以 kibana_sample_flights 飞行数据为例进行验证。

我们直接借助 elasticdump 进行导出,以json 存储,作为原始数据。

导出实现参考:

代码语言:javascript
复制
NODE_TLS_REJECT_UNAUTHORIZED=0 elasticdump \

  --input=https://elastic:@172.121.10.114:9200/kibana_sample_data_flights\

  --output=/www/elasticsearch_0801_20220713/test/flights.json \

  --type=data \

  --input-ca=/www/elasticsearch_0801_20220713/elasticsearch-8.1.0/config/certs/http_ca.crt

导出成功截图:

所占存储空间大小:

2.2 Elasticsearch 默认 LZ4 压缩算法的存储大小

2.3 如果修改为:best_compression压缩后,所占据存储空间大小如下

需要修改索引:

代码语言:javascript
复制
PUT kibana_sample_data_flights_ext
{
  "settings": {
    "index.codec": "best_compression"

  },

  "mappings": {

    "properties": {
......省略部分映射描述......

然后,reindex 迁移数据。

代码语言:javascript
复制
POST _reindex
{
  "source": {
    "index": "kibana_sample_data_flights"
  },
  "dest": {
    "index": "kibana_sample_data_flights_ext"
  }
}

3、初步结论

1)默认压缩LZ4 算法能压缩到一半!54.77%,能节省一半的存储!

新压缩算法 best_compression 压缩后,压缩为原始空间的:35%,也就是能省65%的空间。

压缩比要求高推荐使用:best_compression

2)如果建模上(_source, store, 字段类型选型,doc_values, index 等参数)再优化,理论上还能压缩的更低一些!!


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 铭毅天下Elasticsearch 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、认知前提
  • 2、动手验证一下压缩比到底能压缩多少?
    • 2.1 样例数据准备
      • 2.2 Elasticsearch 默认 LZ4 压缩算法的存储大小
        • 2.3 如果修改为:best_compression压缩后,所占据存储空间大小如下
        • 3、初步结论
        相关产品与服务
        对象存储
        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档