近日,TDengine 3.0.2.0 正式发布了。这是自今年 8 月份 TDengine 3.0 发布以来的第一个重要改进版本。
TDengine 3.0 带来了几大核心特性,包括云原生架构、流式计算,还增强了数据订阅功能;更重要的是,3.0 系列版本开始提供了全平台支持,服务器/客户端均已支持 Linux、Windows 和 MacOS。
TDengine 3.0 是一款真正的云原生时序数据库(Time Series Database,TSDB)。它有几大亮点:
- 可以支持 10 亿个设备、100 个节点
- 支持存储与计算分离,引入了计算节点(QNode),并重构了整个计算引擎
- 完善并优化了对消息队列、流式计算和缓存的支持,引入事件驱动的流式计算
- 解决了困扰时序数据库的高基数问题
3.0 发布之后,大量用户下载试用,也提供了很多有价值的反馈。最近一段时间,研发团队引入各类内部优化共 455 个,包括提升系统稳定性,改进写入和查询性能,以及优化内存使用效率。为了保证系统质量,研发团队还开发了数千个功能、性能和稳定性测试用例。
经过诸多优化之后,TDengine 时序数据库的性能也得到了充分的提升和验证。
下面我们看一下到 3.0.2.0 版本为止,TDengine 3.0 提供的主要特性和增强:
- 支持事件驱动的流式计算
支持用 SQL 语法创建流式计算,方便用户轻松实现较为复杂的业务逻辑
CREATE STREAM [IF NOT EXISTS] stream_name [stream_options] INTO stb_name AS subquery
stream_options: {
TRIGGER [AT_ONCE | WINDOW_CLOSE | MAX_DELAY time]
WATERMARK time
IGNORE EXPIRED [0 | 1]
}
- 为支持数据订阅,提供了一个全新的消息队列
基于 WAL 重新设计了数据订阅功能,具体应用可参考相关文档
- 支持新的 SQL 查询语法,去掉了对一些查询语法的限制
具体变更可参考相关文档
- 采用了 Raft 协议来保证分布式一致性,支持在 3 副本的情况下自动启用 Raft 协议
- 添加了新的元数据库,用于记录集群中的所有元数据
- 利用 B+ 树记录 vnode 中的元数据
- 为快速检索标签数据,增加了倒排索引
除了功能方面,新版本也针对大量场景优化了写入和查询性能,以及启动和恢复速度,具体包括:
- 优化了存在大量子表时的数据写入性能
- 优化了 select count(*) 的性能
- 专门优化了 avg、twa、last_row、first、interp 等大量函数的性能
- 提供了一个实时数据库可配置的缓存,用来保存各种类型的最新数据
- 优化了 show 命令,部分情况下可以提供更多信息
- 提升系统启动速度
- 改进了三副本情况下有节点宕机时的恢复速度
新版本还解决了一系列内存泄露问题和 bug。
详细信息,可以参考发布说明。欢迎广大用户下载使用,有任何使用问题,也欢迎及时联系我们,获得支持。