跳到主要内容
版本:Nightly

GreptimeDB 企业版 26.05

26.05.1​

我们很高兴地宣布 GreptimeDB 企业版 26.05.1 发布。这是 26.05 系列的一次更新,带来了多项重要的运维能力:定时 Compaction、Apache Iceberg 数据湖支持的早期预览、多维度 Region 均衡以及更细粒度的访问控制。此版本同时将底层的 GreptimeDB 引擎升级到 v1.2。

本版本基于 GreptimeDB 开源引擎 v1.2 构建。

特性亮点​

定时 Compaction(Compaction Cronjob)​

Compaction 现在可以按照由 Metasrv 管理的调度计划定时执行,而不再只能按需手动触发。新的 compaction cronjob 会在所有 Region 中解析 compaction 目标,提交并跟踪任务,将状态持久化到 KV 存储中,并自动取消过期的仍在运行的任务。同时还提供了一组管理用的 HTTP 接口,方便运维人员查看和控制定时 compaction。这样一来,就可以按可预期的节奏维护存储健康状态,减少人工介入。

Apache Iceberg 数据湖(早期预览)​

本版本引入了 Apache Iceberg 数据湖支持的早期预览,开始覆盖完整的表生命周期:

  • 支持 Iceberg 表的 repartition、truncate 和 drop,并管理完整的表状态生命周期。
  • 支持**批量写入(bulk ingestion)**和 region 编辑钩子,并提供远程 compaction 钩子,使 Iceberg 数据可以通过企业版的 compaction 管道进行压缩。
  • Iceberg 表支持直方图(histogram)数据类型以及 Metric 引擎物理表。通过 Iceberg 导出的表既包括默认的 Mito 引擎表,也包括 Metric 引擎的物理表;逻辑(logical)Metric 表不会通过 catalog 暴露,请直接查询对应的物理表。

多维度 Region 均衡​

Region 均衡不再只考虑写入负载。均衡器会记录每个 Region 的查询 CPU 速率历史,并以独立的准入规则评估读负载的稳定性,同时支持多维度的均衡状态。其效果是在读写混合负载以及计划内维护期间,Region 的分布更加稳定。

更细粒度的访问控制​

企业版 RBAC 新增了多项控制能力,授权更严格、更具表达力:

  • 支持为自定义角色指定具名权限动作(named permission actions)。
  • 支持基于正则表达式的数据库 ACL,并在创建数据库时自动为创建者授予该数据库的 ACL。
  • 提供可选的查询防护(query guard),可以对所有用户禁用 DROP TABLE / DROP DATABASE,防止误执行破坏性操作。

表的 Soft Drop​

DROP TABLE 可以配置为 soft drop(需显式开启):表的数据将被保留,并可通过 UNDROP TABLE 恢复,而不是立即销毁。Soft-dropped 的表在被恢复(undrop)或清除(purge)之前,会持续占用存储空间。

运维改进​

  • 为内存压力下的大型查询提供可配置的查询 spill。需要说明的是,查询 spill 并非企业版独有功能——它也已在 GreptimeDB 开源引擎中开源(参见 v1.3.0-alpha.1 发行说明)。
  • 按组件设置最大 CPU 的选项。
  • 企业版 Flight schema 默认对齐,保证通信格式一致;Flight 批量写入支持自动建表。
  • 提供用于部署 GreptimeDB 及监控组件的 Ansible playbook。

来自 GreptimeDB v1.2 引擎的更新​

  • JSON2——改进的 JSON 数据类型,为列式存储优化。
  • 支持带时间范围的手动 compaction,与新的定时 compaction 互为补充。
  • 生命周期事件记录——为数据库/表/视图 DDL、Flow DDL、repartition、GC 和 WAL 清理记录结构化的事件过程,大幅提升集群操作的可观测性。可在企业版 Dashboard 界面中查看。
  • 性能:采用字典编码的 series key 提升查询性能;range 查询的输入投影裁剪;compaction picker 改为异步执行,不再阻塞 region worker。

重要缺陷修复​

企业版:

  • 批量写入现在会正确校验 JSONB 列的写入数据类型,避免写入非法数据。
  • 修正了 v1.2 引擎上的 ingestion merge 批大小。
  • 正确处理远程动态过滤的开关;规范了 region 均衡器稳定性相关的选项名。

来自 GreptimeDB v1.2 引擎的修复:

  • PromQL 的 or 查询在操作数为空时不再返回错误结果。
  • MySQL 协议现在对无法表示的时间戳直接报错(fail closed),而不是静默地错误处理。
  • Prometheus remote-write 超时现在是可重试的,提升了瞬时故障下数据写入的韧性。
  • 索引构建可靠性:异步索引构建以 schema generation 进行隔离,并按条件发布,修复了索引构建与 schema 变更并发执行时可能出现的竞争问题。
  • 升级时保持对旧版 WAL 选项的兼容,已有配置可以继续工作。

安全更新​

  • 独立的 HTTP API 服务端口——HTTP API 现在运行在专用端口上,将 API 流量与其他服务流量隔离。
  • SQL 本地文件系统访问沙箱化——SQL 执行被沙箱化,无法再读取本地文件系统,封堵了本地文件访问漏洞。
  • quinn-proto: 0.11.14 → 0.11.16 (依赖更新)