首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >thanos的数据压缩组件

thanos的数据压缩组件

原创
作者头像
大侠之运维
发布2025-09-25 15:35:22
发布2025-09-25 15:35:22
650
举报

如果我们面对一年的数据量,想要快速的查找,会非常耗费时间。

这个问题可以通过thanos的Compactor组件来解决

在 Thanos 的架构中,Compactor 是一个 后台异步服务,主要负责对对象存储(例如 S3、GCS、OSS、Ceph 等)里的时序数据块进行处理和优化。它的核心功能包括:

  1. 数据块压缩(Compaction)
  • Prometheus 和 Thanos Sidecar 都会将 TSDB 数据按时间切分成固定大小的 Block(默认 2 小时)。
  • 长时间运行后会产生大量小的 block,查询性能会下降。
  • Compactor 会周期性地把这些小 block 合并成更大的 block(最多 36 小时/72 小时/…),以减少文件数量并提升查询效率。
  1. 数据下采样(Downsampling)
  • 为了加快长时间跨度的查询,Compactor 会对历史数据做下采样,生成低分辨率的聚合数据:

5 分钟步长

1 小时步长

  • 这样在查询「几个月甚至几年的监控数据」时,可以直接读取下采样结果,而不用扫描所有原始数据。
  1. 数据保留与清理(Retention / Garbage Collection)
  • 根据用户配置的保留策略,Compactor 会自动删除超过保留时间的数据块。
  • 还会清理无效、重复、损坏的 block 元数据,保证对象存储的整洁。

启动一个thanos的compact组件

代码语言:bash
复制
docker run -d --net=host --rm \
 -v /root/editor/bucket_storage.yaml:/etc/thanos/minio-bucket.yaml \
    --name thanos-compact \
    quay.io/thanos/thanos:v0.28.0 \
    compact \
    --wait --wait-interval 30s \
    --consistency-delay 0s \
    --objstore.config-file /etc/thanos/minio-bucket.yaml \
    --http-address 0.0.0.0:19095

它同样提供了ui可以查看,你可以查看具体某个block的信息

其它

  • 无状态:Compactor 可以随时停止/重启,因为它只是对对象存储中的数据进行操作。
  • 单实例运行:通常 同一个 bucket 只允许跑一个 Compactor 实例,否则会出现冲突(多个进程同时 compact 相同 block)。
  • 资源消耗:Compactor 需要比较多的 CPU 和内存,因为合并和下采样需要拉取数据块到本地计算。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启动一个thanos的compact组件
  • 其它
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档