自 3.0 版本发布以来,经过研发人员和社区用户的不断努力,TDengine 进行了大量更新,产品稳定性和易用性也在不断提升。近日,TDengine 3.2.1.0 成功发布,该版本带来了一些重大功能优化,这些优化将进一步提升 TDengine 的性能和功能,为用户提供更高效、安全和易用的工业大数据存储和分析解决方案。本文将对此进行详细介绍。
开源的时序数据库功能更新(所有版本同步更新):
1. 时间转换函数 to_timestamp/to_char
to_timestamp 函数可以从字符串中按照时间格式提取时间,并转为 timestamp 类型的数据。
反之,to_char 函数则可以把 timestamp 类型的数据,转化为对应格式的字符串。
可以看下这两个函数简单的应用:
如果我们执行 select to_timestamp('This year is 2023, today is 10-10','"This year is"YYYY", today is "MM-DD')
返回的结果便是 2023-10-10 00:00:00.000 |
如果我们执行 select to_char(ts, "now is 'YYYY-MM-DD HH:MI:SS.MS'") from test.meters limit 1;
(测试表来自 taosBenchmark 默认配置生成)
返回的结果便是:“now is '2017-07-14 10:40:00.000'”
具体的使用规范可以通过官方文档查看:https://docs.taosdata.com/taos-sql/function/
2. last/last_row 查询优化
优化了 last/last_row 在以下两种场景下的查询性能,使得该类查询也能够充分利用 last、last_row 的缓存。
场景1:
SELECT ts, column1, last(column1) from table_name;
场景2:
SELECT avg(column1), count(*), last(column1) from table_name;
SELECT avg(column1), count(*), last_row(column1) from table_name;
3. 支持超级表直接写入
为了与 BI 工具兼容适配,TDengine 在 3.2.1.0 中支持了对超级表的直接写入,如果子表不存在则使用自动建表功能。该功能主要是为了适配 BI 工具中关系型数据库的语法(文章尾部有同 BI 工具更详细的适配信息)。该写法与传统的通过子表写入相比,性能上会有少量衰减。
简单示范:
insert into meters (tbname,ts,voltage) values ("d1",now,2);
具体语法可参考:https://docs.taosdata.com/taos-sql/insert/
TDengine Enterprise (企业级)功能更新:
4. 视图功能上线
该功能目的是帮助用户简化操作,提升用户间的分享能力。视图(View)本质上是一个存储在数据库中的查询语句,视图(非物化视图)本身不包含数据,只有在从视图读取数据时才动态执行视图所指定的查询语句。相当于封装了复杂的业务查询,让用户可以用最简单的查询得到结果。并且可以通过对视图的权限控制,确保安全高效的数据分享。(目前视图只支持被订阅和查询)
典型场景:
用户 A 在云上创建了一个库 db1 和表 st1,表 st1 中含有 ts, col1, col2, col3…等多列数据,他只想分享给用户 B 所需要的部分列数据(ts, col1, col2), 并且让他只拥有可读权限即可。
那么我们就可以这样操作:
1. 用户 A 执行:CREATE VIEW db1.view1 AS SELECT ts, col1, col2 FROM db1.st1;
2. 用户 root 执行:GRANT READ ON db1.view1 TO 用户B;
3. 接下来,用户 B 就可以执行:SELECT * FROM db1.view1;
获得视图数据。
或通过创建 topic 去订阅这个视图:CREATE TOPIC topic1 AS SELECT * FROM db1.view1 WHERE col1 > 1;
5. 多级存储故障恢复 :
在配置了多级存储多块磁盘的情况下,本次优化增加了特定条件下按需恢复的功能,不再是全量恢复,从而大大增加数据的恢复速度。
6. 永洪 BI 和 PowerBI 与 TDengine 的集成
PowerBI、永洪 BI 软件通过 JDBC 或者 ODBC 驱动程序连接数据库,并按照关系数据库的 SQL 语法操作数据。由于 TDengine 引入了超级表以及子表这些在传统关系型数据库里不存在的概念,因此我们做了大量的适配和优化工作,提供了 BI 模式与之交互。(ODBC 的 BI 模式将在下一个版本发布)
除此之外,每个版本也还都会做很多其他的工作,比如 bug 修复、功能优化等等。如果想要了解新版本(时序数据库功能更新)更加详细的发布信息,可以移步至 https://github.com/taosdata/TDengine/releases/tag/ver-3.2.1.0 查看发布说明。
欢迎大家下载使用,也欢迎在评论区提出建议和意见,如有任何问题请及时联系我们获得支持。