时序数据库 TimechoDB V2.0.4 发布 | 新增用户自定义表函数及多种内置表函数等功能

TimechoDB V2.0.4 版本正式发布!

TimechoDB 是由 IoTDB 原厂团队开发的企业级时序数据库产品。V2.0.4 版本表模型新增用户自定义表函数(UDTF)及多种内置表函数、新增聚合函数 approx_count_distinct、新增支持针对时间列的 ASOF INNER JOIN,并对脚本工具进行了分类整理,将 Windows 平台专用脚本独立,同时对数据库监控、性能、稳定性进行了全方位提升。

更多关于 V2.0.4 版本信息,欢迎联系我们获得企业版安装包!

主要发布内容

  • 查询模块:表模型新增用户自定义表函数(UDTF)及多种内置表函数

  • 查询模块:表模型支持针对时间列的 ASOF INNER JOIN

  • 查询模块:表模型新增聚合函数 approx_count_distinct

  • 流处理:支持通过 SQL 异步加载 TsFile

  • 系统模块:缩容时,副本选择支持容灾负载均衡策略

  • 系统模块:适配 Window Server 2025

  • 脚本与工具:对脚本工具进行了分类整理,并将 Windows 平台专用脚本独立

...

功能详解:内置表函数 HOP

功能介绍

表函数,也被称为表值函数(Table-Valued Function,TVF),不同于标量函数、聚合函数和窗口函数的返回值是一个标量值,表函数的返回值是一个表(结果集)。

HOP 函数用于按时间分段分窗分析,识别每一行数据所属的时间窗口。该函数通过指定固定窗口大小(SIZE)和窗口滑动步长(SLIDE),将数据按时间戳分配到所有与其时间戳重叠的窗口中。若窗口之间存在重叠(步长 < 窗口大小),数据会自动复制到多个窗口。

语法:

HOP(data, timecol, size, slide[, origin])

参数说明:

TimechoDB 2.0.4 发版图1-20250606.png

使用举例

数据:

SELECT * FROM table1;
+-----------------------------+--------+-----+
|                         time|stock_id|price|
+-----------------------------+--------+-----+
|2021-01-01T09:05:00.000+08:00|    AAPL|100.0|
|2021-01-01T09:06:00.000+08:00|    TESL|200.0|
|2021-01-01T09:07:00.000+08:00|    AAPL|103.0|
|2021-01-01T09:07:00.000+08:00|    TESL|202.0|
|2021-01-01T09:09:00.000+08:00|    AAPL|102.0|
|2021-01-01T09:15:00.000+08:00|    TESL|195.0|
+-----------------------------+--------+-----+

代码示例:

-- 该查询从 table1 数据集中提取以 5 分钟为间隔的 10 分钟滑动窗口数据。
SELECT * FROM HOP(DATA => table1,TIMECOL => 'time',SLIDE => 5m,SIZE => 10m);

结果:

+-----------------------------+-----------------------------+-----------------------------+--------+-----+
|                 window_start|                   window_end|                         time|stock_id|price|
+-----------------------------+-----------------------------+-----------------------------+--------+-----+
|2021-01-01T09:00:00.000+08:00|2021-01-01T09:10:00.000+08:00|2021-01-01T09:05:00.000+08:00|    AAPL|100.0|
|2021-01-01T09:05:00.000+08:00|2021-01-01T09:15:00.000+08:00|2021-01-01T09:05:00.000+08:00|    AAPL|100.0|
|2021-01-01T09:00:00.000+08:00|2021-01-01T09:10:00.000+08:00|2021-01-01T09:06:00.000+08:00|    TESL|200.0|
|2021-01-01T09:05:00.000+08:00|2021-01-01T09:15:00.000+08:00|2021-01-01T09:06:00.000+08:00|    TESL|200.0|
|2021-01-01T09:00:00.000+08:00|2021-01-01T09:10:00.000+08:00|2021-01-01T09:07:00.000+08:00|    AAPL|103.0|
|2021-01-01T09:00:00.000+08:00|2021-01-01T09:10:00.000+08:00|2021-01-01T09:07:00.000+08:00|    TESL|202.0|
|2021-01-01T09:05:00.000+08:00|2021-01-01T09:15:00.000+08:00|2021-01-01T09:07:00.000+08:00|    AAPL|103.0|
|2021-01-01T09:05:00.000+08:00|2021-01-01T09:15:00.000+08:00|2021-01-01T09:07:00.000+08:00|    TESL|202.0|
|2021-01-01T09:00:00.000+08:00|2021-01-01T09:10:00.000+08:00|2021-01-01T09:09:00.000+08:00|    AAPL|102.0|
|2021-01-01T09:05:00.000+08:00|2021-01-01T09:15:00.000+08:00|2021-01-01T09:09:00.000+08:00|    AAPL|102.0|
|2021-01-01T09:10:00.000+08:00|2021-01-01T09:20:00.000+08:00|2021-01-01T09:15:00.000+08:00|    TESL|195.0|
|2021-01-01T09:15:00.000+08:00|2021-01-01T09:25:00.000+08:00|2021-01-01T09:15:00.000+08:00|    TESL|195.0|
+-----------------------------+-----------------------------+-----------------------------+--------+-----+

更多内容推荐:

• 下载时序数据库 IoTDB 开源版

• 了解如何使用 时序数据库 IoTDB 企业版