在涛思数据研发团队的努力下,TDengine 3.3.0.0 版本终于和大家见面了。这一版本中,我们引入了多项革新功能和性能优化,力求在为用户提供极致体验的同时,不断推动技术的前沿。
此次更新不仅针对开源社区版本,进行了一系列功能增强和性能提升,也为企业级用户带来了多项关键功能,如双活、S3 存储支持、传统关系型数据库的数据接入等。无论是数据处理的效率,还是系统的可靠性和安全性,新版本都有显著提升,满足从小型项目到大规模企业级部署的各种需求。
具体更新信息展示如下:
开源的时序数据库功能更新(所有版本同步更新)
1.时序数据 Join
之前版本,TDengine 只实现了 Inner Join 功能,为了更好地支持客户需求,本次 Join 功能增强支持除 Cross Join 等时序数据库中基本没有需求场景的 Join 类型外的所有 Join 类型,包括传统库中的 Left Join、Right Join、Full Join、Semi Join、Anti-Semi Join 以及时序库中特色的 ASOF Join、Window Join。
2.复合主键(重复时间戳)
在某些应用场景中,单纯使用时间戳作为主键可能导致大量的记录重复。这些重复的记录在生产环境中通常是必需的,不能仅作为单一记录进行更新处理。
为了解决这一问题,可以在创建普通表或超级表时,利用复合主键功能。用户可以指定一个额外的列作为“Primary key”,与时间戳列一起构成复合主键。当两条记录的时间戳和 Primary key 列的值都相同时,它们被视为同一条记录;如果这些值有所不同,则视为不同的记录。
语法:
jCREATE TABLE table_name (
quot_time TIMESTAMP,
busi_sequ_no BIGINT PRIMARY KEY,
entr_prc DOUBLE,
entr_qty BIGINT,
……
);
3.Count Window (计数窗口查询)
窗口将时序数据拆分成有限大小的“存储桶”,每个桶包含若干条记录。通过划分窗口,可对这些记录进行聚合计算。计数窗口在 3.2.3.0 版本支持在流计算中使用,在 3.3.0.0 版本支持在查询中使用。
语法:
jwindow_clause: {
SESSION(ts_col, tol_val)
| STATE_WINDOW(col)
| INTERVAL(interval_val [, interval_offset]) [SLIDING (sliding_val)] [FILL(fill_mod_and_val)]
| EVENT_WINDOW START WITH start_trigger_condition END WITH end_trigger_condition
| COUNT_WINDOW(count_val[, sliding_val])
}
4.TSMA
该功能旨在提升大数据量聚合函数查询性能。通过对固定时间窗口内的数据进行预计算,并将预计算结果存储到硬盘,查询时通过读取预计算结果以提高查询性能。
语法:
•创建基于超级表或普通表的 TSMA
jCREATE TSMA tsma_name ON [dbname].table_name FUNCTION (func_name(func_param) [, ...] ) INTERVAL(time_duration);
•创建基于小窗口 tsma 的大窗口 TSMA
jCREATE RECURSIVE TSMA tsma_name2 ON [db_name.]tsma_name1 INTERVAL(time_duration);
5.存储压缩增强
存储压缩算法增强后,TDengine 的压缩比预期可再提升一倍以上。此前 TDengine 已经支持两级压缩,但压缩算法固定不可配置,改造后有以下增强:
•第一级压缩支持多种编码方法且可扩充, 包括 simple8b、delta-i、delta-d、bit-packing、disabled
•第二级压缩支持多种压缩算法且可扩充,包括 lz4、zlib、zstd、tsz、xz、disabled
•压缩等级支持 high、medium、low 三种
6.Explorer 社区版
从很多开源用户希望有可视化管理界面的需求出发,本次版本更新提供 Explorer 社区版,具备功能包括用户登录、系统消息、监控面板、数据写入、数据浏览器、编程、流计算、数据订阅、工具、集群等。
TDengine Enterprise(企业级功能更新)
1.TDengine 双副本(+仲裁者)
部分客户期望在保证一定可靠性、可用性条件下,尽可能压缩部署成本。为此我们提出基于仲裁者的双副本方案。该方案可提供集群中“只有单个服务故障且不出现连续故障”的容错能力。
双副本的使用场景:
•有降低存储成本需求的客户
•有降低物理节点需求的客户
•对高可用性要求稍低的客户
双副本的技术特点:
•时序数据的副本数目为 2 ,但是集群内节点数目大于等于 3
•当时序数据的某个副本所在物理节点宕机时,可以自动切主,不丢失数据,且可持续写入、查询
2.TDengine 双活
双活的使用场景:
•部分客户因为部署环境的特殊性只能部署两台服务器,同时希望实现一定的服务高可用和数据高可靠
•客户主要来自工业控制领域,也有些来自一些特殊的领域
•既可以用于前面所述节点受限的环境,也可用于在两套 TDengine 集群(不限节点数目)之间的灾备场景
3.S3 存储
S3 是可扩展、高可用的分布式存储,存储大量的非结构化数据对象,通过对象名(键值)索引到对象。S3 上的对象不能修改,且读取对象的速度较本地磁盘慢,各厂商常根据上传数据大小、读取次数、读取大小收费。
TDengine 针对 S3 存储的特殊性,做了很多优化,其优点包括:
•存储成本显著降低
•支持冷数据写入、更新、删除,行为透明
•查询速度下降在一倍左右,查询行为透明
4.数据库加密
数据库存储文件加密,读写透明。支持国标 sm4 加密算法,加密范围包括所有数据文件。
5.数据接入
本版本支持传统关系型数据库向 TDengine 平滑地进行迁移,包括:
•MySQL -> TDengine
•PostgreSQL -> TDengine
除此之外,每个版本都会做很多其他的工作,比如 bug 修复、功能优化等等。如果想要了解新版本(时序数据库功能更新)更加详细的发布信息,可以移步至 https://github.com/taosdata/TDengine/releases/tag/ver-3.3.0.0 查看发布说明。
欢迎大家下载使用,也欢迎在评论区提出建议和意见,如有任何问题请及时联系我们获得支持。