详见 版本兼容性说明列表
版本号: 2.00.10 一级兼容 2.00.9 和 1.30.21
发行日期: 2023-07-20
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary | Linux ARM64|
版本号: 2.00.9 二级兼容 2.00.8 和 1.30.20
发行日期: 2023-02-15
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary | Linux ARM64|
版本号: 2.00.8 二级兼容 2.00.7 和 1.30.19
发行日期: 2022-09-30
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary | Linux ARM64|
版本号: 2.00.7 一级兼容 2.00.6
发行日期: 2022-07-14
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary | Linux ARM64|
版本号: 2.00.6 二级兼容 2.00.5
发行日期: 2022-05-09
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary |
版本号: 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 |
版本号: 2.00.4
发行日期: 2022-01-10
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary |
版本号: 2.00.3
发行日期: 2021-11-22
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary
版本号: 2.00.2
发行日期: 2021-11-05
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary
版本号: 2.00.1
发行日期: 2021-08-25
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary
版本号: 2.00.0
发行日期: 2021-07-31
Linux64 binary | Linux64 JIT binary | Linux64 ABI binary | Windows64 binary | Windows64 JIT binary
appendTuple!
,用于将一个元组追加到另一个元组中,同时新增配置项 appendTupleAsAWhole
,用于设置元组是作为整体还是展开后进行追加/合并。(2.00.10.4)select
查询任务或随时快速取消 pivot by
重组任务。(2.00.10.4)cumdenseRank
,支持计算元素在累计窗口内的密集排序。(2.00.10.4)addFunctionView
创建函数视图。(2.00.10.4)pivot by
语句搭配 asis
函数保留所有原始数据。(2.00.10.4)pivot by
支持搭配 select/exec
子句查询表中的数组向量列。(2.00.10.4)createCrossSectionalEngine
的参数 triggeringPattern 新增选项 "dataInterval",支持按照数据时间间隔触发引擎的计算。(2.00.10.3)parseJsonTable
,用于将 JSON 对象解析为内存表。(2.00.10.2)loadModuleFromScript
,用于通过脚本自动解析包含模块定义的字符串并加载模块。(2.00.10.2)transaction
语句支持 MVCC 表。(2.00.10.2)tcpUserTimeout
,可以设置套接字选项 TCP_USER_TIMEOUT。(2.00.10.2)getClusterReplicationMetrics
函数,引入新的 getSlaveReplicationQueueStatus
函数,用于检索从集群中每个执行队列的任务执行状态,并继承了 getClusterReplicationMetrics
函数的功能。(2.00.10.2)clusterReplicationQueue
,用于设置从集群的控制节点上执行队列的数量。(2.00.10.2)clusterReplicationWorkerNum
,用于设置每个数据节点上执行任务的工作线程数。(2.00.10.2)right join
)。(2.00.10)setMemLimitOfTempResult
,设置表连接操作中产生的每个临时数据表允许占用的内存上限。(2.00.10)listRemotePlugins
和 installPlugin
,分别用于查询可用的插件信息和下载插件。(2.00.10)writeLogLevel
,能够将指定级别的文本写入日志文件中。(2.00.10)sessionWindow
,对一个时间序列根据会话时间间隔进行分组。(2.00.10)summary
,生成输入数据的汇总统计信息,包含最小值、最大值、计数、均值、标准差和指定的百分位数。(2.00.10)encodeShortGenomeSeq
, decodeShortGenomeSeq
分别用于对 DNA 序列进行编解码。同时新增函数 genShortGenomeSeq
,可在滑动窗口内进行编码。(2.00.10)gramSchmidt
,实现施密特正交化计算。(2.00.10)lasso
功能等价的函数 lassoBasic
,其参数支持输入向量。(2.00.10)mskewTopN
, mkurtosisTopN
cumsumTopN
, cumavgTopN
, cumstdTopN
, cumstdpTopN
, cumvarTopN
, cumvarpTopN
, cumbetaTopN
, cumcorrTopN
, cumcovarTopN
, umwsumTopN
, cumskewTopN
, cumkurtosisTopN
tmsumTopN
, tmavgTopN
, tmstdTopN
, tmstdpTopN
, tmvarTopN
, tmvarpTopN
, tmbetaTopN
, tmcorrTopN
, tmcovarTopN
, tmwsumTopN
, tmskewTopN
, tmkurtosisTopN
initcap
函数,将字符串的第一个字母变成大写,其他字母变小写。(2.00.10)splrep
和 splev
。(2.00.10)scs
,用于求解一次或二次规划函数在线性约束条件下的最优解。(2.00.10)rowPrev
, rowNext
, rowMove
, rowCumsum
, rowCumprod
, rowCummax
, rowCummin
和 rowCumwsum
,支持按行进行计算。(2.00.10)temporalSeq
,按指定的间隔生成时间序列。(2.00.10)ungroup
,将表中的 Fast Array Vector 列或 Columnar Tuple 列进行平铺。(2.00.10)decimalMultiply
,用于 DECIMAL 类型数据进行乘法运算。(2.00.10)base64Encode和base64Decode
,支持 base64 加密与解密。(2.00.10)addFunctionTypeInferenceRule
,用于在 JIT 中添加自定义函数类型推导规则。(2.00.10)createStreamDispatchEngine
。(2.00.10)createTimeSeriesEngine
和 createReactiveStateEngine
中使用以下函数时,支持计算 DECIMAL 类型数据:(2.00.10)
createTimeSeriesEngine
:
corr
, covar
, first
, last
, max
, med
, min
, percentile
, quantile
, std
, var
, sum
, sum2
, sum3
, sum4
, wavg
, wsum
, count
, firstNot
, ifirstNot
, lastNot
, ilastNot
, imax
, imin
, nunique
, prod
, sem
, mode
, searchK
createReactiveStateEngine
:cumsum
, cumavg
, cumstd
, cumstdp
, cumvar
, cumvarp
, cumcorr
, cumbeta
, cumcovar
, cumwsum
, cumwavg
, msum
, mavg
, mstd
, mstdp
, mvar
, mvarp
, mcorr
, mbeta
, mcovar
, mwsum
, mwavg
, tmsum
, tmavg
, tmstd
, tmstdp
, tmvar
, tmvarp
, tmcorr
, tmbeta
, tmwsum
, tmwavg
logicOrIgnoreNull
,设置 or
函数在操作数中包含 NULL 时的处理方式。默认值为 true:当另一个操作数非零或为零时,返回 true 或 false。若需要 or
函数的行为和旧版本保持一致,则应该将该配置设置为 false。(2.00.9.4)case when
语句后支持使用 is null
判断。(2.00.9.4)mvccCheckpointThreshold
用于设置创建检查点的操作次数阈值;新增函数 forceMvccCheckpoint
,用于手动触发创建 MVCC 表的检测点。(2.00.9.3)getLicenseServerResourceInfo
,getRegisteredNodeInfo
,相关配置项 licenseServerSite
,bindCores
。(2.00.9)thirdPartyAuthenticator
,用于第三方系统校验用户权限。通过指定该参数,在用户登录时,系统会通过第三方系统进行权限验证。(2.00.9)getTSDBSortKeyEntry
支持查看每个分区的 sort key 信息。(2.00.9)setMaxConnections
用于在线修改当前节点的最大连接数。(2.00.9)demean
,用于对数据去均值化处理。同时在响应式状态引擎中支持该函数。(2.00.9)dict
和 syncDict
新增参数 ordered
用于创建有序字典,支持键值对的顺序与输入顺序保持一致;支持两个字典的二元操作,以及字典和 scalar, vector的二元操作。(2.00.9)cumnunique
,用于统计元素累积的唯一值数量。同时在响应式状态引擎中支持该函数。 (2.00.9)stringFormat
,用于动态字符串的构建。(2.00.9)rowAlign
用于进行数据对齐,主要适用于金融场景的计算。(2.00.9)nanInfFill
用于替换 NaN 和 Inf 值。(2.00.9)byColumn
,使高阶函数支持列内竖向计算。同时在流计算中支持该函数。(2.00.9)volumeBar
用于数据的累积分组。(2.00.9)enlist
用于将标量或向量,转化为由其作为元素值的向量或元组。(2.00.9)eachAt(@)
,支持访问向量、矩阵、表、数组向量、元组、字典和函数。(2.00.9)latestKeyedTable
, latestIndexedTable
,用于创建时间序列相关的键值表和索引表。支持按时间列进行条件更新,只有值更大的新记录才会更新具有相同主键的原表中的记录。(2.00.9)isColumnarTuple
, setColumnarTuple!
。(2.00.9)drop
(支持删库,删表操作),create local temporary table
(支持创建本地临时内存表),alter
(新增支持列名重命名,删除列),case when
, union/union all
, join on
, with as
(支持 with
关键字使用参数对列重命名)(not) between and
, is null/is not null
, (not) exists/not exist
, any/all
nullIf
, coalesce
distinct
(单个或多个字段去重),nulls first/nulls last
(order by
关键字)join
语句,join
语法支持使用别名,且支持 join
的对象是一个 SQL 子查询。(2.00.9)select
常量时不指定别名,此时常量值将作为列名。(2.00.9)in
等谓词以及运算符对 SQL 子查询返回的结果表进行操作。 (2.00.9)oldChunkVersionRetentionTime
控制。用于设置历史版本 chunk 的保存时间。(2.00.9)temporalAdd
, resample
, asFreq
, transFreq
中根据用户及定义的交易日历进行计算。新增相关置项 marketHolidayDir
,新增相关函数 addMarketHoliday
, updateMarketHoliday
, getMarketCalendar
用于增加更新和获取自定义交易日历信息。(2.00.9)genericStateIterate
, genericTStateIterate
流数据中窗口迭代计算。(2.00.9)createWindowJoinEngine
支持数组向量的计算。(2.00.9)movingWindowData
和 tmovingWindowData
,用于获取流计算中历史滑动窗口的数据。(2.00.9)if-else
语句的计算。(2.00.9)truncate
用于清空分布式表数据,但仍保留表结构。(2.00.8)checkBackup
检查备份文件的完整性和正确性;新增函数 getBackupStatus
查询数据库备份和恢复任务详情。(2.00.8)backupDB/restoreDB/backupTable/restoreTable
,用于备份恢复整库/表。(2.00.8)logRetentionTime
,设置系统日志的保留时间。(2.00.8)triggerNodeReport
,强制触发 datanode 向 controller 汇报分区信息。(2.00.8)getUnresolvedTxn
查看当前进行中的事务决议任务状态。(2.00.8)streamEngineParser
支持用户自定义函数中嵌套因子的解析。(2.00.8)conditionalIterate
,可通过条件迭代实现因子中的递归。仅可用于响应式状态引擎 (createReactiveStateEngine
) 。(2.00.8)stateMavg
,可计算基于历史结果的移动平均。仅可用于响应式状态引擎 (createReactiveStateEngine
) 。(2.00.8)stateIterate
,通过线性迭代实现线性递归。仅可用于响应式状态引擎 (createReactiveStateEngine
) 。(2.00.8)createReactiveStateEngine
) 支持 mmaxPositiveStreak
。(2.00.8)createWindowJoinEngine
参数 window=0:0 时,右表的计算窗口由左表相连两条数据的时间戳确定。(2.00.8)decimal32
和 decimal64
。需要注意:(2.00.8)
addColumn/replaceColumn!/dropColumns!/rename!
修改或删除 DECIMAL 类型列。sumbars
,支持统计向前累加到指定值的周期数。(2.00.8)regroup
,按给定的行/列标签对矩阵进行分组聚合的操作。(2.00.8)mifirstNot
,milastNot
,用于计算窗口内第一个和最后一个非空值。(2.00.8)loc
,通过标签或布尔向量获取矩阵指定的行和列的元素。(2.00.8)til
,用于生成一个从 0 开始的连续整型序列。(2.00.8)pack/unpack
,用于二进制字节流间的打包/解包。(2.00.8)align
,将两个矩阵按照两个指定方式连接,并根据行列标签对齐。(2.00.8)memLimitOfQueryResult
和 memLimitOfTaskGroupResult
以限制查询结果和子查询结果的内存占用;新增函数getQueryStatus 用于监控查询过程的内存占用及执行进度等信息。(2.00.7)getTSDBCompactionTaskStatus
,用于获取 TSDB 引擎 level file 合并任务的状态。(2.00.7)isPeak
和 isValley
,判断当前元素是否是相邻元素中的峰值/谷值。(2.00.7)rowAt(X, Y)
,以 Y 为索引,逐行获取 X 中对应索引的元素。(2.00.7)rowImin
和 rowImax
,逐行获取最值点的索引。(2.00.7)gmm
,支持通过高斯混合模型来实现聚类算法。(2.00.7)valueChanged
,通过比较当前元素和相邻元素,计算元素间的变化。(2.00.7)msum2
和 tmsum2
,支持在滑动窗口内计算平方和。(2.00.7)prevState
和 nextState
,以连续且值相同的元素作为状态标识,寻找当前元素相邻前/后一个状态的元素值。(2.00.7)getSupportBundle
,返回系统基本的配置信息和数据库信息。(2.00.7)topRange
和 lowRange
,统计序列中的当前值是前多少周期内的最大/小值。并在 ReactiveStateEngine 中支持了该函数。(2.00.7)spline
, neville
, dividedDifference
, loess
插值函数。(2.00.7)cumPositiveStreak
函数。(2.00.7)createDualOwnershipReactiveStateEngine
),支持按两种不同的分组方式分别应用不同的指标进行并行计算。(2.00.7)createIPCInMemoryTable
, loadIPCInMemoryTable
, dropIPCInMemoryTable
,分别用于创建跨进程共享内存表,加载跨进程共享内存表,销毁跨进程共享内存表。跨进程共享内存表可用于在流计算场景下,使 DolphinDB 服务端与同一个物理机上的客户端程序间能够高效地传递数据。(2.00.7)stretch
,将向量拉伸到指定长度。(2.00.7)getTransactionStatus
,获取事务的状态。新增命令 imtForceGCRedolog
,取消等待指定编号的事务回收。(2.00.7)setLogLevel
动态调整 server log 级别。(2.00.7)getRedoLogGCStat
用于获取 redo log 垃圾回收的状态。(2.00.7)cumPositiveStreak
函数。(2.00.7)cells
,使矩阵输出由参数 row 和 col 指定位置的元素值。(2.00.6)randDiscrete
,支持按指定概率分布离散抽样。(2.00.6)dynamicGroupCumsum
和 dynamicGroupCumcount
,并在响应式状态引擎中增加了对应的状态函数。(2.00.6)createDistributedInMemoryTable
支持创建分布式共享内存表。(2.00.6)createPartitionedTable
新增参数 sortKeyMappingFunction,通过为 sortColumns 引入映射函数来降低分区内时间线的个数,以提升查询性能。(2.00.6)toCharArray
,将字符串拆分为由字符组成的向量。(2.00.6)transaction
语句,将对单个内存表(或共享内存表)操作的多个 SQL 语句封装为一个事务。(2.00.6)enableTSDBAsyncSorting
和 disableTSDBAsyncSorting
用于开启和关闭 TSDB 引擎 cache engine 的异步数据排序功能。(2.00.5)getRecoveryWorkerNum
获取当前用于 chunk 恢复的工作线程数。(2.00.5)resetRecoveryWorkerNum
动态修改用于 chunk 恢复的工作线程数。(2.00.5)getLevelFileIndexCacheStatus
查询当前 TSDB 引擎索引内存占用情况。(2.00.5)kill -15 $PID
或集群 web 管理界面安全关机。(2.00.5)rebalanceChunksAmongDataNodes
,用于新增数据节点后平衡数据节点间的数据量。(2.00.5)rebalanceChunksWithinDataNode
,用于数据节点上新增磁盘卷后平衡磁盘卷之间的数据量。(2.00.5)imtUpdateChunkVersionOnDataNode
,修改数据节点上对应 chunkId 的版本号。维护集群中多副本数据之间,或数据节点与控制节点之间的版本一致性。(2.00.5)replay
支持多表回放到异构流数据表,并按照时间顺序输出。(2.00.5)concatMatrix
,支持水平或垂直拼接多个矩阵。(2.00.5)euclidean
、谷本距离 tanimoto
以及按行计算的欧式距离 rowEuclidean
和谷本距离 rowTanimoto
。(2.00.5)rowDot
。(2.00.5)firstHit
和 ifirstHit
,用于返回 X 中第一个满足条件的元素。(2.00.5)getCurrentSessionAndUser
,获取当前 session 对应的 sessionID 和 userID。(2.00.5)alter
,用于在已有的表中添加列。(2.00.5)create
,用于创建数据库或表。(2.00.5)streamEngineParser
,支持自动分解截面因子成多个内置流计算引擎的流水线。(2.00.4)existSubscriptionTopic
,用于判断某一个订阅是否已经创建。(2.00.4)createLookupJoinEngine
,支持将流数据表和流数据表、内存表或者分布式表(目前只支持维度表)做左连接。(2.00.4)moveChunksAcrossVolume
,在增加新的 volume 后,用于转移旧 volume 的部分 chunk 到新 volume。(2.00.4)resetDBDirMeta
函数转移老的 volume 上的 meta log 目录到新的 volume。(2.00.4)msumTopN
, mavgTopN
, mstdpTopN
, mstdTopN
, mvarTopN
, mvarpTopN
, mcorrTopN
, mbetaTopN
, mcovarTopN
, mwsumTopN
,且 createReactiveStateEngine
引擎支持它们相应的状态函数。(2.00.4)makeKey
和 makeOrderedKey
,可以将多个列合并成一个 BLOB 列,用作字典或集合的键值,其中 makeOrderedKey
的结果保留了多个字段的排序顺序。(2.00.4)aggrTopN
,用以计算根据排序列获取的前N行数据的聚合结果。(2.00.4)window
和 twindow
。与 move
与 tmove
类似,但适用于更通用的场景,对于窗口边界的处理稍有不同。(2.00.4)setCacheEngineMemSize
, setTimeoutTick
, setTSDBCacheEngineSize
, setMaxMemSize
, setReservedMemSize
和 setMaxBlockSizeForReservedMemory
支持在线修改对应的配置项。(2.00.4)fixedLengthArrayVector
,支持将多个向量合成一个 array vector。(2.00.4)loadNpz
支持导入 numpy 的 npz 文件。(2.00.4)suspendRecovery
用于暂停 recovery 任务。新增函数 resumeRecovery
用于重启 recovery 任务。(2.00.4)rowCorr
, rowCovar
, rowBeta
, rowWsum
, rowWavg
,可以对每行数据进行计算。(2.00.4)movingWindowIndex
和 movingTopNIndex
,用于获取每一个滑动窗口的元素下标,返回一个 INDEX[] 类型的 array vector。(2.00.4)fflush
函数,帮助将缓存中的数据写入文件系统。(2.00.4)cumfirstNot
,cumlastNot
, mfirst
, mlast
等函数,以及在响应式引擎中实现它们的状态函数。(2.00.3)oneHot
,用于做 one hot(独热)编码。(2.00.3)setAtomicLevel
函数,用于修改历史数据库的配置以支持并发写入。(2.00.3)covarMatrix
和 corrMatrix
,来计算 pairwise covariance 和 correlation,性能比直接使用高阶函数 cross
和 covar/corr
的组合快1~2个数量级。(2.00.2)tmoving
,可以实现时间窗口的滑动。同时响应式状态引擎中实现高阶函数 moving
和 tmoving
对应的状态函数(state function)。(2.00.2)runScript
,用于执行一段脚本。(2.00.2)makeUnifiedCall
, binaryExpr
和 unifiedExpr
用于元编程。(2.00.2)tmove
, tmfirst
, tmlast
, tmsum
, tmavg
, tmcount
, tmvar
, tmvarp
, tmstd
, tmstdp
, tmprod
, tmskew
, tmkurtosis
, tmmin
, tmmax
, tmmed
, tmpercentile
, tmrank
, tmcovar
, tmbeta
, tmcorr
, tmwavg
, tmwsum
。并在响应式状态引擎中实现对应的状态函数。(2.00.2)sma
, wma
, dema
, tema
, trima
, talib
, talibNull
和 linearTimeTrend
。(2.00.2)countNanInf
和 isNanInf
,统计 scalar, vector 或 matrix 中包含多少个 NaN 和 Inf 值。(2.00.2)count
, firstNot
, ifirstNot
, ilastNot
, imax
, imin
, lastNot
, nunique
, prod
, quantile
, sem
, sum3
, sum4
, mode
和 searchK
。(2.00.2)getConfigure
,传入一个 key,返回该配置项信息。如果参数为0,返回所有配置项目信息。(2.00.2)clearCachedModules
,可以强制清除缓存的 module。当缓存清除后,执行 use 语句时,会重新从文件加载 module。这个方法可以在不重启节点的情况下,重新加载已经更新的 module。只有 admin 才有权限执行这个命令。(2.00.2)rowSize
, rowStdp
, rowVarp
, rowSkew
和 rowKurtosis
。(2.00.2)percentileRank
函数,计算一个值在一个向量中的百分位。(2.00.1)zigzag
函数,计算数据中的极值点。(2.00.1)lowDouble
和 highDouble
函数,用于将 POINT 和 COMPLEX 等16字节的数据类型分解成高位8字节的 DOUBLE 类型和低位8字节的 DOUBLE 类型。(2.00.1)rdp
压缩算法函数。(2.00.1)wls
。(2.00.1)ifNull
和 ifValid
函数。(2.00.1)database
函数提供了一个可选参数 engine,默认值为 OLAP
,即旧的存储引擎。如果创建基于 TSDB 存储引擎的数据库,engine 设置为 TSDB
即可。(2.00.0)dropTable
在删除一个包含大量分区(超过10万个)的表时的性能。(2.00.10.4)div/mod
允许负数作为除数。(2.00.10.4)rmdir
新增参数 keepRootDir,可以指定删除文件时是否保留根目录。(2.00.10.2)license
函数时如果不指定文件名,将获取内存中的 license 信息。(2.00.10.2)getClusterDFSTables
函数能够显示表所有者创建的表,无论该表所有者对其创建的表是否都有读写权限。(2.00.10.2)subscribeTable
)的输出日志。(2.00.10.2)loadText
函数时,添加对用户权限的检查机制。(2.00.10.1)resample
函数支持输入具有非严格递增行标签的矩阵。(2.00.10.1)accumulate
的参数。(2.00.10.1)streamEngineParser
增加参数校验:若 triggeringPattern='keyCount',则 keepOrder 必须为 true。(2.00.10.1)localExecutors
和 maxDynamicLocalExecutor
停止使用。(2.00.10)window
和 percentChange
。(2.00.10)dropTable
函数删除一个具有大量分区的表的性能。(2.00.10)WHERE
进行条件过滤时的性能。(2.00.10)JOIN
连接语句,其连接列可以是原始列或对原始列应用了函数、条件过滤语句等操作后的列。(2.00.10)LEFT JOIN
, FULL JOIN
, INNER JOIN
语句在连接表时,支持一个表的连接列为整数类型,而另一个表的的连接列为 STRING 类型。(2.00.10)SELECT NULL
语句。(2.00.10)CROSS JOIN
连接。例如:SELECT * FROM table1, table2
。(2.00.10)ORDER BY
, GROUP BY
, UNION ALL
, INNER JOIN
等不可拆分换行。(2.00.10)<>
,行为等价于 !=
。(2.00.10)NOT LIKE
关键字。(2.00.10)sqlDS
作用于对按 DATEHOUR 值分区的分布式表时,按日期进行过滤查询时,没有进行分区剪枝。(2.00.10)mvccTable
新增参数 defaultValues, allowNull,分别用于设置字段的默认值和字段是否可以包含空值。对于 MVCC 表,支持修改字段名、字段类型或删除字段。(2.00.10)getRecoveryTaskStatus
函数的返回值 Status 中的 Finish 改成 Finished,Abort 改成 Aborted。(2.00.10)HINT_EXPLAIN
在 GROUP BY
部分,当分组算法为 “sort” 时,添加了 inplaceOptimization 和 optimizedColumns 字段,显示相关优化信息。(2.00.10)addColumn
增加 DECIMAL 类型列。(2.00.10)rename!
函数更新分布式表的列名时,对新列名增加检验。(2.00.10)rename!
, replaceColumn!
, dropColumns!
函数不再对列名大小写敏感。(2.00.10)lasso
, elasticNet
新增参数 swColName 和 checkInput,分别用于指定样本权重列和是否对参数进行合法性验证。ridge
新增参数了 swColName。(2.00.10)qclp
新增参数 x0, c, eps 和 alpha,分别用于指定绝对值的约束条件、求解精度和松弛参数。(2.00.10)loadText
,pLoadText
, extractTextSchema
等函数,支持加载一条记录中包含多个换行符的数据文件。(2.00.10)loadText
, pLoadText
, loadTextEx
, textChunkDS
, extractTextSchema
的 delimiter 参数可以指定多个字符。(2.00.10)loadTexeEx
导入数据至包含 array vector 或 BLOB 列的 OLAP 引擎下的表时,增加报错提示。(2.00.10)mstdTopN
, mstdpTopN
, mvarTopN
, mvarpTopN
,msumTopN
, mavgTopN
, mwsumTopN
, mbetaTopN
, mcorrTopN
, mcovarTopN
。(2.00.10)rowWavg
, rowCorr
, rowCovar
, rowBeta
, rowWsum
。(2.00.10)knn
函数的预测速度。(2.00.10)createTimeSeriesEngin
e 和 createDailyTimeSeriesEngine
)支持输出 array vector 类型数据列。(2.00.10)moving
函数性能。(2.00.10)createAnomalyDetectionEngine
)的 keyColunm 参数支持指定多个字段。(2.00.10)genericStateIterate
函数支持指定窗口长度为1,且优化了其窗口长度为0或1时的性能。(2.00.10)createWindowJoinEngine
和 createAsOfJoinEngine
新增参数 sortByTime,用于设置数据是否在全局范围内按时间顺序进行输出。(2.00.10)share
函数或语句将流计算引擎共享,以支持对其并发写入。createLeftSemiJoinEngine
)订阅包含数组向量列的表时,增加报错提示。(2.00.10)createWindowJoinEngine
)因插入数据类型不对(要求插入 SYMBOL 类型,而实际插入 INT)导致插入失败时,增加报错提示。(2.00.10)<-
)。(2.00.10)isort
函数,支持由多个等长向量组成的元组作为参数。(2.00.10)if
表达式支持使用运算符 in
。(2.00.10)stringFormat
函数新增以下功能:支持类型匹配,格式化对齐,指定小数输出位数,进制转换。(2.00.10)concat
函数的第二个参数可以为空。(2.00.10)take
函数支持输入元组或表;stretch
函数支持输入矩阵或表。(2.00.10)in
和 find
支持单列 table。(2.00.10)in
, binsrch
, find
, asof
函数的返回值形式与入参 Y 的形式保持一致。(2.00.10)rank
输入 Any Vector 类型参数时,增加报错提示。(2.00.10)distinct
关键字,用于对单个或多个字段去重。暂时不支持其与 group by
, context by
或 pivot by
配合使用。(2.00.9.7)createTimeSeriesEngine
, createDailyTimeSeriesEngine
的耗时统计参数由 "outputElapsedInMicroseconds" 修正为 "outputElapsedMicroseconds"。(2.00.9.4)getSessionMemoryStat
函数返回的 createTime 和 lastActiveTime 字段,由零时区时间改为当前时区的时间。(2.00.9.4)between and
语句与标准 SQL 的 between and
语句兼容。(2.00.9.4)getClusterDFSTables
仅显示对用户可见的表。(2.00.9.3)createWindowJoinEngine
的 leftTable 参数可以包含数组向量类型列。(2.00.9.3)subscribeTable
的 handler 参数支持指定为共享内存表、共享键值表或共享索引表。(2.00.9.3)cut
函数支持切分表和矩阵。(2.00.9.3)cumsum
等。(2.00.9.3)interval
新增参数 closed
, label
, origin
。(2.00.9)getRecentJobs
新增返回值字段 clientIp 和 clientPort 用于获取客户端的 IP 和 Port 信息。(2.00.9)ema
新增参数 warmup
,配置后前 window - 1 个窗口也会计算输出。(2.00.9)accumulate
和 reduce
支持输入一元函数和三元函数。(2.00.9)outputElapsedMicroseconds
用于计算耗时统计。(2.00.9)rank
和 rowRank
新增参数 precision
,用于设置排序值的精度。(2.00.9)groups
参数 mode
支持 "vector", "tuple"。(2.00.9)linearTimeTrend
支持对矩阵和表的计算。(2.00.9)eachLeft
, eachRight
, eachPre
, eachPost
, reduce
新增参数 consistent
,支持子任务结果的类型和形式可以不一致。eachLeft
, eachRight
, eachPre
, eachPost
, cross
, accumulate
, reduce
不再根据第一个子任务的计算结果来决定输出对象的形式,而是根据所有结果来决定输出对象的形式。objectChecksum
支持 DECIMAL 类型。(2.00.9)rank
和 rowRank
的参数 tiesMethod
支持使用 first 按照原数据的顺序排名。(2.00.9)cut
支持将数据拆分成标量。(2.00.9)split
支持输入字符串向量。(2.00.9)rowAt
支持以数组向量为索引。(2.00.9)array
创建 tuple 时支持默认值为 STRING 类型。(2.00.9)memSize
可以显示 any vector 的内存占用。(2.00.9)getSessionMemoryStat
返回值增加了缓存状态的打印,包含维度表,表数据,cache engine,字典编码等缓存占用信息,以及流数据发布和订阅队列深度的信息。(2.00.9)setColumnComment
支持为 mvccTable 增加注释信息。(2.00.9)keepdulicates
= last 时,select count(*) 的查询速度。(2.00.9)regularArrayMemoryLimit
实际生效的参数值为配置值与 maxMemSize/2 中的较小值。(2.00.9)streamFilter
的参数 condition
支持传入内置函数。 (2.00.9)replay
新增参数 sortColumns
,相同回放时间戳的数据将根据该参数指定的字段进行排序。(2.00.9)streamEngineParser
支持解析 byRow
嵌套 contextby
函数,放入横截面引擎进行计算。(2.00.9)createWindowJoinEngine
在 window = 0:0 时的计算延迟。(2.00.9)accumulate
。(2.00.9)genericTStateIterate
的性能。(2.00.9)streamEngineParser
的解析性能。(2.00.9)transaction
语句实现事务。(2.00.9)ej
的性能。(2.00.9)select
子句中的列别名或者新创建的列作为 where 的过滤条件。(2.00.9)pivot by
最后一列为分区列时的性能。(2.00.9)context by
支持 matrix 和 table 的输入形式。(2.00.9)context by
和 group by
的查询性能。(2.00.9)lsj
在大数据量下的性能。(2.00.9)join
函数进行连接时,必须为临时表指定表名。distinct
语句返回的结果列列名会在原始列名前加“distinct_”。in
语句后跟单列表,而无需将其转换为向量。func
为内置函数名。(2.00.9)x[start:end]
的形式访问 array vector 的结果发生变化。如果 end>size(x),不再抛出异常,而是将超出范围的位置填充 NULL。(2.00.9)contextSum2
函数传入 array vector 时,会抛出异常而不是返回空值。(2.00.9)interval
函数增加校验,当 X 输入数据为整型数据时,不能指定 explicitOffset=true。(2.00.9)getSystemCpuUsage
的返回值。(2.00.9)sum
, avg
, count
, size
, min
, max
, iif
等常用函数。(2.00.9)moving
。(2.00.9)backup
支持通过拷贝分区文件方式进行备份,且可通过 restore/migrate 进行恢复。(2.00.8)replaceColumn!/rename!/dropColumns!
函数支持分布式表。(2.00.8)dropPartition
函数新增参数 deleteSchema,用于删除 VALUE 分区时同步删除表 schema 中的分区信息。(2.00.8)dropDatabase
删除数据库时,删除 database 所有相关的物理文件夹。(2.00.8)saveText
支持传入 SQL 元代码,支持并行读取分布式表数据并存入磁盘。(2.00.8)createWindowJoinEngine
新加可选参数 nullFill,对输出的结果的空值进行填充。(2.00.8)replayDS
函数的 timeRepartitionSchema 参数支持更多时间类型。(2.00.8)createReactiveStateEngine
)中包含自定义的相同表达式时不再重复计算。(2.00.8)rolling
函数的计算性能。(2.00.8)getBackupList
返回的表增加字段 updateTime 和 row,分别记录分区最近一次修改时间和分区行数信息。(2.00.8)getBackupMeta
返回的字典增加键值 rows 用于显示分区行数信息。(2.00.8)loadText/ploadText/loadTextEx/textChunkDS
函数增加可选参数 containHeader,表示数据文件是否包含列名信息。(2.00.8)updateLicense
时,若 license 授权类型改变,添加错误提示。(2.00.8)subarray
函数输入的范围越界,会返回空值,不再不抛出异常。(2.00.8)mrank
。(2.00.8)toJson
函数可转换的数据取消最大长度为1000的限制。(2.00.8)max
和 min
函数处理时间类型数据的行为由统一转换为长整型改为统一时间类型精度后比较。(2.00.8)getClusterPerf(true)
返回高可用集群下所有控制节点的信息,且返回值新增 isLeader 字段,显示该控制节点是否为 raft 组的 leader。(2.00.7)restore
, loadBackup
, getBackupMeta
等函数查询备份的表级分区数据时,partition 参数无需指定物理索引名。(2.00.7)getRecoveryTaskStatus
返回值新增 FailureReason 字段显示 recovery 任务失败的原因。(2.00.7)backup
备份数据时的压缩功能。(2.00.7)cancelJob
取消不存在的 job 时,系统不再抛出异常,而是打印错误信息到 log 文件。(2.00.7)createSessionWindowEngine
新增参数 forceTriggerTime,在 useSystemTime=false 时,强制触发最后一个窗口的计算输出。(2.00.7)streamFilter
分发普通流表时,filter 参数的 condition 支持输入布尔表达式的元代码。(2.00.7)createEqualJoinEngine
, createAsofJoinEngine
和 createLookupJoinEngine
的 metrics 参数可以指定输出左表或右表的时间列/连接列。(2.00.7)replay
回放的异构流表的列字段可以是数组向量(array vector)。(2.00.7)createReactiveStateEngine
的 keyPurgeFilter 参数必须输入布尔类型的表达式,否则会报错。(2.00.7)createLookupJoinEngine
的 metrics 参数支持输入元组。(2.00.7)dropStreamEngine
若传入不存在不存在的引擎名称,则会抛出异常。(2.00.7)rolling
函数行为:(2.00.7)
rolling
的 funArgs 参数只能是向量或矩阵。如果需要输入多个向量,则用元组表示。rolling
函数时的计算性能:cumsum
, cummax
, cummin
, cumprod
, mcount
等。rolling
函数时的计算性能:cumsum
, cummax
, cummin
, cumprod
, mcount
等。(2.00.7)purgeCacheEngine
更名为 flushOLAPCache
、setCacheEngineMemSize
更名为 setOLAPCacheEngineSize
、getCacheEngineMemSize
更名为 getOLAPCacheEngineSize
(2.00.7)createDailyTimeSeriesEngine
的参数 sessionEnd 支持指定 00:00:00 作为当天的 24:00:00(即第二天的 00:00:00)。(2.00.7)createReactiveStateEngine
支持状态函数 trueRange
;若 metrics 中指定返回常量的状态函数,则会抛出异常。(2.00.7)cummed
和 cumpercentile
两个窗口函数。(2.00.6)createTimeSeriesEngine
和 createDailyTimeSeriesEngine
)新增参数 closed 来控制计算窗口的闭合边界。(2.00.6)streamEngineParser
的 keyColumn 参数取消对传入列名的大小写判断。(2.00.6)createTimeSeriesEngine
和 createDailyTimeSeriesEngine
新增参数 keyPurgeFreqInSec, 用于清理长时间无数据的分组。(2.00.6)share
语句将普通内存表共享时,增加共享表变量名校验。(2.00.6)streamFilter
支持对普通流表的列数据进行过滤、分发。(2.00.6)createTimeSeriesEngine
和 createDailyTimeSeriesEngine
的 metrics 支持对矩阵进行运算。(2.00.6)resample
函数的 rule 参数支持 "H", "L", "U", "min", "N" 以及 "S",且新增了参数 closed,label 和 origin,可以对分组区间进行设置。(2.00.6)byRow
函数支持输入 array vector。(2.00.6)replay
函数在执行过程中如果报错,则直接抛出异常。(2.00.6)tmbeta(T, X, Y, window)
, cumbeta(X, Y)
, rowBeta(X, Y)
函数的参数位置调整为 tmbeta(T, Y, X, window)
, cumbeta(Y, X)
, rowBeta(Y, X)
。(2.00.6)redoLogDir
配置为相同路径,则会报错。(2.00.6)contextSum
和 contextSum2
的输入参数是表时,只有对应列都是数值类型时才返回结果。matrix
函数支持将每行都等长的 array vector 转化为矩阵。(2.00.6)subscribeTable
新增可选参数 userId 和 password,系统在用户退出后自动尝试重新登录,保证订阅数据成功写入分布式表。(2.00.5)getStreamingStat().subWorkers
函数返回结果 throttle 统一为以毫秒为单位。(2.00.5)getLeftStream
和 getRightStream
支持 join 引擎的级联。(2.00.5)addAccessControl
对共享内存表(包括共享流表)或流数据引擎对象增加权限控制。(2.00.5)quantile
等聚合函数时,不符合条件的列在输出结果中保持不变。(2.00.5)pivot by
语句支持转换 UUID 类型的列。(2.00.5)rowNo
函数应用于 SQL 查询语句中时,将按照序列相关函数处理。(2.00.5)ceil
和 floor
结果的范围上限提升为2^53。(2.00.5)pivot by
语句最后一列为分区列,且 select
字段不包含聚合函数或序列函数,pivot by
语句性能提升近五倍。(2.00.5)med
参数支持 BOOL 类型。(2.00.5)ema
、kama
和 wma
支持计算 BOOL 类型向量。(2.00.5)slice
函数时 ,当 rowIndex 或 colIndex 越界时,不再抛出异常,而是返回空值。(2.00.5)spearmanr
函数时,当 X 是矩阵,Y 是标量时,返回结果由 NULL 变成 0。(2.00.5)mutualInfo
函数时,当 X 是矩阵,Y 是标量时,返回结果由标量变成向量。(2.00.5)listTables
函数返回的表名调整为对大小写敏感。(2.00.5)addColumn
新增列名支持以数字开头。(2.00.5)loadText
和 loadTextEx
导入 csv 文件时,第一行数据的读取上限为 256 KB。(2.00.5)rand
和 norm
的参数 count 支持输入数据对,用于指定生成矩阵的维度。(2.00.5)loadText
和 loadTextEx
新增参数 arrayDelimiter,支持导入包含 array vector 的 csv 文件。(2.00.5)rowAnd
, rowOr
, rowXor
)支持输入整数。(2.00.5)bar
函数新增参数 closed,用于指定分组包含左边界或右边界。(2.00.5)order by
语句支持使用 as 改名前和改名后的字段。(2.00.5)dailyAlignedBar
参数 X 新增支持 SECOND,TIME,NANOTIME 类型向量。(2.00.5)top
子句查询数据时的性能。(2.00.4)y, t[
y]>0] = 0,其中 t 是表变量,y 是 t 的列名。(2.00.4)upsert!
函数新增可选参数 sortColumns,更新后的表可根据该指定列进行排序。(2.00.4)cancelJob
, cancelConsoleJob
支持同时取消多个任务,且优化了集群阻塞时取消任务的性能。(2.00.4)loadText
支持 schema 中指定数据类型为 array vector。(2.00.4)set
支持 BLOB 类型的值。(2.00.4)keyedStreamTable
一次性批量插入多条键值相同的新记录,出现插入会失败。(2.00.4)atImin
和 atImax
在 window join 中的使用性能。(2.00.4)run
命令新增可选参数 clean,控制是否清理当前 session 中的变量。(2.00.4)wj
函数,duration 支持设置为 y(年),M(月),B(工作日)。(2.00.4)loadText
支持字符串包含 ASCII 码为 0 的字符。(2.00.4)loadTextEx
新增可选参数 atomic,默认值是 false。加载大文件的情景下,设置该参数为 false,将文件加载事务拆分为多个事务。(2.00.4)getCompletedQueries
函数和 getRunningQueries
函数返回值中添加 remoteIP 字段。(2.00.4)getStreamEngineStat
返回的横截面引擎的统计信息添加了 memoryUsed 字段,可以查看横截面引擎所占内存。(2.00.4)createAsofJoinEngine
在 metrics 中支持输出右表的时间列。(2.00.4)mmad
状态函数。(2.00.3)sma
, wma
, dema
, tema
, trima
, t3
, ma
, talib
, talibNull
, `linearTimeTrend state function。(2.00.3)lj
, lsj
, ej
, aj
和 wj
,可以对不同分区方案的表,分区列不是连接列的表,或者不在同一库中的分布式表做 join。(2.00.3)delete
支持并发操作。(2.00.3)stdp
, std
, varp
, var
, skew
, kurtosis
, mskew
, mkurtosis
, tmskew
, tmkurtosis
,以及 window join 中 skew
和 kurtosis
等函数的精度。(2.00.3)groups
, distinct
, nunique
和 at
。(2.00.3)distinct
函数可与 group by 配合使用,其结果为一个 array vector。(2.00.3)nunique
函数支持分布式计算。(2.00.3)qr
, ols
, dot
函数输入的校验,不允许行数或列数为0的矩阵作为输入。(2.00.3)iif
函数在 condition 包含空值时的行为。旧版本中 condition 的元素包含空值被当作 false 处理。新版本中如果为空值,对应的结果也为空值。(2.00.2)accumulate
等计算时放开8192行的限制。(2.00.2)interval
功能(按时间聚合)移除 range 参数,同时增加可选参数 explicitOffset,默认值为 false。当该参数为 true 时,可以将第一个窗口的起始位置指定为 where 指定的窗口的起始位置。(2.00.2)ols
和 wls
在 mode 为2的时候,新增一个输出 Residual。同时新增一个函数 residual
用于计算回归的残差。(2.00.2)rank
, denseRank
, cumrank
, rowRank
和 rowDenseRank
支持 percent 形式。(2.00.2)kmeans
支持自定义质心。(2.00.2)varp
, stdp
, prod
, skew
和 kurtosis
5个聚合函数的优化。(2.00.2)unpivot
。(2.00.2)msum
,当输入数据为 indexed matrix 或 indexed series 时,窗口支持时间偏移窗口类型。(2.00.2)dropPartition
的性能。(2.00.2)database
函数新增可选参数 atomic。当 atomic 取值为 'CHUNK' 时,写入操作只保证分区的原子性,此时也允许多个并发线程同时写入该数据库的同一个分区。(2.00.2)createTimeSeriesEngine
和 createDailyTimeSeriesEngine
函数新增参数 forceTriggerTime。(2.00.1)scheduleJob
的间隔时间到5分钟。(2.00.1)upsert!
函数 ignoreNull
字段支持 DFS 表。(2.00.1)parseExpr
新增可选参数 modules 和 overloadedOperators,可加载模块,重载运算符,且支持使用字典来给表达式中的变量赋值。(2.00.1)sql
函数新增可选参数 exec,支持生成 exec 语句。(2.00.1)temporalAdd
支持增加与减去工作日(BusinessDay),支持时间类型 DATEHOUR。(2.00.1)interval
函数支持 step 参数,以滑动窗口的方式计算聚合结果。(2.00.1)sql
函数中当参数 groupFlag 为 PIVOTBY 时,参数 groupBy 支持选择多列。(2.00.1)createReactiveStateEngine
新增字段 keyPurgeFilter 和 keyPurgeFreqInSecond,以支持响应式状态引擎(reactive state engine)自动清理 key。(2.00.1)replay
的输入。(2.00.1)delete
语句支持 map
子句,将 delete
语句下沉到各分区执行。(2.00.1)控制节点在启动过程中,如果持续接收到其他节点的用户登录(login)请求,会导致其崩溃。(2.00.10.9)
当进行本地多线程订阅时,由于发布端发布速度过快,订阅端的消息队列被占满而无法接收新的数据,进而导致数据丢失。(2.00.10.9)
在高度并发执行函数 login
和 getDynamicPublicKey
时,有时可能导致 server 崩溃。(2.00.10.8)
bar
函数设置 closed='right' 时,对分区表里的跨天数据分组错误。(2.00.10.8)
ParseJsonTable
将 JSON 中 string 类型的 NULL 解析为字符串 “NULL” 而非空值。(2.00.10.8)
当持久化流表中的 BLOB 字段过大时,即使设置了较小的 preCache,仍可能导致大量数据被加载到内存中。(2.00.10.8)
查询内存表数据时,在不使用 group by 语句的情况下嵌套使用聚合函数出现报错。(2.00.10.8)
在异步复制并发场景下,从集群极低概率出现控制节点不下发任务的情况。(2.00.10.8)
通过 web 查询库表时,小概率发生错误:“connection closed, code: 1006”。(2.00.10.7)
当 JSON 中某个字段的前十行数据均为 NULL 时,parseJsonTable
将推导出错误的格式,并据此格式进行表解析。(2.00.10.7)
使用 pack
函数出现内存泄漏。(2.00.10.6)
执行 cross(func, a, b)
时,若 a 或 b 的数据量过大,会导致 server 崩溃。(2.00.10.6)
使用 unpack
函数出现内存泄漏。(2.00.10.5)
当 withNullFill
的参数 func 指定为 or
时,若输入参数是布尔类型,则结果不正确。(2.00.10.5)
对 sortColumns 列进行 group by
分组后执行 limit
子句没有生效。(2.00.10.4)
更新表结构时出现数据竞争导致内存耗尽并崩溃。(2.00.10.4)
若存放备份数据的目录(backupDir 指定的路径)在 NFS上,则备份可能会卡住。(2.00.10.4)
通过 setMaxConnections
设置最大连接数,创建连接后再关闭连接时发生内存访问越界。(2.00.10.4)
使用非 SQL-92 标准的 join
写法对分区表进行连接,且 where
语句中引用了左表的列,导致 server 崩溃(2.00.10.4)
跨进程共享内存表的 SYMBOL 类型与 STRING 类型不兼容。(2.00.10.4)
创建跨进程共享内存表失败后,再次创建同名跨进程共享内存表,导致 server 崩溃。(2.00.10.4)
分布式查询的过滤条件中包含 SECOND 类型与 INT 类型的比较时会报错。(2.00.10.4)
在集群中使用 SQL 查询数据时,若执行过程包含 reduce 阶段,且查询的数据不在本地节点时,会报错 'unrecognized column'。此为2.00.10版本引入的问题。(2.00.10.3)
高可用环境下,设置权限导致控制节点内存泄露。(2.00.10.2)
单节点模式下,TSDB 写入时发生 OOM,导致事务状态不一致。(2.00.10.2)
parseExpr 无法解析 JSON 对象中的空值“{}”。(2.00.10.2)
createReactiveStateEngine 的 dummyTable 参数直接赋值一个流表(streamTable(…))时,访问创建引擎的句柄会造成连接断开。(2.00.10.2)
恢复数据到一个新的数据库时会报错“getSubChunks failed, path'/xx' does not exist”。(2.00.10.2)
loc
函数通过行、列标签获取矩阵元素的结果不正确,此为2.00.10版本引入的问题。(2.00.10.2)
恢复 DECIMAL 类型数据发生 scale 丢失。(2.00.10.2)
当 database
的 atomic='CHUNK' 时,若一个事务涉及多个 chunk,可能出现元数据版本不一致。(2.00.10.2)
将非字符串变量传入 interval
函数的 label 参数,导致服务器崩溃。(2.00.10.2)
查询以时间列进行值分区的表时,通过 where
条件对分区列进行过滤的耗时比较长,此为2.00.10版本引入的问题。(2.00.10.2)
mprod
函数的中间结果溢出导致服务器宕机。(2.00.10.2)
当 in(X,Y)
中 Y 为集合且 Y 包含了超过11位数的长整型时,结果不正确。(2.00.10.2)
并发执行 restore
事务或 restore
事务与其他事务并发执行时,重启后可能导致元数据不正确。(2.00.10.2)
修复了响应式状态引擎在输入数据分组数多于1024个时应用 genericStateIterate
出现错误结果的问题。(2.00.10.2)
查询分布式表时对某些列使用了带有”@JIT”标识的自定义因子函数,导致服务器宕机。(2.00.10.2)
查下 TSDB 引擎下的分布式标,若查询语句同时使用了 context by 和 where,且 context by 的列包含了sortKey 时,会报错:Unrecognized column name。(2.00.10.1)
Windows 系统下,通过 files
函数查询大于 2GB 的文件时,返回的 fileSize 值不正确。(2.00.10.1)
在高可用集群下,使用 addFunctionView
时,若序列化出现问题,则不会清理序列化未完成的函数。(2.00.10.1)
在高可用集群下,一个控制节点添加使用了插件的函数视图时,会导致其它控制节点宕机。(2.00.10.1)
拥有 DB_MANAGE 权限的用户无法给其它用户赋权。(2.00.10.1)
添加节点后,进行备份可能会报错。(2.00.10.1)
查询采用 COMPO 分区的分布式表,若查询语句同时满足以下条件,则查询结果可能会出现数据缺失:(2.00.10.1)
2.00.10版本,使用例如 ... and not like(id, '%a'),not like, not in, not between
的语句时,解析会出现报错。(2.00.10.1)
createReactiveStateEngine
的 metrics 参数以 tuple 形式给出,且 tuple 中包含返回多个值的函数或表达式时,会出现 server 崩溃。(2.00.10.1)
当 symbolbase 文件出现问题时,再次加载该文件会导致 server 崩溃。(2.00.10.1)
当查询分布式表的数据量比较大时,若查询语句中使用了 TOP
和 GROUP BY
,则可能报错找不到某列。(2.00.10)
SQL 查询时报错找不到某个列,但列名可能不正确。(2.00.10)
向列数较多的分布式表的一个分区写入较多数据时,可能出现因写入失败而导致系统崩溃的问题。(2.00.10)
并发加载和删除同一个数据库下的不同表后,再通过 loadTable
加载一个表,可能报找不到 .tbl 文件的错误。(2.00.10)
在聚合函数中无法用 head
和 tail
函数。此为 2.00.6 引入的问题。(2.00.10)
对维度表通过 renameTable
修改表名的同时进行查询,会导致死锁。(2.00.10)
当分区个数过多时,SQL 查询通过 BETWEEN AND
进行剪枝操作会报错:The number of partitions [xxxxx] relevant to the query is too large.
。(2.00.10)
TSDB 引擎下的分区表或维度表设置 keepDuplicates=LAST 时,通过 UPDATE
语句更新列名大小写不敏感。(2.00.10)
CASE WHEN
语句中若使用运算、函数,会导致服务器崩溃。(2.00.10)
SQL 查询时使用 DISTINCT
关键字,在某些场景下可能结果不正确。(2.00.10)
TSDB 引擎将内存中的数据刷入磁盘时,如果发生 OOM,则会出现 server 崩溃。(2.00.10)
向 TSDB 引擎写入 STRING 类型的数据长度超过 256K 时,出现报错:TSDBEngine failed to deserialize level file zonemap
。(2.00.10)
当查询采用 VALUE 或 RANGE 分区的分布式表时,若 SELECT
语句中的分区列使用了时间转换函数,并且在 GROUP BY
语句中对该列也使用了相同的时间函数,同时取了与 SELECT
语句中字段名称不同的别名,导致查询结果错误。(2.00.10)
通过 SQL DELETE
语句删除数据时,若相关分区所有副本都下线,则会报错: chunktype mismatched for path
。(2.00.10)
local executor 在进行任务调度时可能产生死锁。(2.00.10)
响应式状态引擎中使用 JIT 用户自定义函数,当单次写入大量数据时,输出结果不正确。(2.00.10)
多个节点同时执行 unsubscribeTable
时,可能出现死锁。(2.00.10)
createLeftSemiJoinEngine
的 metric 中指定的列名与输入表的列名大小写不一致,则会发生崩溃。(2.00.10)
对持久化流表并发进行追加数据和保存流表,会出现 server 崩溃。(2.00.10)
createWindowJoinEngine
的 metrics 中若使用了列的别名,则聚合计算的结果错误。(2.00.10)
通过 DROP table
语句删除流表,出现该流表无法被删除,也无法被取消订阅。(2.00.10)
修复了一些语法(比如 "/" == "a")解析的问题。(2.00.10)
当 ols
第二个参数全是0时,输出的结果会多一列。(2.00.10)
DECIMAL 类型数据通过 join 合并后的结果不正确。(2.00.10)
wj
的 aggs 参数输入不规范时,因解析失败而导致 server crash。(2.00.10)
expr
函数中若传入了 DATEHOUR 类型,则结果不正确。(2.00.10)
webLoginRequired 启用时 web 无法正常加载。(2.00.10)
使用 cast
转换 SYMBOL 数据时结果不正确。(2.00.10)
nullFill
对 bucket
函数返回值中的空值填充失败。(2.00.10)
对 DECIMAL 类型列应用 unpivot
后,精度丢失。(2.00.10)
自定义函数中使用 twindow
调用了一个自定义匿名聚合函数,出现报错:func must be an aggregate function.
。(2.00.10)
启动 DolphinDB 进程时通过 run 参数指定运行脚本,若脚本包含 submitJob
,则会导致 server 崩溃。(2.00.10)
修复在同时满足以下条件时,server 重启会产生函数视图与 module 函数名冲突的问题:
preloadModules
指定了预加载该 module同时优化了在其它情况下,当函数视图与 module 函数发生冲突时的报错信息。(2.00.9.7)
服务器与客户端通过 SSL 通讯时,如果从服务器传输到客户端的数据量很大,可能会导致会话断开连接。(2.00.9.7)
在集群模式且设置数据库为 atomic='CHUNK' 的情况下,对于同一个数据库下分区数据分布在不同节点上的不同表进行连接时,结果有时不正确。(2.00.9.7)
状态引擎未处理 metrics 中的用户自定义函数的命名空间。(2.00.9.7)
通过 mskew
或 mkurtosis
计算的数据中,若某个数据列连续存在相同值,且相同值的个数大于窗口长度(window),则计算结果不正确。(2.00.9.7)
DolphinDB 的 ols 函数输入参数为矩阵时,若中间结果是奇异矩阵,则最后的计算结果和 Python statsmodels.OLS 的结果不一致。(2.00.9.6)
查询 MVCC 表,对字符串类型列使用 order by
时,不支持同时搭配 limit 0, k(或 limit k)。(2.00.9.5)
删除一个视图(dropFunctionView
)时,由于写日志时未加锁,导致偶发宕机。 (2.00.9.5)
等值连接(equi join
, inner join
)两个表,其中第一个连接列为 STRING 类型,第二个连接列为 NANOTIMESTAMP 类型时,返回结果不正确。(2.00.9.5)
通过 loadTable
加载表时,由于对表名校验不严格,导致分级存储数据丢失。(2.00.9.5)
禁用 SQL 的 select distinct
语句。SQL 语句中出现的 distinct
将按照函数的逻辑执行,即结果中返回的顺序不保证和原表中的相同,且列名为 distinct_xxx。(2.00.9.5)
如果 datanodeRestartInterval
的设置时间小于系统预定义值100,在安全关机情况下或重启集群时,数据节点会立刻被控制节点启动。(2.00.9.4)
toJson
传入的 tuple 中包含数值型标量时,转换结果错误。(2.00.9.4)
如果字典中的 value 是ANY类型的向量,则使用 toJson 转换后会出现缺失元素的情况。(2.00.9.4)
使用 bar
查询分区表时,如果将 bar
的 interval 参数设置为 0,则可能会导致 server 崩溃。(2.00.9.4)
通过 replay
函数进行异构回放时,若输入标识为 SYMBOL 类型,则出现报错。此为 2.00.9 版本引入的 bug。(2.00.9.4)
因部分定时作业序列化失败而导致在重启后所有定时作业反序列化失败。(2.00.9.4)
通过 scheduleJob
设置的定时任务序列化失败但仍然生效。(2.00.9.4)
array
函数的 defaultValue 参数指定为向量,导致 server 崩溃。(2.00.9.4)
upsert!
函数的 newData 参数为非表类型时,导致 server 崩溃。(2.00.9.4)
使用 upsert! 更新表数据时,同时满足以下条件,导致更新失败(2.00.9.4):
通过 update
对 mvcc 表一次新增多列时出现类型不匹配的报错。(2.00.9.4)
通过 update from
语句更新 TSDB 引擎中设置了 keepDuplicates=LAST的表,结果不正确。(2.00.9.4)
group by
一个包含特殊字符(控制字符、标点符号、数学符号和其它特殊符号等)的列时,返回结果里会忽略这些特殊字符。(2.00.9.4)
通过 addColumn
向 TSDB 引擎中的表添加列后导致数据错误以及宕机。(2.00.9.4)
dropColumns!
不能删除顺序分区内存表。(2.00.9.4)
控制节点在加载本地磁盘分区表时可能出现宕机。(2.00.9.4)
getClusterDFSTables
函数会返回已经删除或不存在的表。(2.00.9.4)
添加新的数据节点并执行 moveReplicas()
后,出现分区物理路径和元数据记录不一致。(2.00.9.4)
N 对 N 流表回放时,如果某个 timePartition 中输入数据源为空表,则出现输出表数据错位。(2.00.9.4)
window join 引擎的 nullFill 参数格式为 [[]],且指定 window=0:0 时,输出的行数和左表不一致。(2.00.9.4)
创建流数据引擎时,因未对某个内部变量进行初始化导致引擎偶尔创建失败。(2.00.9.4)
对 TSDB 引擎下的表并发写入和查询时,当发生 OOM 时,查询线程概率性出现 crash。(2.00.9.4)
分区物理文件夹不存在(手动删除)后,可能导致 flush 数据到磁盘时丢数据或者主动进行 flush 的操作(如 dropTable)卡住。(2.00.9.4)
temporalAdd
函数的 unit 指定为 "M" 时,结果不正确。(2.00.9.4)
不同事务操作相同分区时,偶尔出现存储数据错误。(2.00.9.3)
对用户赋予 DB_READ 或 TABLE_READ 权限后,偶尔出现无法查询数据。(2.00.9.3)
在高可用集群环境中,若控制器节点在关闭时,raft 日志未能完全写入,当其重新启动时发生崩溃。(2.00.9.3)
loadText
加载的 csv 文件中包含未配对的引号(""),导致 server 崩溃。(2.00.9.3)
MVCC 表新增列后,通过 schema
查看表结构,或者通过 setColumnComment
对新增的列添加注释时,导致 server 崩溃。(2.00.9.3)
分区字段包含不可见字符导致 controller 和 datanode 版本号不一致。(2.00.9.3)
TSDB 引擎不自动释放 symbolBase 对象。(2.00.9.3)
byRow
函数对输入的列式元组(columnar tuple)应用非聚合函数,如果返回结果为 arrayVector 或者 anyVector,会导致 server 崩溃。(2.00.9.3)
更新内存表越界索引的数据,导致 server 崩溃。(2.00.9.3)
在高并发场景下,频繁登录用户,可能导致 server 崩溃。(2.00.9.3)
StreamEngineParser
使用嵌套 UDF 函数 导致 server 崩溃。(2.00.9.3)
window join 引擎设置输出计算耗时(outputElapsedMicroseconds=true),可能不输出结果。(2.00.9.3)
lookup join 引擎的输入表包含数组向量类型列时,发生 OOM。(2.00.9.3)
流表订阅端重连时,如果发布端流表未定义,则会出现文件描述符泄露。(2.00.9.3)
更新 XSHG 和 XSHE 的 holiday 日历。(2.00.9.3)
parseExpr 转换包含 lambda 函数的字符串,导致 server 崩溃。(2.00.9.3)
parseExpr 转换的字符串末尾带分号时,出现报错。(2.00.9.3)
对组合分区表进行分组(group by)查询时,若同时满足以下条件,会导致 server 崩溃:(2.00.9.3)
select
子句中包含部分聚合函数;where
子句的条件中使用函数调用,且使用了 or
语句。RepartitionDS
通过 query 参数查询连接(join)表,且 partitionType 参数指定为 VALUE 分区时,出现 server 崩溃。(2.00.9.3)
分区表的连接列未包含所有分区字段,且左、右表的部分分区字段具有相同的列名,对右表部分分区列进行过滤时,查询结果不正确。(2.00.9.3)
对按月进行值分区的 DFS 表,通过 where 条件对某月第一天数据进行过滤,查询结果不正确。(2.00.9.3)
查询语句中通过 order by
对列名为 DATE(大小写敏感)的列倒序排序,且搭配 limit
使用,导致 server 崩溃。(2.00.9.3)
对 DECIMAL 类型列进行 pivot by
,且对 select
指定的列进行 rowSum
等分布式计算时,查询结果不正确。(2.00.9.3)
分组(group by)对多个查询列进行时间序列相关(例如 pre
, rank
等)的聚合计算,查询结果不正确。(2.00.9.3)
高可用方案中客户端重复提交写入任务。(2.00.9)
TSDB Compact 的时候发生 oom,产生的垃圾 levelFile 未回收。(2.00.9)
聚合函数运算得到的内存表,后续参与 move 等移动函数的运算时会修改本身内存表数据。(2.00.9)
window join 的 metric 用匿名聚合函数时报错。(2.00.9)
按月分区,where 条件的时间类型和列的时间类型不同时且为当月的最后一天时,查询结果有缺失。(2.00.9)
ols
自变量为字符串类型会导致 crash。(2.00.9)
使用 loadText
函数导入 string[] 的类型数据会导致 crash。(2.00.9)
在 transaction
语句中使用 mvcc 表会导致 crash。(2.00.9)
corr
函数与 deltas
函数联用,加了 as 之后结果不正确。(2.00.9)
当 TSDB 引擎包含 array vector 列时,upsert 会报错。(2.00.9)
kill -9 直接关闭 server 后会导致一些 redo log 不回收。(2.00.9)
响应式状态引擎计算时,若表里面有 STRING 类型,偶尔会导致 crash。(2.00.9)
submitJob
时,若 metacode 包含未定义变量,执行时会导致 crash。(2.00.9)
集群网络故障后网络恢复,有时会导致节点 crash。(2.00.9)
元编程计算时使用 partial function 并启用 context by 会导致结果不正确。(2.00.9)
replayDS
中 sqlObj
无法识别为 metacode,导致错误的报错。(2.00.9)
rank 一个 array vector 导致 crash。(2.00.9)
若 lj 的左表为内存表,右表为分布式表,且右表的数据库路径包含多层目录(如数据库路径 dfs://mydbs/quotedb),则会报错。(2.00.9)
createTimeSeriesAggregator
,当 metric
包含 keyColumn 时,会报错。(2.00.9)
trace 功能导致文件符泄露。(2.00.9)
高可用集群下当两个节点同时执行 getClusterPerf
函数会导致死锁。(2.00.9)
accumulate
多次执行时偶尔会 crash。(2.00.9)
createDailyTimeSeriesEngine
计算完成后,在一些场景下查询结果中的时间类型数据会报错。(2.00.9)
TSDB 引擎下,表中启用了 sortKeyMappingHashFunction,集群环境下,在多线程并发查询时,偶尔会报错或崩溃。(2.00.9)
两个空的字符串相加后,isValid
判断结果为非空。
SQL 查询时多个过滤条件使用 or 连接,超过 128 个后返回结果为空。(2.00.9)
loadText
时若抛出异常,在高压力下有时会导致死锁。(2.00.9)
函数添加到 FunctionView 后,查询得到的 body 少了一对括号。(2.00.9)
用下标对表取某一行记录时,返回的结果中 array vector 类型的字段结果不正确。(2.00.9)
ftest
的结果会出现 inf。(2.00.9)
字符串向量超出索引切片时会导致 crash。(2.00.9)
高阶函数 each
作用于自定义函数,且输入参数为 table 类型时,有时会 crash。(2.00.9)
在内存中使用 moving
函数计算 arrayVector 时,minPeriods
大于等于 2 报错。(2.00.9)
创建 CrossSectionalEngine
后如果 append 的数据和 dummyTable 表结构不一致,不会抛出异常。(2.00.9)
restoreDB
恢复 TSDB 数据库导致死锁。(2.00.9)
loadTextEx
导入数据时若数据库为值分区,且导入的数据包含建库时分区列未覆盖的部分,则查询不到该部分对应数据。(2.00.9)
无法在通过 restoreDB
恢复的 TSDB 数据库中查询到数据。(2.00.9)
join 分布式表时,列为非分区列,order by
分区列且查询中有 top
子句,结果不正确。(2.00.9)
序列化 rpc
或 remoteRun
返回的部分应用函数(partial application)时报错。(2.00.9)
在 job log 达到 1G 后,生成新的 job log 时,旧的 job log 会被丢弃。(2.00.9)
根据配置项 openblasThreads
创建 open blas 线程数,而不是根据 CPU 核数创建。(2.00.9)
向由 TSDB 引擎创建的表中写入包含 STRING 类型数据时发生内存泄漏。(2.00.8)
配置 TSDBCacheFlushWorkNum
值小于 volumes 的数量时,会导致 TSDB 引擎数据刷盘无法完成。(2.00.8)
数据节点(datanode)序列化超过128M的分区元数据时,导致序列化失败。(2.00.8)
数据节点(datanode)上进行DDL操作,因事务决议失败,导致分区状态错误。(2.00.8)
回放 redo log 失败,导致 datanode 上分区状态错误。(2.00.8)
启用分级存储功能,当分区转移到 coldVolume 时失败,会导致分区被误删。(2.00.8)
建库时指定 atomic=‘CHUNK’ 时,控制节点元数据过大,导致启动慢。(2.00.8)
TSDB 引擎使用 delete 删除分布式表出现内存占用过大。(2.00.8)
进行 update 操作后,旧版本的数据被提前回收。(2.00.8)
renameTable
后旧表未及时回收。(2.00.8)
dropPartition
时分区以 "/" 结尾会导致 server crash。(2.00.8)
dropPartition
通过指定条件的方式无法删除创建分布式表(VALUE 分区)时自动新增的分区。(2.00.8)
对同一张空表多次删除数据,会导致数据节点(datanode)元数据中表的 cid 错误。(2.00.8)
dfsRecoveryConcurrency
配置项设置后不生效。(2.00.8)
往流表中插入单条 array vector 数据时,handler 执行失败。(2.00.8)
响应式状态引擎(createReactiveStateEngine
)metrics 中的自定义函数传入 array vector 数据类型导致 server crash。(2.00.8)
响应式状态引擎(createReactiveStateEngine
)metrics 中包含 talibNull 状态因子时,会创建失败。(2.00.8)
创建 streamEngineParser
引擎时,若 metrics 使用外部变量,会导致 server crash。(2.00.8)
window join 左表行数小于 window 时会导致 server crash。(2.00.8)
exec 与 limit 一起使用,当返回条数不足 limit 限制条数会导致 server crash。(2.00.8)
isDuplicated
, nunique
函数对 DOUBLE,FLOAT 类型数据计算结果不正确。(2.00.8)
用户自定义函数内调用 parseExpr
无法解析。(2.00.8)
getClusterPerf
返回值字段 maxRunningQueryTime
显示结果不正确。(2.00.8)
loadNpy
读取过大的文件会crash。(2.00.8)
JIT 版本无法在 for 循环外部访问循环内部变量。(2.00.8)
向 OLAP 引擎持续写入数据时,出现 redo log 回收被卡住。(2.00.7)
节点安全关机后,仍被控制节点判断为存活。(2.00.7)
事务决议未完成前,分区锁因超时被释放,导致数据无法写入。(2.00.7)
backup
函数按条件备份数据时,对查询条件处理错误。(2.00.7)
机器负载(load)过高情况下会导致 crash。(2.00.7)
同时满足以下条件时出现 server crash:API 开启压缩选项,只查询1个分区的数据,查询的数据并不在 API 所在节点,且查询语句包含 group by 操作。(2.00.7)
分布式表更新后重启集群,更新过程中产生的旧的物理目录有时不会被回收。(2.00.7)
修复因 symbol base 序列化出错导致数据读取出错。(2.00.7)
流数据订阅不到持久化流表内存中还存在但是磁盘上已删除的数据。(2.00.7)
appendForJoin
插入数据的列数若与 JoinEngine 的 leftTable, rightTable 的列数不一致,会导致 crash。(2.00.7)
修复 createSessionWindowEngine
设置 updateTime,但输出表不是 keyedTable 时,一条数据到达引擎之后经过 2*updateTime仍未参与计算,不会触发计算。(2.00.7)
DailyTimeSeriesEngine 在 SessionEnd 之后仍有数据输入可能会导致 crash。(2.00.7)
createLookupJoinEngine
rightTable 是共享键值内存表时创建引擎会失败。(2.00.7)
持久化流表写入过程中重启节点,重新加载过程因丢失部分数据导致解压失败而报错。(2.00.7)
replay
回放时,指定 dateColumn 和 timeColumn 为同一个 big array 类型的时间列,且设置 absoluteRate=false 时,server 会 crash。(2.00.7)
createReactiveStateEngine
的 metrics 参数指定为返回一个常量向量的自定义函数时未报错。(2.00.7)
createAnomalyDetectionEngine
的 metrics 参数中包含临时变量会导致 crash。(2.00.7)
异常检测引擎(AnomalyDetectionEngine)启用 snapshot,重新创建引擎时指定不同于上个引擎的 metrics,没有抛出异常。(2.00.7)
通过元编程对分布式表执行 context by 操作时,报错:"The select clause of the query doesn't refer any column."。(2.00.7)
update 语句与 context by 配合使用时,若 set 的第一列为整数列,后面的列为浮点数列,则会对后面的列进行取整操作。(2.00.7)
当 worker 数量非常少的时候,并发做 pivot by 查询,则可能会卡死。(2.00.7)
对查询三级分区表数据语句使用 HINT_EXPLAIN 时,出现 server crash。(2.00.7)
STRING 类型的 subarray 调用 binsrch
函数时,结果不正确。(2.00.7)
将 STRING 类型的向量通过 cast
函数转换为 tuple 时,结果为空。(2.00.7)
对内存表的多个类型为 INT128 的列进行聚合计算时,出现报错:“The function min for reductive operations does not support data type INT128”。(2.00.7)
通过 getFunctionView
获取函数视图时,返回结果中部分函数没有显示 body。(2.00.7)
数组向量(array vector)应用 removeHead!
函数的结果不正确。(2.00.7)
向一个空的 tuple append 它自己后,再加载该 tuple,server 发生 crash。(2.00.7)
SQL 查询调用 interval
插值场景下,当 where 子句指定的时间范围数据类型的粒度比 interval
的 duration 参数指定的时间粒度更大时,导致的 server crash。(2.00.7)
sql 查询语句中调用 twindow
函数时,server 会 crash。(2.00.7)
update 分布式表时,set 后的列名与分布式表的列名大小写不一致,导致数据更新失败。(2.00.7)
响应式状态引擎的 metrics 中包含函数 iterate
时,若启用了数据清理机制,且正在清理数据时插入了数据会报错:"vector::_M_default_append"。(2.00.7)
调用 matrix([[datehour(0)],[datehour(0)]])
创建 matrix 时,报错:“The data object for matrix function can't be string or any type”。(2.00.7)
wj
参数 aggs 指定为 countNanInf 报错:"An window join function must be an aggregate function"。(2.00.7)
createDailyTimeSeriesEngine
不指定分组时,将前一天未计算的数据合入了第二天的第一个窗口。(2.00.7)
createDailyTimeSeriesEngine
跨天第一个窗口的数据计算结果不正确,且调用 fill 填充时,输出了 session 时间段外的数据。(2.00.7)
online recovery 过程中,部分处于 In-Progress 状态的任务无法恢复。(2.00.7)
createTimeSeriesEngine
指定 useSystemTime=true 时, metrics 中调用 mode
函数导致 server crash。(2.00.7)
createReactiveStateEngine
参数 metrics 包含 tmove
和 move
函数, 且 X 为 STRING, SYMBOL 类型时,会 crash。(2.00.7)
wj
参数 aggs 指定为 atImax
和 atImin
结果错误。(2.00.7)
通过 streamFilter
引擎分发普通流表时,调用 tableInsert
插入数据报错。(2.00.7)
streamFilter
插入失败时由于报错信息过长导致 session 断开。(2.00.7)
createTimeSeriesEngine
和 createDailyTimeSeriesEngin
e 参数 metrics 包含函数 firstNot
, lastNot
,并指定 fill=`ffill 时,输出不符合预期。(2.00.7)
createReactiveStateEngine
参数 metrics 包含 mfirst
, mlast
,且函数输入参数 X 的数据类型为 FLOAT, LONH, SHORT, CHART, BOOL, INT128, STRING, SYMBOL 时导致 server crash。
增加 fj
对结果集行数的限制,不超过20亿行。(2.00.7)
通过 tableInsert
插入数据到表,导致数据库的 atomic level 从 ‘CHUNK’ 转变为 ‘TRANS’ 。(2.00.7)
createReactiveStateEngine
参数 metrics 包含 tm 系列函数时,tm 系列函数参数 window 精度为 y, M, B 时计算结果不正确。(2.00.7)
server 2.00.6 windows 版本 TSDB 引擎文件描述符泄露。(2.00.7)
修复浏览 online Recovery 重启节点后,两副本 string 列数据不一致。(2.00.7)
resample
函数输入索引是 TIME 类型的时间数据,参数 origin 指定 "end",rule 指定为 "D",查看返回结果报错:"Invalid value for HourOfDay (valid values 0 - 23): 39"。(2.00.7)
非 admin 管理员 grant/deny/revoke 自身权限时报错。(2.00.7)
TSDB 在 OOM 时引发的 redolog 回收异常。(2.00.7)
当矩阵的某一行全为空,byRow
计算 imin
, imax
时结果不正确。(2.00.7)
controller 节点宕机时,使用 getControllerPref
获取到的 agentsite 不正确。(2.00.7)
SQL 查询时调用 interval
和并通过用户自定义聚合函数进行聚合时,导致 crash。(2.00.7)
未配置 dataSync 动态调用 addNode
函数增加节点报错。(2.00.7)
并发进行写入、查询或计算时,有时出现因 Out of memory 导致系统卡住。(2.00.6)
TSDB引擎开启去重功能,实时写入的同时进行实时查询,有时返回结果不正确。(2.00.06)
数据持续写入 OLAP 存储引擎导致 Cache Engine 刷盘的同时进行查询,查询结果有时会不正确。(2.00.6)
TSDB 引擎下,exec 语句搭配 limit 1 时,返回的是只有一个值的表,而不是一个向量。(2.00.06)
向 OLAP 引擎 Cache Engine 中写入数据时,若抛出非 out of memory 的异常,则会一直重试导致系统卡住。(2.00.6)
suspendRecovery
后调用 moveReplicas
函数,部分 chunk 未转移。(2.00.6)
提交并行任务后重启集群,重启后有几个 chunk 一直处于 RECOVERING 状态。(2.00.6)
使用 delete
语句删除大量数据时,会出现因 checkpoint 文件写入错误信息而导致节点 crash,无法再次启动的问题。(2.00.6)
createReactiveStateEngine
中开启 snapshot,当取消订阅之后再次订阅时,若 metrics 与第一次订阅不同,则会导致 server crash。(2.00.6)
lookup join 引擎插入单条数据可能导致 server crash。(2.00.6)
即使写入高可用流表 schema 不一致,仍然会被放到持久化队列,导致 leader 切换后会报错:"Can't find the object with name"。(2.00.6)
createDailyTimeSeriesEngine
如果指定 fill,会对输入表中间不包含数据的日期进行填充。(2.00.6)
createDailyTimeSeriesEngine
若指定 windowSize 大于 step,fill="none",在指定 forceTriggerTime 后,没有触发最后一个滑动了 step 之后的窗口的计算。(2.00.6)
非 admin 用户可以调用 createUser
函数。(2.00.6)
changePwd
没有限制新密码的长度。(2.00.6)
loadText
加载数据到内存表时,若某列数据全部为中文字符,或同时包含中文字符和数字时,会忽略中文字符。(2.00.6)
array vector 占用内存非常大,但没有达到 warningMemSize,出现:"out of memory" 的报错。(2.00.06)
使用 matrix([],[])
语句会导致 crash。(2.00.6)
exec
搭配 pivot by
,若不对 exec
选择的列字段调用函数,不会生成一个矩阵,而是生成一个 table。(2.00.6)
从分布式表 exec 单列时,返回的类型为内存表。(2.00.6)
randomForestClassifier
如果设置 numJobs > 1 或者 numJobs=-1,当重复使用同一个 dataSource 进行训练时,则会导致 server crash。(2.00.6)
interval
函数的 duration 的时间精度与实际数据的精度不匹配导致 crash。(2.00.6)
keyedTable(keyColumns, table) 创建键值内存表时,若 table 存在重复键值,发生内存泄露。(2.00.6)
调用 olsEx
方法,传入一个查询结果为空的数据源后,数据节点发生 crash。(2.00.6)
为 addFunctionView
传入自定义函数包含超过64k的字符串时,会导致 server crash。(2.00.6)
mcorr
, mwavg
等支持矩阵计算的 m 系列函数对索引矩阵做计算时,计算结果 lable 列会丢失。(2.00.6)
loadTextEx
导入数据发生异常时不报错,此为2.00.4版本引入的bug。(2.00.06)
TSDB 存储引擎下创建数据库表,对包含 “.” 的 SYMBOL 类型字段进行值分区,查询时会忽略 sql 语句中 “.”。(2.00.06)
修复了几个 TSDB 引擎的问题:(2.00.5)
where
过滤条件中包含 array vector 类型的列,可能导致 crash;where
条件的数据格式为 timestamp,而实际数据是 nanotimestamp 格式,则查询结果不正确;group by
, context by
或 pivot by
操作,且操作的列包含多个 sortColumns 参数中指定的排序列,查询结果可能不完整;group by
分组查询 count
数目,可能导致 crash。集群各节点之间在线同步数据时,若使用 mr
并行计算,可能导致节点崩溃。(2.00.5)
若在 1.30.16 之前版本中对分区名带有“.”字符的数据库分区进行 backup
备份,在 1.30.16 版本中通过 migrate
恢复数据时,可能报错。(2.00.5)
由于 1.30.16 引入的新功能,导致从 1.30.16 升级到 2.00.4 版本时出现兼容性问题。(2.00.5)
查询数据库时,有时会出现报错:“The remote call task doesn't associate any site.”。(2.00.5)
进行过 upsert
/ update
/ delete
操作的数据库,若使用 imtUpdateChunkVersionOnDataNode
更新了数据节点上的版本号,可能导致数据读取错误。(2.00.5)
修复了几个 array vector 的问题:(2.00.5)
count
数目,结果不正确;由于 raft log 追加写有问题,导致高可用集群有时重启后无法正常启动。(2.00.5)
在 Windows 系统中,通过 dropTable
成功删除空表后,若通过 renameTable
把另一个表命名为此表,会报错提示文件已存在。(2.00.5)
具有 TABLE_WRITE 权限的用户在写入数据时,因数据库无法自动添加 VALUE 分区,导致写入失败。(2.00.5)
当时间序列引擎(time-series streaming engine)的 windowSize 参数是一个向量,且 metrics 参数为自定义函数时,可能导致系统崩溃。(2.00.5)
流数据高可用计算引擎中,当 follower 在写快照时有可能会死锁,导致后续收到的 raft log 无法被处理,占用内存不断增大。(2.00.5)
往高可用流表写入数据时,写入数据已经持久化,但 log 还未发送到 follower 时,若所有数据节点宕机,重启后节点间数据会不一致。(2.00.5)
重启节点后从磁盘加载持久化数据时,需要删除过期的 rowIndex 时误将最后一个 rowIndex 删除,导致数据缺失。(2.00.5)
流数据高可用状态下,两次 append 数据,每次数据都超过 65536 行,且leader 节点数据同步到 follower 上时发生了 leader 切换,会导致原 leader 节点重启后自动加载持久化流表失败。(2.00.5)
当高可用流表所在的 raft 组和高可用订阅的 raft 组不同时,如果两组 leader 同时切换或重启,而高可用流表所在 raft 组的 leader 节点竞选成功晚于高可用订阅的 raft 组,会导致自动重订阅失败。(2.00.5)
订阅(subscribeTable
)时设置参数 offset=-2,参数设置无效。(2.00.5)
修正了 atImax
和 atImin
在参数为多列矩阵时的计算方式。自本版本起,这两个函数将对矩阵的每一列分别查找最值,并以向量的形式返回每一列的计算结果。(2.00.5)
对内存表和共享流表做表连接,可能导致系统崩溃。(2.00.5)
SQL 查询中,select
与 pivot by
一起使用时,若在 select
子句中增加一列常量,会导致系统崩溃。(2.00.5)
提交定时任务时,若定时任务的函数有使用{}来生成字典,则会报错无法序列化。(2.00.5)
连接两个共享表时会报错:“Unrecognized column name”。(2.00.5)
使用 sql
函数生成查询,当 from 参数指定为表连接时,执行结果有误。(2.00.5)
当一个分布式表按时间进行值分区,且分区粒度大于分区列的时间精度时,跨库表连接时会报错。(2.00.5)
mmad
和 mad
函数在 useMedian 参数为 true 时计算结果有误。同时在流数据引擎中修复了此问题。(2.00.5)
函数 sqlDS
中,在 where
条件语句中使用运算符过滤时间列时,没有正确分区剪枝。(2.00.5)
函数 replayDS
数据源解析时,对 where
条件语句中的 date col 表达式解析有误,没有正确分区剪枝。(2.00.5)
当函数中包含 window join 计算,且窗口参数 window 为 duration 数据对时,则添加函数视图(addFunctionView)时 server 端会在反序列化时报错。(2.00.5)
对时间分区列进行查询,当查询条件的时间粒度大于分区列的时间粒度时,查询结果有误。(2.00.5)
zigzag
函数中,当参数 percent 为 false,参数 retrace 为 true 时,计算结果有误。(2.00.5)
函数 loadText
读取文件第一行时,“-”开头的负数识别为列名。(2.00.5)
在 SQL group by
语句中使用 min
或 max
函数时,向函数传入两个参数时,计算结果错误。(2.00.5)
当事务刷盘过慢,可能会出现 redo log 回收超时,导致重启后数据丢失。(2.00.4)
通过一个 dolphindb server 同时启动多个 dolphindb 集群,出现数据节点无法启动的报错:”Failed to open public key file. No such file or directory.”。(2.00.4)
高可用集群设置了定时任务( scheduled job),有时会出现因为各个控制节点初始用户的uuid不同,导致切换 leader 后,原有的定时任务在新 leader 上认证失败而无法执行的问题。(2.00.4)
数据节点崩溃之后,代理节点每隔一秒而不是按照参数 datanodeRestartInterval 配置的时间来重启数据节点。(2.00.4)
定时任务( scheduled job)如果包含了 SQL update 语句,且 where 条件中使用了函数,则在系统重启时反序列化会失败。(2.00.4)
对分布式表更新后,若提交事务(commit)失败,则旧的物理目录不会被回收。(2.00.4)
高并发写入场景下,当 redo log 所在磁盘占满时,会概率性导致 redo log 回收线程死锁。(2.00.4)
数据节点写入数据时内存不足时,未报错 Out of Memory,而是卡住一段时间后崩溃。(2.00.4)
OLAP 存储引擎在各种并发操作时出现节点随机下线的情况。等待一段时间后节点上线, getTabletsMeta
返回结果显示丢失一个副本的数据,但实际上并没有丢失。(2.00.4)
TSDB存储引擎,若数据按照时间列(timeCol)分区,排序列(sortColumns)有两列以上,且最后一列为 timeCol,此时若按照排序列(sortColumns)分组,取每个分组内按照分区列(timeCol)排序后的前 k 条记录(context by sortColumns csort timeCol limit k
),有时会 crash。(2.00.4)
TSDB 存储引擎并发修改 edit log,导致数据节点无法重启。(2.00.4)
事务回滚出现超时场景下,chunk 的状态设置错误,导致流表持久化报错。(2.00.4)
横截面引擎( cross-sectional engine ) 参数校验出错,指定 timeColumn 的情况下,没有指定 useSystemTime 或者指定 useSystemTime 为 true,未抛出异常。(2.00.4)
时间序列引擎( time-series engine )中当指定 useSystemTime 为 true 且 outputTable 是分布式表时,有时会抛出类型不匹配的异常。(2.00.4)
用于流数据处理的 Asof Join Engine 指定 delayedTime 的情况下,有时写入数据会出现 crash。(2.00.4)
流数据高可用,两次 append 的数据都超过65536,如果此时发生 rollback,index.log 会重复写入两条一样的 index 导致报错:”index.log contains invalid data.“。(2.00.4)
windows 系统下,向 time-series engine, daily time-series engine 和 asof join engine 写入数据,有时会发生 crash。(2.00.4)
subExecutor 还有任务在执行,此时,使用 unsubscribeTable
成功取消订阅,但 getStreamingStat().subWorkers 仍能查询到被取消订阅的 topic。(2.00.4)
节点重启之后,高可用流表有时会加载失败;流表和订阅的 raft 组都切换 leader 之后,高可用订阅自动重连失败。(2.00.4)
横截面引擎 triggeringPattern 为 'keyCount' 且 triggeringInterval 为 tuple 时,会输出重复数据。(2.00.4)
流表包含 BLOB 类型,从磁盘中加载报错:“Failed to decompress the vector. Invalid message format”。(2.00.4)
流表在写入 BLOB 数据且单行数据大于 64KB 时会 crash。(2.00.4)
给内存表增加的新列赋值时,错误的使用了 select 而不是 exec,加载该内存表时出现节点 crash。(2.00.4)
通过 GUI 访问包含 array vector 的内存表 session 会断开。(2.00.4)
使用 readRecord!
导入二进制文件,会报错 :“Read only object or object without ownership can‘t be applied to mutable function readRecord!”。(2.00.4)
函数调用时,若右括号不在同一行,有时解析会报错。(2.00.4)
表中包含 array vector 时,执行 replayDS
函数会导致节点 crash。(2.00.4)
查询一个值分区的分布式表,按分区列分组获取每个组最后的K条记录(context by partitionCol limit -k),且在某个分区里不存在满足 where 条件的数据时,会查到不满足条件的数据。(2.00.4)
SQL 中调用 rolling/moving
函数时,若不指定生成列的列名,则会报错:"More than one column has the duplicated name"。(2.00.4)
interval
在某个 step 区间内没有数据时,会生成空值。(2.00.4)
sliceByKey
的 rowKeys 的参数设置错误时,server 会 crash。 (2.00.4)
函数 replace!
修改一个向量,引入空值后,没有正确设置空值标志。(2.00.4)
TSDB 存储引擎下,compact
和 dropPartition
并发会导致元数据错误。(2.00.3)
TSDB 存储引擎下,有时重启后数据节点无法启动,报 "iotCheckPointFile.meta" 无法初始化。(2.00.3)
修复了写入、删除、checkpoint、恢复并发的场景下数据库不稳定的问题。(2.00.3)
高可用集群有时候控制节点无法启动,报错:"Failed to read rsa public key file"。(2.00.3)
集群 Python API 多并发有时候会出现数据节点死锁。(2.00.3)
控制节点上关于 chunk 的信息落后于数据节点。(2.00.3)
系统恢复之后发生了事务决议导致数据错乱。(2.00.3)
OLAP 存储引擎下,redolog 在系统恢复之后再重放,可能导致数据丢失。(2.00.3)
时序聚合引擎中 append 的 table 的列数小于 dummyTable 的列数时会 crash。(2.00.3)
流数据高可用,将发布端的 leader 多次 kill 之后,再往发布端写入数据,订阅端有时收不到新数据。(2.00.3)
interval
在指定线性填充方式,同时 where 指定的开始时间没有数据,且 group by 多个字段的时候,会出现错误的结果。(2.00.3)
当特殊字符作为列名时,sqlCol
会错误地把字段名称当作共享表的引用来处理。(2.00.3)
当y中的数据为连续的相等数据时,mslr
计算会产生正无穷。(2.00.3)
eachPre
函数在计算矩阵时,如果矩阵行数过多,则会导致 crash。(2.00.3)
mpercentile
计算偶尔会卡住。(2.00.3)
temporalParse
对时间向量转换失败的情况下,返回的结果不正确,应该为 NULL。(2.00.3)
对空表进行 update 时,使用 context by 语句,不能产生新的列。(2.00.3)
where 条件中"!="前面没有空格时解析失败。(2.00.3)
TSDB 引擎生成的文件非常多(超过1亿个)的时候,重启会卡住。(2.00.2)
TSDB 引擎的 checkPoint 文件堆积而没有删除。(2.00.2)
TSDB 引擎下删除文件时,如果与后台的 merge 操作并发,有时候会导致 merge 尝试读取已被删除的文件而 crash。(2.00.2)
TSDB 引擎下,写入有时会有对应事务处于 pending 状态,导致该分区无法写入数据。(2.00.2)
TSDB 引擎在数据库中有 blob 列时,有时查询数据或者后台 merge 的时候会报错。(2.00.2)
大压力写入数据时,偶发写任务卡住的情况。(2.00.2)
Cache Engine 处理不当,导致 symbose base 一直无法被回收。如果随着时间推移,包含 SYMBOL 类型的分区一直增加,导致内存使用量一直缓慢上升。(2.00.2)
如果事务有 rollback,则 redo log 不会被回收。(2.00.2)
写入更新删除并发时,读取文件时会出现有时读到的数据比预期少,或者某些表会有空行,或者有些 chunk 状态不正确。(2.00.2)
多次写入时重启会报:“returned from name node didn't contain any site”。(2.00.2)
控制节点高可用,重启 leader,偶尔会导致数据节点 crash。(2.00.2)
由于 raft 模块在 leader 切换时处理不当,导致控制节点在高可用的情况下,同一个 chunk 在数据节点上有时候会对应多个 chunkId。(2.00.2)
控制节点在高可用的情况下,频繁切换 leader,导致写入或查询过程中任务卡住。(2.00.2)
在大量并发线程同时增加不存在的值分区时,由于线程的冲突和重试时间太短,导致某些新增值分区添加失败,抛出异常。(2.00.2)
使用非字符串非 SYMBOL 类型的值去更新分布式表的 SYMBOL 类型列,会导致 symbol base 被破坏。(2.00.2)
集群的数据节点在重启时收到大量的客户端请求,有可能在后续的鉴权中,出现登录了却当作 guest 处理的情况。(2.00.2)
tableInsert
将一个包含多行数据但某些列缺失的字典插入内存表时报异常。(2.00.2)
replay
回放三个数据表表时,会出现两个表的回放速度明显快于第三个表。(2.00.2)
replay
回放到持久化流表log会报错:“Error in Replayer::output: Immutable sub vector doesn't support method serialize”。(2.00.2)
kurtosis
和 skew
在流计算引擎中结果精度较低。(2.00.2)
createDailyTimeSeriesEngine
使用 force Trigger 导致计算结果有 session 区间之外的时间。(2.00.2)
TimeSeriesEngine 指定 fill 并且两个分组之间时间相差较大,计算结果可能出错。(2.00.2)
createAsofJoinEngine
数据乱序时结果不对。(2.00.2)
没有输出表时,横截面引擎作为返回表会报字段缺失错误。(2.00.2)
一个引用的数据表调用函数 colNames
无法返回列名。(2.00.2)
saveText
保存空表时候会抛异常。(2.00.2)
cumvarp
和 cumstdp
应用在矩阵上时错误地调用了 cumvar
和 cumstd
,导致计算结果变成基于样本的方差和标准差。(2.00.2)
try catch
语句的 catch 部分包含多行代码时,实际上只有第一行代码会被执行。(2.00.2)
模块中有系统同名函数时,parseExpr
指定模块,没有优先取模块中的函数。(2.00.2)
interval
函数在时间列为分区列且 duration 可以整除分区列的单位时,会多生成数据,这个 bug 是在 2.00.1 中引入的。(2.00.2)
当 interval
函数指定 step 参数且处理的列存在缺失的区间时,结果不正确。(2.00.2)
order by 在第二列为负数时,且第二列或之后的数据为浮点数(DOUBLE 或 FLOAT),且一个小组的数据的个数小于等于7个,且包含两个以上的负数,会导致负数之间的相对排序错误。(2.00.2)
诸如 exec col1 from t group by col1 的 sql 语句返回结果不是向量。(2.00.2)
对 huge temporal vector 使用 min
和 max
函数,应该返回对应的时间类型,但实际上返回一个长整型。(2.00.2)
mskew
输入的值过大会出现非法值INF。(2.00.2)
使用 funcByName
且参数为聚合函数时,和 context by 同时使用结果只会返回一行。(2.00.2)
window join 在右表时间列有重复值时计算结果不正确。(2.00.2)
自定义函数中的常量均被标记为 static,使用时必须先复制。函数序列化时丢失了static标记。(2.00.2)
JIT 版本的数据节点在 loadColumn
的时候,若发生 OOM,则会 crash。(2.00.2)
删除分布式表(使用 dropTable
或 dropPartition
)在提交时失败,导致事务回滚后,再次查询该表时结果不符合预期。删除该表缓存后,查询恢复正常。(2.00.1)
TSDB Engine 的 TSDBRedoLogDir 配置不生效。(2.00.1)
配置参数 datanodeRestartInterval 后,在高可用环境下会一直重启数据节点, 数据节点无法关闭。(2.00.1)
通过 append!
函数往响应式状态引擎(reactive state engine)写入数据时,如果输入的每列数据是 scalar,会导致系统崩溃。(2.00.1)
创建流数据引擎后,调用函数 getAggregatorStat
导致系统崩溃。(2.00.1)
键值表(keyed table)或索引表(indexed table)和内存表等值关联时,抛出 OOM 异常或导致系统崩溃。(2.00.1)
当最近一个事务操作是删除表的分区,且事务处于决议状态,数据节点有可能给出错误的决议结果。(2.00.1)
当使用 remoteRun
函数远程取消流表订阅时,远程连接可能卡死。(2.00.1)
Asof join engine 写入异步持久化流表时导致系统崩溃。(2.00.1)
当多个数据节点向控制节点汇报元数据,如果时间相差很大,会出现元数据一直处于 recovering 状态。(2.00.1)
恢复某个分区后立刻进行 checkpoint, 并且后续该分区没有再写入,会导致元数据和数据不一致。(2.00.1)
SQL 语句中使用 interval
子句插值时,分组字段可能出现空值。(2.00.1)
mr
函数中数据源的脚本长度超过1024字节时,远程执行的数据源错误的将脚本字符串作为执行结果。(2.00.1)
新功能
SELECT NULL
语句。(2.00.10)改进
regularArrayMemoryLimit
配置参数的输入方式修改为输入框。(2.00.10)Bug Fix
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。