时序数据库 TimechoDB V2.0.8 发布 | 新增 Object 数据范例、协变量推测等功能 [复制链接]
发表于 2026-2-14 06:28:01 | 显示全部楼层 |阅读模式
TimechoDB V2.0.8 版本正式发布
TimechoDB 是由 IoTDB 原厂团队开辟的企业级时序数据库产物。V2.0.8 版本表模子新增 Object 数据范例,强化升级审计日记功能,优化树模子 OPC UA 协议,AINode 支持协变量推测与并发推理等功能,同时对数据库监控监控性能、稳固性举行了全方位提升。
更多关于 V2.0.8 版本信息,欢迎接洽我们得到企业版安装包。针对本版本紧张核心功能,年后将有更详细的技能剖析与直播讲授,敬请关注!
紧张发布内容


  • 查询模块:新增 DataNode 可用节点的列表展示,可查察节点的 RPC 所在和端口
  • 查询模块:表模子新增统计查询耗时的体系表
  • 存储模块:支持通过 SQL 查察创建表/视图的完备界说语句
  • 存储模块:优化树模子 OPC UA 协议
  • 体系模块:表模子新增 Object 数据范例
  • 体系模块:强化升级审计日记功能
  • 体系模块:表模子新增 DataNode 节点毗连情况的体系表
  • AINode:内置 chronos-2 模子,支持协变量推测功能
  • AINode:Timer-XLSundial 内置模子支持并发推理功能
  • 流处置惩罚模块:创建全量同步 pipe 会自动拆分为及时、汗青两个独立 pipe,可通过 show pipes 语句分别查察剩余变乱数
  • 其他:修复安全毛病 CVE-2025-12183、CVE-2025-66566、CVE-2025-11226
...
本版本详细发布内容请查察天谋科技官网-发布汗青页面:
https://timecho.com/docs/zh/UserGuide/latest/IoTDB-Introduction/Release-history_timecho.html
功能详解:AINode 协变量推测功能

功能先容


  • 单变量推测:支持对单一目标变量举行推测。
  • 协变量推测:可同时对多个目标变量举行团结推测,并支持在推测中引入协变量,以提升推测的精确性。
语法:
  1. SELECT * FROM FORECAST(
  2.    MODEL_ID,
  3.    TARGETS, -- 获取目标变量的 SQL
  4.    [HISTORY_COVS, -- 字符串,用于获取历史协变量的 SQL
  5.    FUTURE_COVS, -- 字符串,用于获取未来协变量的 SQL
  6.    OUTPUT_START_TIME,
  7.    OUTPUT_LENGTH,
  8.    OUTPUT_INTERVAL,
  9.    TIMECOL,
  10.    PRESERVE_INPUT,
  11.    MODEL_OPTIONS]?
  12. )
复制代码
语法阐明:

  • model_id:必填,String 范例,推测所用模子的唯一标识。
  • targets:必填,通过 SQL 输入待推测目标变量的输入数据。
  • history_covs:通过 SQL 输入推测使命协变量的汗青数据,用于辅助目标变量的推测。
  • future_covs:通过 SQL 输入推测使命协变量的将来数据,用于辅助目标变量的推测。
  • output_start_time:时间戳范例,输出的推测点的起始时间戳(起报时间)。
  • output_length:INT32 范例,输出窗口巨细。
  • output_interval:时间隔断范例,输出的推测点之间的时间隔断。
  • timecol:String 范例,推测依据的时间列名。
  • preserve_input:Boolean 范例,输出结果会合是否保存目标变量输入的全部原始行。
  • model_options:String 范例,模子相干的 key-value 对。
利用举例

示例数据

创建数据库与源表,插入测试数据:
  1. -- 1. 创建数据库
  2. CREATE DATABASE testdb;
  3. USE testdb;
  4. -- 2. 创建源表
  5. create table tab_real (
  6.     target1 DOUBLE FIELD,
  7.     target2 DOUBLE FIELD,
  8.     cov1 DOUBLE FIELD,
  9.     cov2 DOUBLE FIELD,
  10.     cov3 DOUBLE FIELD
  11. );
  12. -- 3. 插入测试数据
  13. INSERT INTO tab_real (time, target1, target2, cov1, cov2, cov3) VALUES
  14. (1, 1.0, 1.0, 1.0, 1.0, 1.0),
  15. (2, 2.0, 2.0, 2.0, 2.0, 2.0),
  16. (3, 3.0, 3.0, 3.0, 3.0, 3.0),
  17. (4, 4.0, 4.0, 4.0, 4.0, 4.0),
  18. (5, 5.0, 5.0, 5.0, 5.0, 5.0),
  19. (6, 6.0, 6.0, 6.0, 6.0, 6.0),
  20. (7, NULL, NULL, 7.0, NULL, NULL),
  21. (8, NULL, NULL, 8.0, NULL, NULL);
复制代码
示例 1:利用汗青协变量 cov1,cov2 和 cov3 辅助推测目标变量 target1 和 target2

  1. -- 使用表 tab_real 中 cov1,cov2,cov3,target1,target2 的前 6 行历史数据,预测目标变量 target1 和 target2 未来的 2 行数据
  2. SELECT * FROM FORECAST (
  3.     MODEL_ID => 'chronos2',
  4.     TARGETS => (
  5.         SELECT TIME, target1, target2
  6.         FROM etth.tab_real
  7.         WHERE TIME < 7
  8.         ORDER BY TIME DESC
  9.         LIMIT 6) ORDER BY TIME,
  10.     HISTORY_COVS => '
  11.         SELECT TIME, cov1, cov2, cov3
  12.         FROM etth.tab_real
  13.         WHERE TIME < 7
  14.         ORDER BY TIME DESC
  15.         LIMIT 6',
  16.     OUTPUT_LENGTH => 2
  17. )
