2.00.5

版本下载

版本号: 2.00.5     二级兼容 2.00.4, 1.30.16 和 2.00.5

发行日期: 2022-03-29

Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary

新功能

  • 新增命令 enableTSDBAsyncSortingdisableTSDBAsyncSorting 用于开启和关闭 TSDB 引擎 cache engine 的异步数据排序功能。

  • 新增函数 getRecoveryWorkerNum 获取当前用于 chunk 恢复的工作线程数。

  • 新增命令 resetRecoveryWorkerNum 动态修改用于 chunk 恢复的工作线程数。

  • TSDB 引擎支持在线增量恢复。

  • 新增运维函数 getLevelFileIndexCacheStatus 查询当前 TSDB 引擎索引内存占用情况。

  • 支持使用命令 kill -15 $PID 或集群 web 管理界面安全关机。

  • 新增函数 rebalanceChunksAmongDataNodes,用于新增数据节点后平衡数据节点间的数据量。

  • 新增函数 rebalanceChunksWithinDataNode,用于数据节点上新增磁盘卷后平衡磁盘卷之间的数据量。

  • 新增运维函数 imtUpdateChunkVersionOnDataNode,修改数据节点上对应 chunkId 的版本号。维护集群中多副本数据之间,或数据节点与控制节点之间的版本一致性。

  • 函数 replay 支持多表回放到异构流数据表,并按照时间顺序输出。

  • 新增函数 concatMatrix,支持水平或垂直拼接多个矩阵。

  • 新增距离计算函数欧氏距离 euclidean 、谷本距离 tanimoto 以及按行计算的欧式距离 rowEuclidean 和谷本距离 rowTanimoto

  • 新增按行计算内积的函数 rowDot

  • 新增高阶函数 firstHitifirstHit,用于返回 X 中第一个满足条件的元素。

  • 新增函数 getCurrentSessionAndUser,获取当前 session 对应的 sessionID 和 userID。

  • 支持 SQL Join 的标准写法。

  • 新增 SQL 语句 alter,用于在已有的表中添加列。

  • 新增 SQL 语句 create,用于创建数据库或表。

功能改进

  • TSDB 引擎支持 cache engine 的异步数据排序功能,可使用配置项 TSDBAsyncSortingWorkerNum 指定异步排序的线程数,默认值为1。

  • TSDB 引擎支持快照隔离。

  • TSDB 引擎支持 Windows 系统。

  • OLAP 引擎支持在 Windows 环境中开启 dataSync(即设置配置项 dataSync = 1)。

  • 函数 subscribeTable 新增可选参数 userId 和 password,系统在用户退出后自动尝试重新登录,保证订阅数据成功写入分布式表。

  • 响应式状态引擎(reactive state streaming engine)支持参数 metrics 指定函数的返回值为 array vector。

  • getStreamingStat().subWorkers 函数返回结果 throttle 统一为以毫秒为单位。

  • asof join 引擎支持指定多个连接列。

  • 横截面引擎(cross-sectional engine)新增参数 snapshotDir 和 snapshotIntervalInMsgCount 支持快照机制,新增参数 raftGroup 支持计算引擎高可用。

  • 新增函数 getLeftStreamgetRightStream 支持 join 引擎的级联。

  • 若横截面引擎(cross-sectional streaming engine)和时间序列引擎(time-series streaming engine)参数 metrics 指定的函数有多个返回值,创建引擎时无需指定列名。

  • 新增命令 addAccessControl 对共享内存表(包括共享流数据表)或流数据引擎对象增加权限控制。

  • 对表应用 quantile 等聚合函数时,不符合条件的列在输出结果中保持不变。

  • SQL pivot by 语句支持转换 UUID 类型的列。

  • rowNo 函数应用于 SQL 查询语句中时,将按照序列相关函数处理。

  • array vector 支持更多的切片写法。

  • 函数 ceilfloor 结果的范围上限提升为2^53。

  • 若 SQL pivot by 语句最后一列为分区列,且 select 字段不包含聚合函数或序列函数,pivot by 语句性能提升近五倍。

  • 函数 med 参数支持 BOOL 类型。

  • 函数 emakamawma 支持计算 BOOL 类型向量。

  • 调用 slice 函数时 ,当 rowIndex 或 colIndex 越界时,不再抛出异常,而是返回空值。

  • 调用 spearmanr 函数时,当 X 是矩阵,Y 是标量时,返回结果由 NULL 变成 0。

  • 调用 mutualInfo 函数时,当 X 是矩阵,Y 是标量时,返回结果由标量变成向量。

  • listTables 函数返回的表名调整为对大小写敏感。

  • 性能监控度量值(metrics) 若小于0,则返回0。

  • 命令 addColumn 新增列名支持以数字开头。

  • 函数 loadTextloadTextEx 导入 csv 文件时,第一行数据的读取上限为 256 KB。

  • 聚合函数、窗口函数和向量函数支持表作为输入参数。

  • 函数 randnorm 的参数 count 支持输入数据对,用于指定生成矩阵的维度。

  • 函数 loadTextloadTextEx 新增参数 arrayDelimiter,支持导入包含 array vector 的 csv 文件。

  • row 系列逻辑函数(rowAnd, rowOr, rowXor)支持输入整数。

  • bar 函数新增参数 closed,用于指定分组包含左边界或右边界。

  • 滑动窗口函数的参数 X 是索引序列或索引矩阵,且 window 是正整数时,窗口按照索引滑动。

  • 自定义函数的参数可以分行书写,每行以逗号结束。

  • SQL order by 语句支持使用 as 改名前和改名后的字段。

  • 函数 dailyAlignedBar 参数 X 新增支持 SECOND,TIME,NANOTIME 类型向量。

  • 服务端支持以 pickle 格式传输包含 array vector 的表到 Python API。

  • 日级时间序列聚合引擎(daily time-series streaming engine)新增参数 forceTriggerSessionEndTime,用于指定强制触发 sessionEnd 的窗口。

  • 日级时间序列聚合引擎(daily time-series streaming engine)和时间序列聚合引擎(time-series streaming engine)修改参数 forceTriggerTime,未计算的窗口由计算结束后的最新数据触发。若设置了参数 fill,则同时填充无数据的窗口。

