3.00.1

注: 同时建议阅读兼容性说明

版本下载

版本号:3.00.1 二级兼容 2.00.12 和 3.00.0

发行日期: 2024-06-30

下载地址:

新功能

  • 新增函数 getDBAccessgetTableAccess,能够查看拥有访问自己数据库和数据表权限的用户列表。(3.00.1.3
  • genOutputColumnsForOBSnapshotEngine 新增参数 residualDetail,用于指定输出剩余委托明细字段。同时 createOrderBookSnapshotEngine 支持输出剩余委托明细字段。(3.00.1.3
  • 函数 mcountmrank 新增参数 minPeriods,可规定滑动窗口中最少包含的观测值数据。(3.00.1.2
  • 新增函数 hmac,实现 HMAC(Hash-based Message Authentication Code)算法。(3.00.1.2
  • genOutputColumnsForOBSnapshotEngine 新增参数 seqDetail,用于指定输出序列号明细字段。同时 createOrderBookSnapshotEngine 支持输出序列号明细字段。(3.00.1.2
  • 新增函数 updateOrderBookEngineParams,用于在线设置 orderbookSnapshotEngine 的部分参数(通常是静态字段)值。(3.00.1.2
  • 新增函数 vectorNorm,用于计算矩阵/向量的范数。(3.00.1.2
  • 新增配置项 queryLogRetentionTime,用于设置节点查询日志文件的保留时间。(3.00.1.2
  • 新增 remoteRunCompatible 函数,功能与 remoteRun 相同。差别是此新增函数不对本地和远程数据库的版本进行验证。
  • scheduleJob 新增参数 priorityparallelism,用于设置定时任务的优先级和并行度。
  • saveText 新增参数 bom,可以在导出文件时指定是否输出 bom 头。
  • 新增 fminLBFGSB 函数,支持使用 L-BFGS-B 算法找到目标函数的最小值。
  • 新增 fminNCG 函数,支持使用牛顿共轭梯度法对目标函数进行无约束最小化。
  • 新增 fminBFGS 函数,支持使用 BFGS 算法找到目标函数的最小值。
  • 新增 fminSLSQP 函数,支持使用顺序最小二乘编程方法找到目标函数的最小值。
  • 新增 piecewiseLinFitpwlfPredict 函数,用于拟合分段线性回归函数和根据回归模型对数据进行预测。
  • 新增 brute 函数,用于通过穷举法在给定范围内最小化一个函数。
  • 新增 gaussianKdegaussianKdePredict 函数,用于使用核密度估计方法中的高斯核来估计随机变量的概率密度,和根据回归模型对数据进行预测。
  • 新增 vectorAR 函数,用于使用向量自回归模型来分析多变量时间序列。
  • 新增 eqPercent 函数,用于根据自定义约束条件,判断两个输入参数的每个对应位置上的元素是否都相等。
  • 新增配置项 batchJobFileRetentionTime,用于设置批处理作业和定时任务执行后输出信息的最长保留时间。
  • 新增配置项 resourceSamplingLogDir,用于设置资源跟踪日志的存储路径。
  • 支持三元运算符(? :)。
  • 新增 tensor 数据类型,可与 DolphinDB 插件配合使用,实现与深度学习框架之间的数据交换和处理。
  • 新增配置项 enableRDMA,用于开启 RDMA 全新通讯架构。
  • 新增配置项 allowTSDBLevel3Compaction,用于设置是否启用 level 3 层级的 Level File 的合并。
  • 新增配置项 jobLogRetentionTime, 用于设置数据节点上查询信息日志的最长保留时间。
  • createPartitionedTable新增参数 indexes,支持位列指定索引,以实现向量检索功能。
  • 新增 removeNode 函数,以支持动态删除计算节点。同时支持通过 addNode 一次添加多个节点。
  • 支持 chimp 压缩算法。
  • databaseengine 参数新增选项 “PKEY”,支持创建主键存储引擎,同时 createPartitionedTable新增参数 primaryKey,用于指定表的主键列。
  • 新增函数 setTableComment,用于为分布式表添加表注释。同时 create 语句新增参数 comment,可在创建分布式表时添加表注释。
  • 新增配置项 TSDBSymbolBaseEvictTimeTSDBCachedSymbolBaseCapacity,可以根据缓存时间或缓存容量来决定何时逐出未被使用的 symbolBase 数据。同时新增函数 clearAllTSDBSymbolBaseCache,用于清除缓存中所有未被使用的 symbolBase。
  • createPartitionedTable 函数和 create 语句的 partitionColumns 参数支持为数据列指定函数,进而将函数的结果作为分区的依据。
  • SQL DELETE 语句和 sqlDelete 函数支持通过 join 来指定删除行。
  • 新增函数 setTableComment,用于为分布式表添加注释。同时 create 语句中新增参数 comment
  • 新增配置项 memLimitOfAllTempResults,用于设置分布式查询操作中产生的所有临时表可以占用的内存上限。同时新增了与其对应的函数 setMemLimitOfAllTempResultsgetMemLimitOfAllTempResults 分别用于动态设置和获取配置项。
  • 新增配置项 enableInsertStatementForDFSTable,用于设置是否允许 insert into 语句插入 DFS 表。
  • insert into 支持插入多行数据。

功能优化

  • 主键引擎布隆过滤器(bloomfilter 索引)新增支持以下类型:TEMPORAL, BINARY 和 COMPLEX。(3.00.1.4
  • 提升 TSDB 的并发查询性能。(3.00.1.4
  • 当已有分区数量达到百万级以上时,提升创建新分区的性能。(3.00.1.4
  • 订单簿引擎(createOrderBookSnapshotEngine)输入表的 "receiveTime" 支持 TIMESTAMP 类型。(3.00.1.4
  • 优化 randomForestClassifier 的报错信息。(3.00.1.4
  • 增强 loadPlugin 函数功能,以支持插件市场的付费插件。(3.00.1.3
  • 优化 createOrderBookSnapshotEngine 函数在设置 useSystemTime = true 时的以下功能:(3.00.1.3
    • 每隔 intervalInMilli 输出一次数据。
    • 休盘时段 (11:30:00.000,13:00:00.000] 不输出数据。
  • 响应式状态引擎的状态函数 percentChangedeltas 允许将参数 n 指定为正整数。(3.00.1.3
  • 函数 writeLogLevel 的参数 level 支持传入整数标量 0、1、2 或 3,分别对应 DEBUG, INFO, WARNING, ERROR。(3.00.1.3
  • 优化持久化流表的加载速度。(3.00.1.3
  • 优化控制节点元数据 checkpoint 机制,在元数据较大的情况下减少 checkpoint 频率。(3.00.1.3
  • 分区方案使用时间类型时,对分区列的类型增加校验。(3.00.1.3
  • 优化登录失败保护机制,即仅在登录失败的 IP 地址上锁定用户登录。(3.00.1.2
  • 若 TSDB 引擎的去重设置为保留所有数据,则通过upsert! 更新数据时,支持 keyColNames 仅指定 sortColumns 的部分列。(3.00.1.2
  • backup 等相关操作支持记录 tableOwner 信息。同时restore 等相关操作支持恢复 databaseOwner 和 tableOwner 信息。(3.00.1.2
  • 优化 orderbookSnapshotEngine 的以下功能:
    • 优化合成逻辑,已停牌的标的数据将不会合成输出。(3.00.1.2
  • 增强权限管理等功能,以提高系统安全性。(3.00.1.1

  • 优化 interval 函数的以下功能:
    • duration 参数支持交易日历。
    • 当参数 durationstep 长度不同时, 在对非分区表的查询中可以对查询列应用自定义聚合函数。
  • flatten 函数支持元组嵌套。
  • logisticRegression 函数精度与 SKLearn 中相应函数对齐。
  • 提高函数 std, stdp, var, varp, skew, kurtosis 的精度。
  • 高阶函数 moving 的参数 func 支持返回 tuple 的函数。
  • addMetrics 新增支持 fill 参数,可以指定对空值处理方法。
  • parseJsonTable 函数支持传入的表中包含 BLOB 类型的列。
  • isDuplicated 函数支持 BLOB 类型。
  • fmin 函数优化输入参数。
  • rowAlign 函数支持列式元组。
  • rolling 函数支持显示行标签。
  • 元编程中的列别名支持使用宏变量。
  • registerSnapshotEngine 函数新增参数 dedupColumnName,以支持在集群中所有数据节点上为分布式表注册快照引擎。
  • 模式符号可以搭配系统内置,作为一个运算符。
  • restore 函数的 snapshot 参数的默认值由 true 修改为 false。
  • 异步复制中从集群中不再需要通过clusterReplicationExecutionPassword 配置密码,以提高安全性。
  • 提升 TSDB redolog 回放性能。
  • version 函数支持返回更多版本信息。
  • clearAllCache 新增支持清理 TSDB 引擎相关的缓存。
  • TSDB 数据写入时可以压缩空值列。
  • createSchema 不支持将数据库同时加到两个 catalog 中。
  • 优化订单簿引擎的以下功能:
    • 报错日志等级修改为 WARNING。
    • createOrderBookSnapshotEngine 新增参数 useSystemTime,支持使用系统时间来触发快照输出。
  • 优化响应式状态引擎的以下功能:
    • 支持对 array vector 列使用 prev 函数。
    • 优化报错信息。
    • 新增支持 35 个 topN 状态函数。
    • keyColumn 由必填参数修改为可选参数。
    • 自定义状态函数中赋值语句的右值支持返回多个值的自定义函数。
  • createLookupJoinEngine 的参数 rightTable 支持指定为元代码。
  • 如下流计算引擎的 metrics 支持指定为常数标量或向量:createReactiveStateEngine, createAsofJoinEnginecreateLookupJoinEnginecreateEquiJoinEnginecreateLeftSemiJoinEngine
  • enableTablePersistenceenableTableShareAndPersistence 函数新增参数 cachepurgeTimeColumn, cachePurgeInterval, cacheRetentionTime,用于设置持久化流表在内存中的数据清理策略。
  • createTimeSeriesEnginecreateDailyTimeSeriesEngineacceptedDelay 参数支持根据数据时间来设置关闭窗口的延时。
  • 如下流计算引擎新增支持 outputHandler, msgAsTable 参数,支持输出结果到一个一元函数:createTimeSeriesEngine, createDailyTimeSeriesEngine, createReactiveStateEngine, createDualOwnershipReactiveStateEngine, createNarrowReactiveStateEngine
  • 优化 SQL JOIN 的以下功能:
    • INNER JOIN 和 LEFT JOIN 支持生成 IN 谓词的 动态过滤条件(Runtime Filter),以提升查询性能。
    • 提升对分区字段进行过滤,同时搭配 LIMIT 字段时的查询性能。
    • CASE WHEN 语句支持分析函数 OVER(PARTITION BY xxx)。
  • 优化 JIT 高阶函数 accumulatereduce
  • JIT 支持处理索引矩阵。

故障修复

  • 对常量字符串(例如:string("\\\"messageCoVSONGJUNZHENG1\\\""))的解析出现错误。(3.00.1.4
  • 修复 TSDB 引擎的以下问题:(3.00.1.4
    • 在设置 keepDuplicates=FIRST 的情况下,偶尔会查询出重复数据。
    • 写入的 DECIMAL 数据精度超过表结构设置的精度时,重启集群进行回放会发生错误。
    • 对 sortColumns 列的过滤导致 DECIMAL 精度丢失。
  • 高可用集群节点高负载时 login 响应慢。(3.00.1.4
  • 当 Py 插件通过 globalDynamicLib 配置的路径不存在时,server 未报错。(3.00.1.4
  • 当系统的文件描述符限制设置得过大时,可能出现数据节点无法启动。(3.00.1.4
  • 函数视图中包含 insert 语句导致server 启动失败。(3.00.1.4
  • dropTable 删除表后,通过renameTable 修改该表的表名, 若此操作与 checkpoint 并发执行,可能导致丢失元数据。(3.00.1.4
  • 在执行大量写入任务时,如果关闭数据节点,可能会导致集群管理器无响应。(3.00.1.4
  • 在线修改高可用集群配置,leader 切换后修改失效。(3.00.1.4
  • 日级时序聚合引擎在接收到乱序时间后,会导致日期列填充了”invalid date”。(3.00.1.4
  • 流计算引擎输出到广播引擎,再通过广播引擎输出到持久化流表时,出现报错。(3.00.1.4
  • 订阅时 batchSizethrottle 同时触发导致数据乱序。(3.00.1.4
  • 修复 createCrossSectionalEngine(横截面引擎)的以下问题:(3.00.1.4
    • metrics 中指定的别名数量少于返回的列数,导致服务器崩溃。
    • 同时指定 contextByColumnkeyFilter 时,keyFilter 指定的函数会被调用两次。
  • 在 asof join 引擎中,timeColumn 同时指定了左表和右表中的时间列,metrics 中仅指定右表时间列时,后台出现报错。(3.00.1.4
  • DECIMAL128 类型列不支持写入 DECIMAL64 数据。(3.00.1.4
  • 优化了当消费速度较慢时的内存占用。(3.00.1.4
  • 当数组向量参与计算时,若其行数过大,可能会导致报错。(3.00.1.4
  • 修复子查询中包含表连接操作的如下问题:(3.00.1.4
    • 在表连接操作中,偶发由于系统修改子查询中的变量名而导致找不到列名的错误。
    • server 偶尔崩溃。
  • 当 pivot by 指定的最后一列为分区字段时,若查询的数据量过大,则会报错。(3.00.1.4
  • 分发引擎(createStreamDispatchEngine)写入异步持久化流表时,若流表的持久化线程出现堆积,可能造成 server 崩溃。(3.00.1.4
  • 在通过 submitJob 并发执行由 sqlDS 生成的任务时,可能会导致服务器崩溃。(3.00.1.4
  • 配置 enhancedSecurityVerification=true 后,并发登录可能导致 server 小概率崩溃。(3.00.1.4
  • 在进行异步复制时,如果 controller 在从集群回放任务期间重启,可能会导致系统崩溃。(3.00.1.4
  • 通过 peach 函数查询内存表时,可能导致 server 崩溃。(3.00.1.4
  • 向键值内存表中插入表数据时,若插入的列和键值内存表键值列的类型不一致,且无法进行类型转换时,将导致 server 崩溃。(3.00.1.4
  • 使用用户定义的最优化函数,可能导致 server 崩溃。(3.00.1.4
  • 在向一个包含 SYMBOL 列的表的新分区写入数据时,如果此次写入被回滚,后续再向该分区写入数据时,会出现数据文件被损坏的报错。(3.00.1.4
  • 当流计算引擎的输出表指定为共享表的别名时,如果发生并发写入共享表,server 偶发崩溃。(3.00.1.4
  • 开启资源跟踪后,可能导致 server 崩溃。(3.00.1.3
  • 表连接时,若表里包含的数组向量中的元素超出长度限制时,导致 server 崩溃。(3.00.1.3
  • 操作 MVCC 表发生事务异常时,未正确清理状态。(3.00.1.3
  • moveHotDataToColdVolume 在对相同分区进行并发转移时,发生数据丢失。(3.00.1.3
  • 作业开始时,如果磁盘被占满,则不能正确记录作业信息,如开始时间。(3.00.1.3
  • 响应式状态引擎在设置 keepOrder 为 true 时,若对 array vector 数据执行 prev,其结果不符合预期。(3.00.1.3
  • 使用函数 createLookupJoinEngine 创建 LookupJoin 引擎时,若 rightTimeColumn 中包含大写字母,且在 metrics 中包含该列时,则会导致报错:”A table can't contain duplicate column names“。(3.00.1.3
  • 在高可用集群中,当 controller 发生重启,若 checkpoint 失败,可能导致元数据丢失。(3.00.1.3
  • 控制节点的元数据在极端情况下会出现一个分区路径对应多个 chunkid。(3.00.1.3
  • rollingPanel 在指定 groupingCol 参数时,未进行分组。(3.00.1.3
  • submitJobscheduleJob 中的任务包含 lambda 函数,当创建它们的 session 断开后,可能导致 server 崩溃。(3.00.1.3
  • 当 SQL 查询中使用到 vectorized grouping 算法时,若聚合函数的某个参数是标量或大小与输入表不匹配的向量时,可能导致结果错误。(3.00.1.3
  • 在对分布式表进行 EXEC 查询时,如果指定了 ORDER BY 和 LIMIT/TOP(设置为正数),且 ORDER BY 仅涉及一个分区列且采用降序排序,引发错误:“The result of distributed call is not a table”。(3.00.1.3
  • createDailyTimeSeriesEngine 在经过 forceTriggerSessionEnd 时间后,若接收到时间戳小于 sessionEnd 的数据,可能输出非预期的结果。(3.00.1.3
  • 若异步复制任务中存在数据损坏,系统无法跳过该任务而持续重试。(3.00.1.3
  • 使用 order by 和 limit/top 进行分布式查询优化时,在执行最终查询时找不到所需的列。(3.00.1.3
  • 通过 parseJsonTable 解析 JSON 对象时,若 JSON 对象的字符串中包含 \\\" 时,会导致解析错误或报错。(3.00.1.3
  • left join 在发生 OOM 时可能返回空指针,导致 server 崩溃。这是 2.00.13 和 3.00.1 引入的问题。(3.00.1.3
  • 流订阅偶发失败。(3.00.1.3
  • wsum, wavg 等聚合函数的输入参数为一个标量和一个空数组时,返回错误结果。(3.00.1.3
  • 修改 flatten 函数以兼容之前版本。(3.00.1.3
  • 某个最大优先级或并行度小于默认值的用户通过 Web 或 VS Code 提交前台任务,该任务的优先级或并行度仍为默认值。(3.00.1.2
  • 审计日志中 APPEND 操作的开始日期记录错误。(3.00.1.2
  • 上传加密模块可能导致当前会话中的变量丢失。(3.00.1.2
  • 执行 backup 函数时,如果过滤条件是组合分区的一级分区,而二级分区中的部分分区没有数据,则会导致报错。(3.00.1.2
  • 重启后定时任务中执行 writeLogLevel 函数报错。(3.00.1.2
  • 对 arrayVector 类型的列查询 distinct 导致 server 崩溃。(3.00.1.2
  • 在执行 ej 操作时,若 where 条件中不指定表名则无法查询数据。(3.00.1.2
  • CEP 引擎设置参数 dispatchKey 后,若传入无 dispatchKey 指定事件字段的事件报错。3.00.1.2
  • orderBookSnapshotEngine 在设置 useSystemTime = true 时偶现部分输出数据被遗漏。(3.00.1.2
  • 执行传入不合规参数的createWindowJoinEngine 函数后宕机。(3.00.1.2
  • 使用 move 函数时,若传入参数 X 是临时变量可能导致计算结果错误。(3.00.1.2
  • 多次执行 mpercentile 函数偶现宕机。(3.00.1.2
  • JIT 中使用 rank 函数时由于类型推导问题报错。(3.00.1.2
  • JIT 中使用 isort 函数时由于兼容性问题报错。(3.00.1.2
  • qclp 函数计算目标函数时,返回非预期结果。
  • saveText 函数传入字符串对象引起宕机。
  • 同时使用 ateachRighteachLeft 时宕机。
  • 使用 loadText 加载文件太大(一行数据超过 2 GB)引起宕机。
  • 继承 class 时使用 dict 函数无法被识别。
  • 函数 getUserHardwareUsage 因内部计算错误导致参数设为日期时不生效。
  • 函数 getSlaveReplicationQueueStatus 返回值中的 executionSet 字段偶现随机值。
  • getQueryStatus 函数返回值中的 startTime 未进行时区转换。
  • loadText 函数将符合某些条件的字符串误识别为 DATE 类型,导致无法加载数据。
  • 将模块或插件中没有返回值的函数添加为functionView 失败。
  • ARM 环境中使用 OpenBLAS 进行多线程计算引发宕机。
  • 键值内存表更新 array vector 数据时,出现报错。
  • windows join 中指定聚合函数为 count(head()) 导致 server 崩溃。
  • SQL 语句同时满足以下条件:包含 group by 子句,from 子句为一个空表,select 子句中包含自定义变量时,会出现解析错误。
  • pj 连接时,若左右表按连接列排序,对于左表某行,只选取右表中的第一个连续匹配的行数据,导致结果中缺少数据。
  • 在 join 查询中,如果指定的连接列的列名与表中实际的列名大小写不一致,会导致执行计划未被优化。
  • WHERE 子句中 IN 的右值为内存表时,没有分区剪枝。