复制代码
实验结果:
  1. +-----------------------------+-----------------+-----------------+
  2. |                         time|          target1|          target2|
  3. +-----------------------------+-----------------+-----------------+
  4. |1970-01-01T08:00:00.007+08:00|7.338330268859863|7.338330268859863|
  5. |1970-01-01T08:00:00.008+08:00| 8.02529525756836| 8.02529525756836|
  6. +-----------------------------+-----------------+-----------------+
  7. Total line number = 2
  8. It costs 0.315s
复制代码
示例 2:利用雷同表中的已知协变量 cov1 和汗青协变量 cov2,cov3 辅助推测目标变量 target1 和 target2

  1. -- 使用表 tab_real 中 cov1,cov2,cov3,target1,target2 的前 6 行历史数据,以及同表中已知协变量 cov3 在未来的 2 行数据,来预测目标变量 target1 和 target2 未来的 2 行数据
  2. SELECT * FROM FORECAST (
  3.     MODEL_ID => 'chronos2',
  4.     TARGETS => (
  5.         SELECT TIME, target1, target2
  6.         FROM etth.tab_real
  7.         WHERE TIME < 7
  8.         ORDER BY TIME DESC
  9.         LIMIT 6) ORDER BY TIME,
  10.     HISTORY_COVS => '
  11.         SELECT TIME, cov1, cov2, cov3
  12.         FROM etth.tab_real
  13.         WHERE TIME < 7
  14.         ORDER BY TIME DESC
  15.         LIMIT 6',
  16.     FUTURE_COVS => '
  17.         SELECT TIME, cov1
  18.         FROM etth.tab_real
  19.         WHERE TIME >= 7
  20.         LIMIT 2',
  21.     OUTPUT_LENGTH => 2
  22. )
复制代码
实验结果:
  1. +-----------------------------+-----------------+-----------------+
  2. |                         time|          target1|          target2|
  3. +-----------------------------+-----------------+-----------------+
  4. |1970-01-01T08:00:00.007+08:00|7.244050025939941|7.244050025939941|
  5. |1970-01-01T08:00:00.008+08:00|7.907227516174316|7.907227516174316|
  6. +-----------------------------+-----------------+-----------------+
  7. Total line number = 2
  8. It costs 0.291s
复制代码
功能详解:表模子新增 Object 数据范例

功能先容

Object 是新增的二进制数据范例,紧张用于存储文档、音频、视频等较大的二进制文件,可实现非结构化文件与 IoTDB 时序数据的同一管理。
该范例与 BLOB 范例的区别为:查询 Object 列时,返回结果展示:(Object) XX.XX KB,真实 Object 数据存储路径为:${data_dir}/object_data,可通过 READ_OBJECT 函数读取其真实内容;而 BLOB 列查询时会直接返回完备的二进制原始内容。
留意:Object 范例本版本暂不支持树模子,表模子的数据同步、导入导出、数据写回等功能将在后续版本中适配。
根本功能

数据写入

语法:
insert into tableName(time, columnName) values(timeValue, to_object(isEOF, offset, content));
参数阐明:

  • isEOF:Boolean 范例,本次写入内容是否为 Object 的末了一部门
  • offset:INT64 范例,本次写入的内容在 Object 中的起始偏移量
  • content:十六进制(hex)格式,本次写入的 Object 内容
利用举例:
示例:向表 table1 中增长 Object 范例字段 s1,并写入总巨细为 5 字节的 Object
ALTER TABLE table1 ADD COLUMN IF NOT EXISTS s1 OBJECT FIELD COMMENT 'object范例'

  • 不分段写入:
insert into table1(time, device_id, s1) values(now(), 'tag1', to_object(true, 0, X'696F746462'));

  • 分段写入:
  1. --分段写入 Object 数据
  2. --第一次写入:to_object(false, 0, X'696F')
  3. insert into table1(time, device_id, s1) values(1, 'tag1', to_object(false, 0, X'696F'));
  4. --第二次写入:to_object(false, 2, X'7464')
  5. insert into table1(time, device_id, s1) values(1, 'tag1', to_object(false, 2, X'7464'));
  6. --第三次写入:to_object(true, 4, X'62')
  7. insert into table1(time, device_id, s1) values(1, 'tag1', to_object(true, 4, X'62'));
复制代码
数据查询

留意:

  • Object 范例不支持利用 GROUP BY、ORDER BY、OFFSET、LIMIT 子句。
  • Object 范例利用 FILL 子句只支持 PREVIOUS 的添补方式。
利用举例:
示例一:直接查询 Object 范例数据
select s1 from table1 where device_id = 'tag1'
实验结果:
  1. +------------+
  2. |          s1|
  3. +------------+
  4. |(Object) 5 B|
  5. +------------+
  6. Total line number = 1
  7. It costs 0.428s
复制代码
示例二:通过 read_object 函数查询 Object 范例数据的真实内容
select read_object(s1) from table1 where device_id = 'tag1'
实验结果:
  1. +------------+
  2. |       _col0|
  3. +------------+
  4. |0x696f746462|
  5. +------------+
  6. Total line number = 1
  7. It costs 0.188s
复制代码
免责声明:如果侵犯了您的权益,请联系站长及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表