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
新功能
-
新增命令
enableTSDBAsyncSorting
和disableTSDBAsyncSorting
用于开启和关闭 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
。 -
新增高阶函数
firstHit
和ifirstHit
,用于返回 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 支持计算引擎高可用。
-
新增函数
getLeftStream
和getRightStream
支持 join 引擎的级联。 -
若横截面引擎(cross-sectional streaming engine)和时间序列引擎(time-series streaming engine)参数 metrics 指定的函数有多个返回值,创建引擎时无需指定列名。
-
新增命令
addAccessControl
对共享内存表(包括共享流数据表)或流数据引擎对象增加权限控制。 -
对表应用
quantile
等聚合函数时,不符合条件的列在输出结果中保持不变。 -
SQL
pivot by
语句支持转换 UUID 类型的列。 -
rowNo
函数应用于 SQL 查询语句中时,将按照序列相关函数处理。 -
array vector 支持更多的切片写法。
-
函数
ceil
和floor
结果的范围上限提升为2^53。 -
若 SQL
pivot by
语句最后一列为分区列,且select
字段不包含聚合函数或序列函数,pivot by
语句性能提升近五倍。 -
函数
med
参数支持 BOOL 类型。 -
函数
ema
、kama
和wma
支持计算 BOOL 类型向量。 -
调用
slice
函数时 ,当 rowIndex 或 colIndex 越界时,不再抛出异常,而是返回空值。 -
调用
spearmanr
函数时,当 X 是矩阵,Y 是标量时,返回结果由 NULL 变成 0。 -
调用
mutualInfo
函数时,当 X 是矩阵,Y 是标量时,返回结果由标量变成向量。 -
listTables
函数返回的表名调整为对大小写敏感。 -
性能监控度量值(metrics) 若小于0,则返回0。
-
命令
addColumn
新增列名支持以数字开头。 -
函数
loadText
和loadTextEx
导入 csv 文件时,第一行数据的读取上限为 256 KB。 -
聚合函数、窗口函数和向量函数支持表作为输入参数。
-
函数
rand
和norm
的参数 count 支持输入数据对,用于指定生成矩阵的维度。 -
函数
loadText
和loadTextEx
新增参数 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 by
或pivot 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,参数设置无效。 -
修正了
atImax
和atImin
在参数为多列矩阵时的计算方式。自本版本起,这两个函数将对矩阵的每一列分别查找最值,并以向量的形式返回每一列的计算结果。 -
对内存表和共享流数据表做表连接,可能导致系统崩溃。
-
SQL 查询中,
select
与pivot by
一起使用时,若在select
子句中增加一列常量,会导致系统崩溃。 -
提交定时任务时,若定时任务的函数有使用{}来生成字典,则会报错无法序列化。
-
连接两个共享表时会报错:“Unrecognized column name”。
-
使用
sql
函数生成查询,当 from 参数指定为表连接时,执行结果有误。 -
当一个分布式表按时间进行值分区,且分区粒度大于分区列的时间精度时,跨库表连接时会报错。
-
mmad
和mad
函数在 useMedian 参数为 true 时计算结果有误。同时在流数据引擎中修复了此问题。 -
函数
sqlDS
中,在where
条件语句中使用运算符过滤时间列时,没有正确分区剪枝。 -
函数
replayDS
数据源解析时,对where
条件语句中的 date col 表达式解析有误,没有正确分区剪枝。 -
当函数中包含 window join 计算,且窗口参数 window 为 duration 数据对时,则添加函数视图(addFunctionView)时 server 端会在反序列化时报错。
-
对时间分区列进行查询,当查询条件的时间粒度大于分区列的时间粒度时,查询结果有误。
-
zigzag
函数中,当参数 percent 为 false,参数 retrace 为 true 时,计算结果有误。 -
函数
loadText
读取文件第一行时,“-”开头的负数识别为列名。 -
在 SQL
group by
语句中使用min
或max
函数时,向函数传入两个参数时,计算结果错误。