2.00.16

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

版本下载

版本号:2.00.16 二级兼容 2.00.15

发行日期: 2025-05-13

下载地址:

新功能

  • 新增函数 semiannualBeginsemiannualEnd 用于返回日期所在半年期的第一天和最后一天。(2.00.16.3
  • 新增函数 createOrderReconstituteEngine 用于还原缺失的原始委托信息。(2.00.16.3
  • 新增函数 histogram,用于计算数据样本的直方图。(2.00.16.3
  • 增加配置项访问安全校验:(2.00.16.3)
    • 新增配置项 enableConfigAccessControl,用于控制在访问配置项时是否启用权限校验。(2.00.16.3)
    • 新增函数 getOauthClientSecret,用于管理员用户安全地获取敏感配置项 oauthClientSecret 的值。(2.00.16.3)
    • 修改函数 getConfig/getConfigure 执行逻辑,当启用配置访问控制时,将会依据配置项安全级别及当前用户权限过滤返回结果。(2.00.16.3)
  • 新增支持在单点登录流程中使用 HTTP 协议。(2.00.16.3)
  • 新增 setIPConnectionLimitgetIPConnectionLimit 函数,分别用于设置和获取不同 IP 对当前节点连接数限制,仅支持 Linux 系统。(2.00.16.2
  • 新增 getExecDirgetWorkDir 函数,分别用于获取 DolphinDB 可执行文件所在目录和启动进程时的工作目录的绝对路径。(2.00.16.2
  • 新增支持两地三中心。(2.00.16.1
  • 新增函数 createNearestJoinEngine,用于创建流计算最近邻关联引擎。(2.00.16.1
  • 新增函数forceTriggerOrderBookSnapshot,用于强制触发订单簿快照输出。(2.00.16.1
  • 新增函数listAllMarketsdeleteMarketHoliday, 用于管理当前节点所有的交易日历。
  • 新增函数 getLocalIOTDBStaticTable,用于获取本地节点所存储的 IOTDB 的静态表。
  • 新增系列函数和配置项,以增强系统的登录安全性。
  • 新增函数并优化部分函数,以支持 SCRAM 登录协议。
  • 新增函数 kernelRidge,结合岭回归正则化和核技巧,拟合数据中的复杂非线性关系,并输出回归预测模型。
  • 在无法通过 Web 等方式连接系统时,支持通过 Linux 终端手动建立本地连接并释放资源。该功能用于应急运维场景,不建议用于日常操作。
  • 新增配置项 maxQueryExecutionTime,支持设置单个查询语句的最长执行时间。
  • 新增函数 pchipInterpolateFit,支持对一组数值向量 X Y 进行分段三次 Hermite 多项式插值(PCHIP)。
  • 新增函数 bondCalculator,用于实现债券到期收益率、净价和全价三者之间的互算,同时支持计算久期、凸度等风险指标。
  • 新增函数 setChunkLastUpdateTime,支持手动设置指定分区的上次更新时间。
  • 新增函数 temporalDeltas,用于计算数据结构中相邻元素之间的时间差。
  • 新增函数 temporalDiff,用于计算数据结构之间的时间差异。
  • 新增函数 deepCopy,用于创建对象的深拷贝。
  • 新增函数 bvls,用于执行有界变量最小二乘法(Bounded-Variable Least-Square),返回回归系数估计值。
  • 新增配置项 autoConversionToColumnarTuple,用于控制在构造内存表时是否自动将 tuple 列转换为列数元组(ColumnarTuple)。如需兼容老版本行为,可将该配置项设置为 true。

功能优化

  • socp 函数新增返回 Exitcode。(2.00.16.4
  • 优化 createCrossSectionalEngine 函数的报错信息,现在在 metrics 中使用函数时会正确返回具体的错误提示。
  • 优化单点登录(SSO)流程:(2.00.16.4
    • 修复 SSO 请求中默认端口导致的 HTTP 请求错误问题。

    • 优化 oauthUserField 配置项,支持从嵌套 JSON 中解析用户名。

  • 支持通过赋值语句或可修改函数(如 append!clear! 等)修改 DolphinDB 对象(元组、字典)的成员。(2.00.16.4
  • 优化分区剪枝,提升形如 select * from t where id in ids 的查询在 ids 为 TABLE 类型时的剪枝性能。(2.00.16.3
  • 提升对 TIMESTAMP 类型列按天进行值分区,查询日期最大值/最小值时的性能。(2.00.16.3
  • createCryptoOrderBookEngine 输入表的 eventTime 列支持 NANOTIMESTAMP 类型。(2.00.16.3
  • 优化 licenseServer 客户端启动流程,支持备机认证启动。(2.00.16.3
  • 优化使用 createIPCInMemoryTable 创建表时的错误提示信息。(2.00.16.3
  • 优化语法异常信息,新增输出出错所在的行号。(2.00.16.3
  • createOrderBookSnapshotEngine 支持输出residualDetail(剩余委托明细)中的 ResidualBidOrderNoList 和 ResidualAskOrderNoList。(2.00.16.2
  • license 函数支持获取指标平台模块名称 Beluga。(2.00.16.2
  • updateLicense 函数增加日志输出功能:更新成功时会打印新的许可证过期时间和节点数限制,更新失败会输出详细的错误信息。(2.00.16.2
  • 优化 license server 连接逻辑,当连接某个站点失败时,增加多次重试机制,并在多次失败后自动切换至其他可用站点。(2.00.16.1
  • 改进了在 SELECT 子句中为 GROUP BY 字段使用别名时抛出的错误消息。(2.00.16.1
  • createOrderBookSnapshotEngine 支持输出withdrawDetail(撤单明细)中的 withdrawBuyOrderNoList 和 withdrawSellOrderNoList。(2.00.16.1
  • 用户名支持包含短横线。(2.00.16.1
  • 增强 bondAccrIntbondCashflowbondConvexitybondDirtyPricebondDurationbondYield 函数功能,并统一接口规范。(2.00.16.1
  • updateRule 新增参数 add。(2.00.16.1
  • 优化 createWindowJoinEngine2.00.16.1):
    • 新增 timeoutTrigger 参数,用于定期检查右表中的超时未处理数据,并触发计算输出。
    • 新增 cachedTableCapacity keyPurgeFreqInSec 参数,用于定期清理不再需要的数据以优化内存占用。
  • 优化了内存稳定性,提供了函数和配置选项以避免 OOM。
  • 创建 IOTDB 引擎时,若设置 chunkGranularity="DATABASE",系统将给出报错提示。
  • ewmMean 函数新增支持 halfLife 为 DURATION 类型,同时新增参数 times,以指定每个观测值的时间戳。
  • createOrderBookSnapshotEngine 进行如下优化:
    • 新增参数 priceScale,支持设置输入表中 priceColumn 列的缩放比例。
    • 支持输出成交明细中的 tradeBuyOrderTypeList 和 tradeSellOrderTypeList 两个字段。
  • 响应式状态引擎支持对 DECIMAL128 类型数据进行指标计算。
  • 支持多表连接重排优化。
  • 优化 SymbolBase 内存缓存统计信息。
  • 回放任务执行 cancelJob 后,系统不再继续执行后续代码,而是直接抛出异常。
  • 新增了对 WHERE 条件数量和表达式长度(即表达式内部操作数数量)的限制(1024),超过此限制的查询将会报错。
  • 在使用 LIMIT 或 TOP 子句时,系统将不再检查分区数量,从而避免因分区过多而报错。
  • 优化使用 LIMIT 语句的查询性能。
  • 优化了 temporalParse 函数的解析行为,超出有效范围数据不再报错,而是返回空值。
  • 优化了 GROUP BY 分组算法的动态选择机制。
  • 优化了分区剪枝机制。
  • 优化了 tmbeta 函数的报错信息。
  • 优化 rand 函数,使 count 参数变为可选,支持不指定 count 时返回一个随机标量。
  • dropColumns! 函数支持删除分布式表非分区列。
  • triggerNodeReport 函数新增参数 chunkId,支持仅上报指定 ID 的chunk 信息。
  • 支持 JSON 对象的值为非常量表达式。
  • 优化了在处理具有大量 chunks(数十万个或以上)的集群时,getClusterDFSDatabasesgetClusterDFSTables 的性能。
  • 支持备份/恢复空的IOTDB 数据库中的表。

故障修复

  • 修复高可用集群的如下问题:(2.00.16.4
    • 当控制节点配置 lanCluster=0 时,从节点无法安全关机。

    • 当各 controller 并发执行 getClusterPerf 的数量超过工作线程的数量时,可能导致系统无响应。

  • 当同一流表存在多个本地订阅时,通过 enableTableShareAndCachePurge 设置的缓存清理偶发失效。(2.00.16.4
  • 在使用 update ... context by ... 语句更新共享内存表时,系统报错:A snapshot table doesn't support data update。(2.00.16.4
  • 在响应式状态引擎中使用 moving 函数对 DECIMAL 类型数据的计算结果,与批处理模式下对相同数据应用 moving 函数得到的结果不一致。(2.00.16.4
  • 当系统处于高负载时,定时任务偶发不执行,订阅偶发卡住。(2.00.16.3
  • createOrderBookSnapshotEngine 参数 userDefinedMetrics 指定的函数中使用了 left join 语句导致 server 崩溃。(2.00.16.3
  • 写入 TSDB 数据库时,若 symbol 数量超过上限,导致系统卡死。(2.00.16.3
  • 通过 subscribeTable 订阅流表时,若 filter 参数指定的函数中输出表结构与输入流表不一致,系统不会输出数据,也不会报错。(2.00.16.3
  • 查询表时,如果聚合计算的 GROUP BY 列包含 BLOB 类型可能发生内存泄漏。此为 2.00.11 版本引入的问题。(2.00.16.3
  • 向通过 setStreamTableTimestamp 指定时间戳列的流表中插入空向量数据时可能导致系统崩溃。(2.00.16.3
  • 在执行分区更新后,TSDB 引擎过度打印日志导致日志文件异常增大并占满磁盘。此为 2.00.15 版本引入的问题。(2.00.16.3
  • getUserHardwareUsage 返回的内存值可能因自动类型转换错误导致精度不足,从而出现异常(负数)。该问题由 2.00.15 版本引入。(2.00.16.3
  • SQL 聚合计算偶发导致服务器崩溃。(2.00.16.3
  • 当通过 enableTableShareAndCachePurge 设置自动清理共享流数据表时,如果订阅是通过断开连接而非 unsubscribe 取消的,缓存数据未能被正确清理,导致表行数超过设定的 cacheSize 限制。(2.00.16.3
  • 在并发提交多个任务时,偶发任务调度异常导致系统无法响应。(2.00.16.3
  • 由于 mr 函数缺少入参类型验证,在传入空的数据源时,导致 server 崩溃。(2.00.16.3
  • 回滚未提交的更新/删除事务时,未正确删除临时目录。(2.00.16.2
  • 在客户端向服务器写入数据时,若启用 enableSeqNo,可能导致内存泄露。(2.00.16.2
  • 在查询 VALUE 分区表时,针对 <<= 比较条件,分区剪枝未被正确应用。(2.00.16.2
  • 若 TSDB 表开启软删除功能且去重策略未设置保留所有重复数据,执行包含该表的联接查询并删除记录时,可能因生成越界行索引导致服务器崩溃。(2.00.16.2
  • 使用 AWS 插件连接 Amazon S3 进行分级存储时,若任务在重试过程中存在残留文件,可能导致重命名失败,进而导致任务失败。(2.00.16.2
  • 在高可用场景下,当某个数据节点重启且存在分布式表写入事务时,可能导致写入失败。(2.00.16.2
  • 发布端关闭异常订阅连接时,若订阅的流表存在其它订阅,可能导致阻塞。(2.00.16.2
  • getAuthenticatedUserTicketgenerateUserTicket 函数返回的编码结果中包含换行符。两函数现在始终返回单行字符串。(2.00.16.2
  • 通过 drop table 删除当前会话中与另一个会话共享变量同名的本地表会导致系统崩溃。(2.00.16.2
  • 在跨分区执行 pivot by 查询时,由于列名映射出现问题导致报错“列不存在”。(2.00.16.2
  • 并发执行创建共享流表和 existsStreamTable 查询同一个流表,导致服务器崩溃。(2.00.16.1
  • 在跨节点订阅场景下,连接发布节点时未使用 xdb 中的用户信息进行登录。(2.00.16.1
  • 通过 revoke 取消 table 相关权限时,如果 objs 参数指定为数据库对象,会导致服务器崩溃。(2.00.16.1
  • 使用自定义聚合函数配合 interval 分组查询时返回空值。(2.00.16.1
  • eig().values 返回的结果中包含空值时,无法正确填充空值。(2.00.16.1
  • for 循环中调用 weekEnd 函数可能会修改入参日期变量。(2.00.16.1
  • 修复了 vectorAR 函数在处理部分有效输入时异常报错的问题,现已与 Python 实现行为保持一致。(2.00.16.1
  • 修复因流表持久化阻塞导致节点卡死的问题。(2.00.16.1
  • 订阅重连状态未清理导致订阅重连缺失。(2.00.16.1
  • fromStdJson 无法正确解析包含换行空对象(如 {} 的 } 单独换行)的 JSON 字符串。(2.00.16.1
  • 自定义函数返回的 tuple 未被正确标记为可变引用,导致后续操作未作用于原始对象。(2.00.16.1
  • 在同一 topic 上并发执行订阅和取消订阅操作时,导致订阅状态不一致。(2.00.16.1
  • 在线增加数据节点出现报错: "The number of nodes [] exceeds the max number of nodes specified in the license file []"。(2.00.16.1
  • 表连接操作中,若表名和内置函数同名会出现报错。
  • 流表中含有 array vector 列时,内存使用量统计不准确。
  • 执行取消流表定义的操作(如 undefdropStreamTable)后,流表的权限不会被自动收回或取消。
  • 订阅流表时,由于网络线程与订阅线程间存在数据竞争导致 server 崩溃。
  • movingWindowData 在处理超大数据量时可能导致 server 崩溃。
  • 节点上线或下线前对分区元信息的并发访问导致出现数据竞争。
  • 存算分离的 OLAP 代理存储引擎由于 cache 分配失败,导致 server 崩溃。
  • sqlColAlias 输入无效参数导致 server 崩溃。
  • regexReplace 函数在模块中解析失败。
  • 在模块内,把自定义函数当作 operator 使用,导致解析失败。
  • SQL 中出现包含空条件的 WHERE 子句时未报错且返回空表。

废弃功能

已弃用函数 registerSnapshotEngine、unregisterSnapshotEngine。