缺陷修复

  • 修复了几个 TSDB 引擎的问题:

    • SQL 查询时,若 where 过滤条件中包含 array vector 类型的列,可能导致 crash;

    • level file 合并后重启数据库,再次写入数据时,已经合并的 level file 不会被回收;

    • 从旧集群同步数据至新集群时,新集群各节点上的部分内存不释放;

    • SQL 查询时,若 where 条件的数据格式为 timestamp,而实际数据是 nanotimestamp 格式,则查询结果不正确;

    • 查询数据量比较大时,若查询语句包含 group by, context bypivot by 操作,且操作的列包含多个 sortColumns 参数中指定的排序列,查询结果可能不完整;

    • group by 分组查询 count 数目,可能导致 crash。

  • 集群各节点之间在线同步数据时,若使用 mr 并行计算,可能导致节点崩溃。

  • 若在 1.30.16 之前版本中对分区名带有“.”字符的数据库分区进行 backup 备份,在 1.30.16 版本中通过 migrate 恢复数据时,可能报错。

  • 由于 1.30.16 引入的新功能,导致从 1.30.16 升级到 2.00.4 版本时出现兼容性问题。

  • 查询数据库时,有时会出现报错:“The remote call task doesn't associate any site.”。

  • 进行过 upsert / update / delete 操作的数据库,若使用 imtUpdateChunkVersionOnDataNode 更新了数据节点上的版本号,可能导致数据读取错误。

  • 修复了几个 array vector 的问题:

    • 将 array vector 从一个数据节点发送到另一个数据节点时,可能导致 crash;

    • 对 array vector 的 subarray 求 count 数目,结果不正确;

    • 从空表中取 array vector 值导致结果不正确

  • 由于 raft log 追加写有问题,导致高可用集群有时重启后无法正常启动。

  • 在 Windows 系统中,通过 dropTable 成功删除空表后,若通过 renameTable 把另一个表命名为此表,会报错提示文件已存在。

  • 具有 TABLE_WRITE 权限的用户在写入数据时,因数据库无法自动添加 VALUE 分区,导致写入失败。

  • 当时间序列引擎(time-series streaming engine)的 windowSize 参数是一个向量,且 metrics 参数为自定义函数时,可能导致系统崩溃。

  • 流数据高可用计算引擎中,当 follower 在写快照时有可能会死锁,导致后续收到的 raft log 无法被处理,占用内存不断增大。

  • 往高可用流数据表写入数据时,写入数据已经持久化,但 log 还未发送到 follower 时,若所有数据节点宕机,重启后节点间数据会不一致。

  • 重启节点后从磁盘加载持久化数据时,需要删除过期的 rowIndex 时误将最后一个 rowIndex 删除,导致数据缺失。

  • 流数据高可用状态下,两次 append 数据,每次数据都超过 65536 行,且leader 节点数据同步到 follower 上时发生了 leader 切换,会导致原 leader 节点重启后自动加载持久化流数据表失败。

  • 当高可用流数据表所在的 raft 组和高可用订阅的 raft 组不同时,如果两组 leader 同时切换或重启,而高可用流数据表所在 raft 组的 leader 节点竞选成功晚于高可用订阅的 raft 组,会导致自动重订阅失败。

  • 订阅(subscribeTable)时设置参数 offset=-2,参数设置无效。

  • 修正了 atImaxatImin 在参数为多列矩阵时的计算方式。自本版本起,这两个函数将对矩阵的每一列分别查找最值,并以向量的形式返回每一列的计算结果。

  • 对内存表和共享流数据表做表连接,可能导致系统崩溃。

  • SQL 查询中,selectpivot by 一起使用时,若在 select 子句中增加一列常量,会导致系统崩溃。

  • 提交定时任务时,若定时任务的函数有使用{}来生成字典,则会报错无法序列化。

  • 连接两个共享表时会报错:“Unrecognized column name”。

  • 使用 sql 函数生成查询,当 from 参数指定为表连接时,执行结果有误。

  • 当一个分布式表按时间进行值分区,且分区粒度大于分区列的时间精度时,跨库表连接时会报错。

  • mmadmad 函数在 useMedian 参数为 true 时计算结果有误。同时在流数据引擎中修复了此问题。

  • 函数 sqlDS 中,在 where 条件语句中使用运算符过滤时间列时,没有正确分区剪枝。

  • 函数 replayDS 数据源解析时,对 where 条件语句中的 date col 表达式解析有误,没有正确分区剪枝。

  • 当函数中包含 window join 计算,且窗口参数 window 为 duration 数据对时,则添加函数视图(addFunctionView)时 server 端会在反序列化时报错。

  • 对时间分区列进行查询,当查询条件的时间粒度大于分区列的时间粒度时,查询结果有误。

  • zigzag 函数中,当参数 percent 为 false,参数 retrace 为 true 时,计算结果有误。

  • 函数 loadText 读取文件第一行时,“-”开头的负数识别为列名。

  • 在 SQL group by 语句中使用 minmax 函数时,向函数传入两个参数时,计算结果错误。