欢迎参与 8 月 1 日中午 11 点的线上分享,了解 GreptimeDB 联合处理指标和日志的最新方案! 👉🏻 点击加入

Skip to content
On this page
产品
2025-8-12

GreptimeDB v0.16 重磅发布:PromQL 与可观测性功能增强

GreptimeDB v0.16 重点关注系统灵活性、性能优化和可观测性提升,在数据处理、Pipeline 管理和运维能力方面实现了显著突破。

我们很高兴地宣布:GreptimeDB v0.16 正式发布!本次 v0.16 版本更新聚焦于 PromQL 相关功能和数据库自身可观测性的全面增强,为用户带来更强大、灵活的时序数据处理能力。

版本开发概览

从 v0.15 到 v0.16,Greptime 团队和社区贡献者们携手取得了诸多重大突破和进展:

开发数据统计

  • 60 个提交成功合并至主干;
  • 19 位独立贡献者参与本次版本开发;
  • 其中有 2 位独立贡献者首次提交代码。

主要改进分布

  • 36 项功能增强:包括 PromQL 集成,TQL CTE 支持和可观测性增强等关键能力;
  • 12 项错误修复:持续提升系统稳定性和健壮性;
  • 5 项代码重构:优化代码架构和可维护性;
  • 1 项性能优化:提升系统执行效率;
  • 6 项杂项任务:包括依赖升级、文档完善等全方位的细节打磨。

👏 特别感谢 19 位独立贡献者的专业付出,再次热烈欢迎 2 位新加入的社区成员! 我们也诚邀更多对可观测数据库/技术感兴趣的开发者,一同参与 Greptime 社区的持续建设。

功能亮点

Dashboard v0.10.6 发布

  • 侧边栏控制:支持侧边栏的显示切换与宽度调整,用户个性化偏好设置将被持久化保存;
  • 数据视图全屏模式:查询结果可全屏显示,更沉浸的数据分析体验;
  • 日志/追踪视图重构:日志和追踪的查看功能全面升级,用户界面和性能显著优化。

PromQL 功能增强

新增 absent() 及其他 scalar 函数,进一步提升与 OLTP 指标的兼容性。

可观测性能力提升

新增 Panic 日志记录机制,HTTP API 级 Heap Profiling,以及更详细的 EXPLAIN ANALYZE VERBOSE 输出:

  • Heap Profiling 通过配置文件中的 memory.enable_heap_profiling 控制,默认开启;
  • EXPLAIN ANALYZE VERBOSE 增强细节:
    • 在 MergeScanExec 中添加了 Region level 的指标跟踪(行数、批次数、处理字节数);
    • Verbose 模式下,扫描器支持打印更详细的日志;
    • 更新了 RegionScanExec 以支持 Verbose 标志。

CREATE DATABASE 支持 WITH 关键字配置

类似 CREATE TABLE,可用 WITH 关键字灵活设置各类创建选项。

例如,下面 SQL 示例创建了一个带有多个选项的数据库,包括仅追加模式和自定义内存表类型:

sql
CREATE DATABASE test WITH (
  ttl='30d',
  'memtable.type'='partition_tree',
  'append_mode'='true'
);

目前数据库支持的配置选项如下:

  • ttl:所有表的数据存活时间(不能设置为 instant);
  • memtable.type:内存表类型(time_seriespartition_tree);
  • append_mode:数据库中的表是否为仅追加模式(true/false);
  • merge_mode:合并重复行的策略(last_rowlast_non_null);
  • skip_wal:是否为数据库中的表禁用预写日志(true/false);
  • compaction.*:压缩相关设置(如 compaction.typecompaction.twcs.time_window)。

ALTER TABLE 命令增强:支持设置和取消列默认值

值得一提的是,此项 ALTER TABLE 命令的增强功能由 GreptimeDB 社区的独立贡献者 @linyihai 完整开发并贡献!具体能力包括:

  • 为现有列设置默认值:
java
ALTER TABLE monitor MODIFY COLUMN load_15 SET DEFAULT 0.0;
  • 设置字符串默认值:
java
ALTER TABLE monitor MODIFY COLUMN `status` SET DEFAULT 'active';

插入新行且未为该列赋值时,将采用默认值填充。

  • 移除列的默认值:
java
ALTER TABLE monitor MODIFY COLUMN load_15 DROP DEFAULT;

删除默认值后,该列将使用 NULL 作为默认值;数据库只允许对可为空的列删除默认值。

升级提示

兼容性说明

  • v0.16 与 v0.15 数据和配置完全兼容;

  • 建议 v0.15 用户直接升级。

升级操作

  • 详细升级步骤请参考升级指南;

  • 更低版本升级请参考官方文档对应版本的升级文档。

未来规划与展望

正如 v0.15 版发布时所述,我们将继续专注于:

  • 现有功能打磨:优化用户体验;

  • 性能优化:提升系统效率;

  • 可靠性和稳定性完善:构建企业级产品标准。

上述工作将为 GreptimeDB v1.0 的正式发布打下坚实基础。衷心感谢团队、社区贡献者及布道师的辛勤付出!我们期待更多开发者加入 GreptimeDB 社区,携手推动可观测数据库技术的持续创新与发展。

加入我们的社区

获取 Greptime 最新更新,并与其他用户讨论。