近日,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。 (文章来自TDengine,如有违权请联系删除!) |