3.00.6

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

新功能

  • 新增 AI Agent 运行时框架(DolphinX),提供智能体交互、会话管理、技能管理、记忆管理、LLM 接入、上下文组装和权限控制等核心能力。

  • 新增 FeatureDB 初版功能,支持通过 fstore 客户端和 Python 包对特征数据进行管理与访问。

  • 新增标准债券远期定价函数 stdBondForwardPricer, 用于支持 StdBondForward 产品定价。

  • 新增债券远期定价器 bondForwardPricer,用于支持 BondForward 产品定价。

  • 新增函数 creditCurveBuilder,用于构建信用曲线。

  • 新增 FloatingRateBond instrument,用于表示浮动利率债券。

  • 新增函数 bondOutrightRepoPricer,用于债券买断式回购定价。

  • 新增函数 bondPledgedRepoPricer,用于债券质押式回购定价。

  • bondPricer 新增支持对浮动利率债券、含权债进行定价。

  • 新增函数 irEuropeanSwaptionPricer 用于对欧式利率互换期权定价。

  • 新增函数 irSwaptionVolatilityCubeBuilder,用于构建利率互换期权波动率立方体。

  • 新增函数 irCapFloorVolatilitySurfaceBuilder,用于构建利率上下限期权波动率曲面。

  • 新增函数 irCapFloorPricer,用于利率上限期权和利率下限期权定价。

  • 新增函数 impliedRepoRateCalculator,计算国债期货的隐含回购利率。

  • 新增函数 irForwardRateAgreementPricer,用于远期利率协议定价。

  • 新增外汇数字期权定价器 FxDigitalOptionPricer,支持外汇数字期权定价,并支持设置报告币种。

  • 新增函数 fxRangeAccrualOptionPricer,用于外汇区间累计期权定价。

  • 新增函数 fxNonDeliverableForwardPricer,用于外汇无本金交割远期定价。

  • 新增函数 eqRangeAccrualOptionPricer,用于权益类区间累计期权定价。

  • 新增函数 eqDigitalOptionPricer,用于权益类数字期权定价。

  • 新增函数 creditDefaultSwapPricer,用于信用违约互换定价。

  • 新增函数 scheduleGenerator,用于生成日期序列。

  • 新增函数 dateGenerator,用于生成日期序列。

  • 支持通过 instrument["key"]instrument.key 语法对 Instrument 对象字段进行访问。

  • 新增 Copula 系列函数,支持拟合多种 Copula 模型并计算概率密度,计算结果与 MATLAB 保持一致。

  • 新增聚合函数 twavg,用于按时间长度计算数值序列的加权平均值。新增函数 rowTwavg,用于按行计算时间长度加权平均值,支持向量、数组向量、列式元组和矩阵输入。

  • 新增函数 mmaxDrawdown(别名 mmdd),用于计算滑动窗口内的最大回撤,效果等同于 moving(maxDrawdown{,ratio}, X, window, minPeriods)。支持在 reactiveStateEngine 中使用 mmaxDrawdown 进行流式计算。

  • 新增高阶函数 movingDynamic,用于支持变长窗口滑动计算。

  • 新增滤波函数 firiir,用于对数值数据进行线性滤波。

  • 新增函数 deleteJobArtifacts,用于删除当前节点磁盘上的持久化任务结果及相关消息文件。新增函数 getAllJobs,用于按用户权限获取持久化后台任务历史信息。

  • 新增函数 getDatabaseDDLgetDBTableDDL 用于生成可通过 runScript 执行的建库、建表语句。

  • 新增函数 setCatalogCommentsetSchemaCommentgetCatalogCommentgetSchemaComment 函数添加(获取) Catalog 和 Schema 描述信息。

  • 新增函数 getLicenseServerStatus,用于获取 license server 的连接状态及断开连接后的剩余可用天数。

  • 新增函数 enableDynamicScriptOptimizationdisableDynamicScriptOptimization,在当前会话(session)级别开启或关闭动态脚本优化。

  • license 返回值新增字段 licenseSourceType,用于描述 license 的加载来源,仅支持通过加密狗加载。

  • 支持 License Server 通过加密狗进行授权校验。

  • 新增函数 uj,用于实现 kdb 语法中的 union join 功能。

  • 新增函数 sortCol,用于在元编程 SQL(sql) 的 csortorderBy 中指定排序列、升降序及空值排序位置。

  • defs 函数新增返回字段 isView,用于区分普通函数和函数视图。

  • schema 函数新增返回 tableType 字段,用于标识内存表类型,支持区分普通表、键值共享内存表和索引共享内存表等表类型。

  • betambetacumbeta 新增参数 intercept,用于控制是否对截距建模。

  • 新增配置项 userParallelismHardLimit,用于启用用户级任务并行度硬限制。

  • 新增配置项 replicaBalancingPolicy,用于控制多副本场景下的副本均衡策略;SQL 执行可将分区任务均衡分配到多个副本节点,而非优先使用当前节点。

  • 新增配置项 volumeType,用于指定 TSDB 存储卷的磁盘类型,并在 SSD 场景下优化 level file 读取性能。

  • INSERT INTO ... VALUES 语句支持多行书写多组值。

  • 支持在 MySQL 方言模式下通过反引号(`)引用表名、字段名及带表别名的字段名,避免标识符与关键字冲突。

  • 支持分组查询的组内分页能力:

    • 支持在 group by ... interval(...) 查询中通过 window limit offset, count 对每个分组内的窗口聚合结果进行分页。

    • 支持在 context by 查询中通过 limit offset, count 对每个分组内的明细数据进行分页。

  • 支持通过 schema.table alias 形式为字典成员访问的表指定别名,例如 SELECT t.* FROM dashboardConfigDb.configDtl t

  • 支持在 SQL GROUP BY 子句中使用 ROLLUP 语法,包括 GROUP BY rollup(...)GROUP BY ... WITH ROLLUP,用于生成分组小计和合计。

  • JIT 编译器重构,大幅增强函数式编程支持:新增函数值、匿名函数、lambda、闭包、partial function 的传递与调用;支持默认参数和 keyword 参数调用;支持非标量下标索引;新增类成员类型标注及容器元素操作。另新增 JIT 调用统计函数,用于获取 JIT 命中/未命中信息。

  • 支持通过 while 语句编写循环控制逻辑。

  • 支持通过 @desc 为函数定义添加文档描述、参数类型和返回值类型等信息。新增 signature 函数,用于获取函数的名称、描述、参数类型、返回值类型、参数个数、语法等元数据,并支持识别命令行函数和自定义函数。

  • 支持在 Class 中使用 PAIR、MATRIX、SET、TABLE 等进行类型标注。

  • 支持使用 ANY[<BasicType>] 表达 ANY 类型的细分类型,包括列式元组类型。

  • 支持 moving 搭配自定义聚合函数返回不等长数组向量。

  • Time Series Engine 新增对聚合函数 twavg 的支持。

  • 支持在时序聚合引擎(包括 dailyTimeSeriesEngine)中同时配置 updateTimeforceTriggerTime

  • 支持在时序引擎和分布式时序引擎中通过 enlist 函数输出 ANY 类型字段。

  • 支持高可用流表订阅连接非 leader 节点,调用 subscribeTable 时会自动转发至 leader 节点。

  • getStreamTables 新增返回字段 accessControlEnabled,用于查看流表是否已设置访问控制。

  • 快照合成引擎支持通过多段 startTimeendTime 控制快照计算范围。

  • 支持在 PKEY 引擎下通过 tableUpsertignoreNull 参数进行部分列更新,避免未指定列被更新为 NULL。

  • 支持通过 setRetentionPolicy 对按月分区数据库配置数据保留策略和冷存储迁移策略。

  • 支持 createExternalTable 加载多个 Parquet 文件并解析 Hive 分区信息,便于直接通过 SQL 查询外部 Parquet 数据。

  • 支持在内存表和 DFS 表执行 append 或 update 时,将 STRING/SYMBOL 隐式转换为目标列类型,包括 TEMPORAL、INT、LONG 等。

  • 支持向内存表一次插入多行数据时进行字符串隐式类型转换。

  • 支持在分级存储和 S3 Backup 使用 S3 时,无需在配置文件中配置 s3AccessKeyId、s3SecretAccessKey 和 s3Region,AWS SDK 将通过默认凭证链自动获取 S3 认证凭证。

  • 支持通过 Web 界面查看主键引擎(PKEY engine)表的分区数据。

  • 支持在 DATETIME 解析及隐式转换中,根据不完整的日期时间字符串自动补零并转换为 DATETIME。

  • 新增数据类型与数据类别定义,用于支持 Shark/GPU 相关类型识别。

  • flatten 函数新增对包含表或字典的元组的展平支持。

  • toStdJson 新增参数 longAsString 支持将序列化的 LONG 类型数值转换为字符串,避免 JavaScript 解析超出安全整数范围的整数时精度丢失。

  • installPlugin 支持通过 HTTP/HTTPS 代理下载插件,并可自动读取环境变量中的 http_proxy 和 https_proxy 代理配置,支持带用户名和密码的代理认证。

  • 支持通过 loadTextploadTextloadTextEx 导入文本文件中的 BLOB 类型数据。

  • 新增支持接收 Apache Arrow IPC 格式的数据上传。Server 端可解析客户端发送的 Arrow 格式上传请求,并自动完成 Arrow 数据类型到 DolphinDB 内部类型的转换。

功能优化

  • 优化 objs 函数的类型展示逻辑,支持将 keyed table 和 indexed table 的类型分别显示为 KEYED 和 INDEXED。

  • 优化 SQL 语法解析中非法标识符的报错信息,在字段别名或变量名以数字开头时明确提示标识符不合法。

  • 优化哈希分区裁剪过程中 IN 条件列表的报错信息,在单列表列值类型不可哈希时,错误信息会明确提示分区列、IN 列表来源、列名及实际类型。

  • 优化冷盘存储分配策略,数据从热盘迁移到冷盘时,系统将根据剩余空间容量选择迁移目标。

  • 优化分级存储冷数据读取及 S3 备份场景下的数据读取性能。

  • 优化存算分离计算节点的磁盘空间更新机制,将后台线程更新间隔由 2 秒调整为 30 秒,并新增磁盘容量与使用量的 DEBUG 日志。

  • 优化通过 warmupComputeNodeCache 接口缓存计算组数据的机制,降低存算分离场景下索引缓存的内存占用并提升内存使用可控性。

  • 优化在 WHERE 子句中使用变量时 TSDB 引擎的查询性能。

  • 增强 PKEY 引擎建库时 chunkGranularity 参数的校验逻辑,当 chunkGranularity 不为 “TABLE” 时将报错。

  • 列注释 columnComment 的最大限制从 256 bytes 调整到 1024 bytes。

  • linearTimeTrend 新增 interceptminPeriods 两个可选参数,分别支持无截距回归和窗口最小有效数据量控制。

  • 优化 CEP 脚本的 JIT 执行性能,提升实时行情流量峰值下事件处理的性能。

  • 优化 setStreamTableTimestamp 的设置逻辑,支持将流表自动时间戳列设置为任意位置。

  • 优化 Orca 流引擎动态指标管理能力,支持通过引擎对象或字符串名称对多个响应式引擎进行指标增删查。

  • 优化 Instrument 的字段解析逻辑,CmFutAmericanOption、CmFutEuropeanOption、EqAmericanOption 和 EqEuropeanOption 的 notionalCurrency 字段支持可选,未指定时默认使用 CNY。

  • 优化过期 chunk 版本回收机制。

  • 优化 Raft Leader 稳定性,降低控制节点高可用场景下的非预期 Leader 切换概率。

  • 优化 DFS 事务超时与过期事务清理调度逻辑,事务默认超时时间调整为续约间隔的 6 倍。

  • 优化 getComputeNodeCacheWarmupJobStatus 获取已完成缓存预热任务历史记录的数量上限,由 10 个提升至 4096 个。

  • 优化 drop database 的权限错误提示,在用户缺少删除数据库权限时明确提示无权删除指定数据库。

  • 优化 license server 心跳异常后的关机逻辑,并新增 license server 状态信息。

    • 优化未正常收到 license server 服务器回复后的关机机制,将自动关机等待时间从 2 天延长至 14 天。

  • getLicenseUsage 新增返回 lastConnectionTime,用于查看最后一次连接 License Server 的时间。

  • objs(true) 新增返回 createTime 字段,用于查看共享变量的创建时间。

  • 优化 Shark 符号回归功能的实现,提升功能的可维护性和扩展性。

  • 优化矩阵 loc 函数的取值逻辑,在通过 row name 或 column name 过滤矩阵时,输出结果按照过滤向量中的名称顺序返回,并保持 rowName 和 colName 一致。

  • 优化存算分离场景下 TSDB 全表预热时计算节点的内存占用。

故障修复

  • 修复高可用集群在 Leader 切换后,数据节点可能反复输出大量 Unknown recovery task 警告日志,导致日志文件快速增长并占满磁盘的问题。

  • 修复将 VOID 类型列(如通过 SELECT null 生成)追加到 SYMBOL 类型列时报错的问题。

  • 修复查询分布式表并合并分区结果时,SYMBOL 结果列不同值数量超过 2097152 可能抛出 S00003 异常的问题,系统会自动将该结果列转换为 STRING。

  • 修复 toStdJson 处理包含 \b\f 的字符串时生成的 JSON 文本不正确,导致 fromStdJson 解析时报 Invalid json text 的问题。

  • 优化并修复 iif 函数在 trueResult 和 falseResult 均为 SYMBOL 类型时的结果类型与稳定性问题。

  • 修复特殊分布式查询无法并发执行 context by 导致查询变慢的问题。此为 2.00.14 版本引入的问题。

  • 修复 SQL 查询中使用 e 作为表别名时解析报错的问题。

  • 修复 SQL FROM 子句中表别名与 DolphinDB 函数名相同时,在 JOIN、单表查询及 UNION/UNION ALL 场景下可能解析报错的问题。

  • 修复添加包含对元组中内存表执行 update 操作的函数视图时,可能因反序列化失败导致节点重启失败的问题。

  • 修复 IOTDB 引擎使用 context by ... limit 配合 having 子句时的以下问题:

    • 修复 having 子句中已存在的列名可能无法识别的问题。

    • 修复 having 子句包含聚合、窗口或顺序函数时可能导致查询结果不正确的问题。

  • 修复在 byRow 处理空 tuple 数据时可能导致宕机的问题。

  • 修复 try-catch 异常捕获的一些问题。

  • 修复 TSDB 引擎查询命中 cache engine 缓冲区时,因查询条件里 SYMBOL 列的过滤条件不是 LITERAL 类型导致报错的问题。

  • 修复存储计算分离场景下,执行 flushComputeNodeMemCache 后,getComputeGroupChunksStatus 将仍缓存在计算节点磁盘上的 chunk 错误显示为 NOT CACHED 的问题。

  • 修复 TSDB 引擎下 repartitionDS 不设置 partitionScheme 且按 SYMBOL 列重分区时,可能因分区列类型推断异常导致报错的问题。

  • 修复 PKEY 存储引擎在集群重启后,执行暂存数据回放时可能导致数据节点宕机的问题。

  • 修复向量数据库场景下,将 loadTable 结果赋值给变量后再执行带 order by rowEuclidean(...) limit K 的向量相似度查询时,报错 Table::filterTopKVector() not supported 的问题。

  • 修复删除冷盘分区数据后,事务 UNDO 日志未被垃圾回收(GC)清理的问题。

  • 修复创建时序聚合引擎时 metrics 参数含 <count(*)> 可能导致宕机的问题。

  • 修复 createDailyTimeSeriesEngine 在多交易时段窗口计算中,窗口边界处理不正确的问题:设置 useWindowStartTime=true 时输出时间可能误显示为上一窗口的结束时间;启用 mergeSessionEnd 时交易时段结束边界的数据未被正确纳入当前窗口,导致聚合结果(如 minmax)异常。

  • 修复重启后执行函数视图调用 createAsofJoinEngine 时可能导致宕机的问题。

  • 修复向流数据表持续写入 array vector 数据时,因内部容量计算溢出导致节点宕机的问题。

  • 修复流数据高可用(Streaming HA)订阅中,当 topic 名称过长时订阅失败的问题。

  • 修复高可用流表在 OOM 后清理 Raft 文件并从 Leader 恢复时,因持久化数据文件起始位置异常导致恢复失败并可能无法继续写入的问题。

  • 修复高可用流表订阅写入分布式表时,集群异常关机并重启后因 chunk 处于 RECOVERING 状态导致 DFS 表写入失败的问题。

  • 修复在高可用集群中,使用 Python API 多进程并发写入高可用流表时 Leader 节点断电,重启后数据节点可能无法启动的问题。

  • 修复 irDepositPricer 在定价日为现金流发生日时未将当日现金流计入价格,导致估值结果不正确的问题。

  • 修复节点内 rebalance(rebalanceChunksWithinDataNode)过程中,并发查询分区可能返回空数据或部分列为 NULL 的问题。

  • 修复 server 负载较高(如工作线程被大任务占满)时,Web 界面访问超时无法登录或取消作业的问题。

  • 修复配置项 thirdPartyAuthenticator 在单节点上无效的问题。

  • 修复异步日志写入器停止后仍写入已关闭日志流,可能导致写入日志时宕机的问题。

  • 修复在 Web 上新增或修改集群配置并重启数据节点后,高可用流初始化误报未配置 clusterName,导致数据节点无法启动的问题。

  • 修复服务端启动时 preloadModules 配置指定的插件加载失败会阻塞服务端启动的问题,插件异常仅影响其相关功能。

  • 修复通过 JSON API 执行脚本时,当请求的 Content-Type 为 text/plainapplication/json 时,server 错误地对请求体进行 URL 解码,导致脚本中的 + 被解码为空格从而引发解析报错的问题。

  • 修复在并发执行 shareundef 时,objs(true) 可能返回重复对象且内存持续增长,并最终导致 OOM 的问题。

  • 修复递归删除目录时,PPT 溢写文件清理过程中可能导致 server 宕机的问题。

  • 修复数据库备份恢复后字段 comment 丢失的问题。

  • 修复整数类型解析的如下问题:

    • 修复通过 loadText 导入包含科学计数法的 SHORT、INT、LONG 类型数据时,解析结果不符合预期的问题。

    • 修复负数 LONG 类型数据末尾包含空格时,负号可能丢失的问题。

  • 修复了 gmm 函数在特定数据分布下(如方差极小导致概率下溢)计算结果返回空值的问题。

  • 修复 interval 函数的 duration 设置为月或年且使用 step 或非 none 的 fill 参数时,报错信息不准确的问题。

  • 修复在 triggerType=independent 模式下,OrderBookSnapshotEngine 输入数据的 SecurityID 为 NULL 且触发快照输出时可能导致宕机的问题。

废弃功能

  • 移除 snapshot engine 及其相关代码;在 SQL 查询中使用 [HINT_SNAPSHOT] 时会报错并提示 SnapshotEngine 不再支持。

  • 优化流计算 UPDATE 语义,废除原有 changelog 机制,废弃 changelogStreamTablepeekappendgetStreamTableChangelogchangelogSource, changlogBufferchangelogSink 函数。

  • 优化债券现金流处理逻辑,在构建债券时不再支持自定义 cashflow 输入,避免与内置预设冲突。