@Greptime: Your logs keep growing. Query traffic comes in peaks. Why scale storage and compute together? In 3 minutes: how Greptim…
摘要
GreptimeDB 介绍其在分布式部署中通过共享对象存储实现计算与存储分离的架构,并说明重分区时复用 SST 数据文件以避免整体搬迁历史数据,同时对比了与 ClickHouse 的差异。
查看缓存全文
缓存时间: 2026/10/30 15:21
Your logs keep growing. Query traffic comes in peaks. Why scale storage and compute together?
In 3 minutes: how GreptimeDB separates them with shared object storage in distributed deployments, and reuses data files during repartitioning.
https://t.co/3hCde9iAY8
TL;DR:日志持续增长、查询流量出现峰值时,无需让计算与存储同步扩容——GreptimeDB 通过计算与持久存储分离,让你按查询负载扩计算、按保留需求扩存储。
日志在增长,查询有峰值:为什么要解耦
你的日志在不断增长,而查询流量存在峰值。关键问题是:增加计算资源,是否意味着要把所有历史数据迁移到新机器?
GreptimeDB 的答案是:把计算与持久存储分离。这样你可以根据查询流量调整计算规模,根据保留需求调整存储规模,而不是让两者作为一个整体同步增长。
GreptimeDB 是什么
GreptimeDB 是一个开源可观测性数据库。指标(Metrics)、日志(Logs)和链路追踪(Traces)共享同一个列式引擎,但可以使用独立的表、索引和保留策略。
这种设计的好处是:三种信号共用一个数据库后端,而无需将它们强制归入同一种数据模型。
用 SQL 关联三种信号
当标识符对齐时,你可以用 SQL 查询并关联这些信号——指标、日志、链路追踪可以放在同一个查询里做关联分析。
写入路径与查询能力
数据写入支持:
- Prometheus remote write
- 通过 HTTP 的 OpenTelemetry
- Loki push 端点
这让你在沿用熟悉的采集器的同时,用 SQL 分析已存储的信号,并用 PromQL 查询指标。
需要注意边界:写入兼容性不等于完整的功能对齐——支持 Loki push 并不意味着支持 LogQL。
架构:共享对象存储下的分工
在使用共享对象存储的分布式部署中,各组件职责如下:
| 组件 | 职责 |
|---|---|
| 持久化文件 | 存放在共享存储层 |
| 数据节点 | 负责读、写和查询;本地磁盘可用于缓存 |
| 前端 | 负责数据写入和查询规划 |
| Meta SRV | 管理元数据和区域(Region)路由 |
热点分区:引用变更而非数据搬迁
区域(Region)是逻辑数据分片,其清单(Manifest)记录了对持久化文件的引用。
在重新分区过程中,规则、文件引用和路由都会发生变化。关键点在于:已有的 SST 文件可以被复用,而不是在节点之间整体复制。这样就避免了仅仅为了调整分区边界而搬迁所有旧文件。
注意:文件本身保持原位,只有引用发生了变化。
这并非零 I/O
刷写(Flush)和压实(Compaction)仍可能产生写入。但这让你可以在不重建整张表的情况下调整分区布局。
手动重新分区的前提条件
手动重新分区需要:
- 分布式集群
- 共享对象存储
- 在 Meta SRV 和每个数据节点上启用垃圾回收(GC)
此外,切换期间写入可能短暂受到影响,因此客户端需要具备重试机制。
企业版功能边界
自动重新分区和自动区域均衡属于企业版功能,受其配置和触发条件限制。
与 ClickHouse 的对比
ClickHouse 提供实时分析以及 ClickStack 可观测性平台,ClickHouse Cloud 同样实现了计算与存储分离。
GreptimeDB 的差异点在于遥测原生的数据库基础:
- 原生写入、SQL 与 PromQL
- 为不同信号模型提供统一后端
- 共享对象存储和手动重新分区包含在开源核心中,可在自有基础设施上运行
这种组合让你能够围绕熟悉的采集路径构建,关联已存储的信号,并分别规划计算能力和数据保留策略。
值得验证的优势
综上,值得验证的优势很清晰:
- 统一后端:支持不同信号模型
- 熟悉的采集路径:Prometheus remote write、OpenTelemetry、Loki push
- 独立于数据保留增长的计算能力
请结合你的写入速率、保留周期和典型查询来验证这一组合。
文档和代码参考见视频简介。接下来,作者将把一套故障排查工作流应用到这个架构中。
Source: @Greptime — 计算与存储分离如何避免为扩容迁移历史数据
相似文章
@Greptime: 我们更新了对GreptimeDB内部存储引擎Mito2的深入解析,涵盖LSM-tree写入路径、列式Parquet SST等……
GreptimeDB的Mito2存储引擎采用LSM-tree设计,结合列式Parquet SST、三级扫描剪枝以及TWCS压缩。该博客文章对其架构进行了全面解析。
@Greptime: GreptimeDB 六月的大部分工作归结为一个想法:如果过滤器无法到达数据,那么它就没用。在分布式查询中…
GreptimeDB 通过启用远程动态过滤器在运行时下推到 datanode 扫描,并优化优化器使其在 MergeScan 包装远程计划之前运行,从而确保过滤器到达数据,提升了分布式查询性能。JSON v2 列现在支持类型提示。
@Greptime: 重新分区大表通常是一个迁移项目:新建表、双写、回填TB级历史数据、切换。Gr…
GreptimeDB v1.1 通过单个 ALTER TABLE 语句引入了对现有表的在线重新分区,消除了数据迁移、双写或应用程序变更的需求。它利用共享对象存储和逻辑分片来更新清单和路由,而无需在节点之间移动数据。
@Greptime:更多生产部署正在重塑 GreptimeDB 的路线图。我们正投入更多精力于稳定性、性能、安全……
本文回顾了 GreptimeDB 2026 路线图的年中进展,重点介绍了已发布的功能,如在线重新分区和 JSON2 类型,并解释了由于生产部署导致的优先级变化。
@Greptime: GreptimeDB v1.1.0 发布,PromQL rate/increase 查询速度提升高达97%,整体查询时间降低20-40%,TS… 上速度提升高达4.5倍
GreptimeDB v1.1.0 已发布,提供高达97%的PromQL查询加速,整体查询时间降低20-40%,在TSBS扫描密集型查询上性能提升高达4.5倍,并支持对现有表进行在线重分区。