3.00.2

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

版本下载

版本号:3.00.2 二级兼容 2.00.13 和 3.00.1

发行日期: 2024-10-20

下载地址:

新功能

  • 新增函数 attributeNamesattributeValues,分别用于获取类实例的所有属性名、所有属性及对应的属性值。(3.00.2.2
  • 新增数字货币订单簿合成引擎 createCryptoOrderBookEngine。(3.00.2.1
  • 支持存算分离架构,通过配置计算节点组,实现计算和存储完全隔离。
  • 新增文本存储引擎 textDB,支持对文本内容高效检索。
  • 新增物联网点位管理引擎(IOTDB 引擎),支持设备点位管理功能。
  • 新增多集群管理功能,以支持通过集群管理者管理多个集群。
  • 新增支持在公网上部署许可证服务器( license server)。
  • 支持 OAuth 单点登录功能,对应新增 11 个相关配置项和 oauthLogin 函数。
  • 内存管理器由 tcmalloc_minimal 替换为 tcmalloc,同时新增函数 startHeapSample, dumpHeapSample, stopHeapSample 以支持堆内存采样。
  • 新增 differentialEvolution 函数,使用差分进化算法求解多元函数的全局最小值。
  • 新增利率互换估值函数 irs,用于计算浮动利率支付方的利率互换估值。
  • 新增期权估值函数 vanillaOption,用于估值计算香草期权(Vanilla Option)。
  • 新增时间序列模型函数 varma,使用向量自回归移动平均模型来分析多变量时间序列。
  • 新增时间序列模型函数 garch,使用广义自回归条件异方差模型来分析单变量时间序列。
  • 新增现金流函数 fiCashflow,计算面值为 100 元的债券的现金流。
  • 新增最大回撤率函数 maxDrawdown(别名 mdd),用于计算传入向量数据的最大回撤或最大回撤率。
  • 新增函数 bondYield,通过债券净价计算有价债券的收益率。
  • 新增估值定价引擎 createPricingEngine,其既可调用 DolphinDB 诸多用于估值定价的函数,也支持用户传入可以传入自定义函数或表达式。

  • 新增估值函数 crmwCBond,使用中债估值方法对标的债务为到期一次还本付息的短期债券的信用风险缓释凭证进行估值。
  • 新增估值函数 cds,对信用违约互换进行估值计算。
  • 新增估值函数treasuryConversionFactor,基于中金所国债转换因子和应计利息计算公式对转换因子进行估值计算。
  • 新增函数 histogram2d,用于计算两组数据样本的二维直方图。
  • 新增函数 kroghInterpolateFit,对一组点集进行多项式插值。
  • 新增函数 linearInterpolateFit,为一组点集进行线性插值。
  • 新增函数 getRules,获取规则引擎中所有生效的规则。
  • 新增函数 enableTableShareAndCachePurge 支持创建定时清理的非持久化流数据表;新增函数 enableTableCachePurge,支持将非持久化流表设置为自动清理。同时新增函数 getStreamTableCacheOffset,用于获取流表在内存中第一条数据的偏移量。
  • 新增函数 createSnapshotJoinEngine,支持创建快照连接引擎。该引擎由左、右表的最新数据触发连接,并计算指标。
  • 新增时间序列聚合引擎函数 createTimeBucketEngine 以支持在基于数据时间自定义的不定长窗口中进行聚合计算。
  • 新增函数 latestKeyedStreamTable,支持创建键值流数据表。该表能够基于时间列判断是否添加新记录。
  • 新增函数 getStreamEngineList,支持获取当前节点上所有流计算引擎的信息。
  • createOrderBookSnapshotEngine 函数设置 useSystemTime = true 时,支持设置 skipCrossedMarket = false。
  • 新增配置项 TSDBVectorIndexCacheSize,设置 TSDB 引擎的向量索引缓存大小。
  • 非高可用集群支持登录代理节点。
  • 新增 jsonExtract 函数,支持按指定类型提取 JSON 对象中指定位置的数据。
  • getCurrentSessionAndUser 函数支持返回当前 session 的远程 IP 地址和端口号。
  • 新增函数 getLoadedPlugins,用于获取当前节点已加载的插件列表。
  • 主键存储引擎(PKEY)支持 getPKEYMetaDatagetPKEYCompactionTaskStatus 函数。
  • 新增函数 cummdd,用于计算累计最大回撤。
  • 新增函数 constantDesc,用于描述对象的属性。
  • 新增函数 memberModify!,支持修改元组或 ANY 字典的成员对象。
  • 异步复制新增配置项 slaveReplicationDBScope,用于在从集群设置回放的数据库范围。

功能优化

  • 主键引擎布隆过滤器(bloomfilter 索引)新增支持以下类型:TEMPORAL, BINARY 和 COMPLEX。(3.00.2.2
  • 优化点位管理引擎分布式查询中聚合计算的性能。(3.00.2.2
  • createCrossSectionalEngine 新增参数 updatedContextGroupsOnly,支持设置仅计算相较上次输出存在更新的分组数据。(3.00.2.2
  • createOrderBookSnapshotEngine 新增参数 independentForceTriggerTime,支持设置长时间未触发快照输出的分组的强制输出时间间隔。(3.00.2.2
  • 优化时序聚合引擎功能:(3.00.2.2
    • 当设置useSystemTime=false 时, acceptedDelay 可以大于 windowSize
    • 在同时满足以下条件时,优化了内存占用
      • windowSize 仅设置为标量。
      • windowSizestep 取值相同。
      • acceptedDelay > 0。
      • useSystemTime = false。
      • keyColumn 非空。
  • 优化了当消费速度较慢时的内存占用。(3.00.2.2
  • 更新交易日历。(3.00.2.2
  • 提升点位管理的性能和稳定性。(3.00.2.1
  • 加强存算分离的稳定性。(3.00.2.1
  • 函数nss 重构:
    • 拆分成 nsnss 两个接口,分别使用 NS 模型和 NSS 模型拟合债券的收益率曲线。
    • 允许参数 maturity 值等于 0。
    • 重构 method,由选择模型改为选择优化方法,包括 'nm', 'bfgs', 'lbfgs', 'slsqp' , 'de'。
    • 增加参数 maxIter, bounds, initialGuess, seed,用于设置优化中的相关参数。
  • 函数 piecewiseLinFit 新增可选参数 maxIter, bounds, initialGuess, seed,用于设置优化中的相关参数。同时优化了性能。
  • createDailyTimeSeriesEngine 进行以下优化:
    • 增加参数 keyPurgeDaily,用于设置在收到第一批跨天数据时,是否自动清空所有分组再处理。
    • 允许输出最后一个不完整的窗口。
    • 支持设置 updateTime=0,使得每收到一条记录都能触发计算。
  • 响应式状态引擎中使用 moving 时,其 function 参数支持返回元组的函数。
  • 横截面引擎支持输入数组向量。
  • 函数 subscribeTable 的参数 filter 支持传入自定义函数。
  • 函数 unsubscribeTable 增加参数校验。
  • 优化函数 getStreamEngineStat 的性能。
  • 函数createCEPEngine 新增参数 eventTimeField,用于指定事件中的时间字段。
  • 函数 enableTablePersistenceenableTableShareAndPersistence 增加限制,参数 cacheRetentionTime 的值须小于 cachePurgeInterval
  • 优化主键存储引擎的查询去重性能。
  • 主键存储引擎支持向量索引。
  • sqlColsqlColAlias放宽别名限制,支持使用下划线、字母和数字以外的字符。
  • setDefaultCatalog 支持传入空值,以初始化当前默认 catalog。
  • 优化会话断开后当前用户身份从登录账号变为 Guest 时的日志信息。
  • twindow 修改参数 prevailing,扩展对滑动窗口边界有重复值的选取规则。
  • dropPartition 的参数 partitionPaths 禁止为空。
  • predict 函数的参数 model 允许传入字符串。
  • poly1d 函数改名为 polyPredict
  • polyFit 函数增加参数 mode,用于控制返回值的数据形式。
  • kroghInterpolate 函数的参数 X 修改为 newX
  • clipclip! 函数重构,支持传入数据为数值型或时间类型的标量、向量、矩阵、表或 value 为数值型或时间类型的字典。
  • 索引矩阵支持调用 rename!
  • 优化面向对象编程(OOP)中获取成员变量时的性能。
  • 支持大的内存表(超过 200 万行)并行实现 join 操作。
  • 优化单表查询或两张内存表 join 查询的性能。
  • 支持对表大于一千万行、使用到聚合函数的内存表进行并行 group by 操作。
  • 实现 left join, full join 和 equi 的并行 join 和 hash join。
  • pivot by 查询中支持使用 rowWsum
  • wj 的参数 aggs支持表达式。
  • 放宽 getJobMessage 的打印长度限制,不再截断返回值。
  • 优化错误码 S06005 的信息,增加具体的冲突函数名。
  • 禁用控制节点加载 DFS 表数据。
  • 配置项 maxConnectionPerSite的默认值由 2 调整为 64。
  • JIT Backtest 支持在回调函数中打印传入的 class 实例中的元素和值。
  • JIT 支持 SECOND、MINUTE、DATE、MONTH、DATETIME、DATEHOUR、TIMESTAMP、NANOTIME、NANOTIMESTAMP 类型。
  • JIT 支持 next 函数。
  • createGPLearnEngine 新增参数 useAbsFit,用于设置当corr/pearson 为 fitness 时,是否允许使用负数。
  • 优化 TSDB 内存查询性能。
  • 优化 WHERE 子句中包含 IN 后为 STRING 类型向量的查询效率。
  • 优化安全关机流程,配置项 disableCoreDumpOnShutdown 默认值为 true,stopDataNode 函数异步执行。
  • 增强控制节点在恢复元数据过程中的验证机制。
  • 增强 addNode 等函数的在添加节点时的校验。
  • 单节点模式下,支持使用 triggerNodeReport
  • 配置文件中默认启用 enableDFSQueryLog,enableAuditLog 和 datanodeRestartInterval。

故障修复

  • 当 TSDB 引擎写入的 DECIMAL 数据精度超过表结构设置的精度时,重启集群进行回放会发生错误。(3.00.2.2
  • 向键值内存表中插入表数据时,若插入的列和键值内存表键值列的类型不一致,且无法进行类型转换时,将导致 server 崩溃。此为 2.00.11.1/1.30.23.1引入的问题。(3.00.2.2
  • 修复 createCrossSectionalEngine(横截面引擎)的以下问题:(3.00.2.2
    • metrics 中指定的别名数量少于返回的列数,导致服务器崩溃。
    • 同时指定 contextByColumnkeyFilter 时,keyFilter 指定的函数会被调用两次。
  • 在 asof join 引擎中,timeColumn 同时指定了左表和右表中的时间列,metrics 中仅指定右表时间列时,后台出现报错。(3.00.2.2
  • 当流计算引擎的输出表指定为共享表的别名时,如果发生并发写入共享表,server 偶发崩溃。(3.00.2.2
  • 在并发读写包含数组向量的流数据表时,服务器发生崩溃。(3.00.2.2
  • 在分布式查询中,通过索引访问函数返回的数组向量时,会出现报错。此为 3.00.2/2.00.14 引入的问题。(3.00.2.2
  • 在表连接操作中,偶发由于系统修改子查询中的变量名而导致找不到列名的错误。(3.00.2.2
  • 表连接函数(例如 lj)中引用局部变量导致报错,此为 3.00.2/2.00.14 引入的问题。(3.00.2.2
  • sqlColAliascolNames 指定的列名不能包含中文。此为 3.00.2/2.00.14 引入的问题。(3.00.2.2
  • 当 pivot by 指定的最后一列为分区字段时,若查询的数据量过大,则会报错。(3.00.2.2
  • createOrderBookSnapshotEngineuseSystemTime=true 时,TradeMDTimeList 和 OrderMDTimeList 列输出结果有误。(3.00.2.1
  • 字符串在网络传输时因使用 \0 截断导致反序列化错误。
  • 分区过多导致初始化 symbolbase 时内存溢出。
  • 集群离线增加计算节点后,登录新计算节点报错。
  • 单节点在内存溢出的情况下,有概率在事务完成前打印标志事务完成的日志。
  • Windows 版本在 server 路径中存在中文时启动失败。
  • 异步复制主集群切换 Leader 后,从集群没有连接到新 Leader。
  • 节点关闭时,异步复制线程没有终止。
  • 持久化流表数据损坏导致节点启动失败。
  • 将包含类相关脚本的函数封装为函数视图导致宕机。
  • workerNum 设置为空时,server 启动时会发生崩溃。现已修改为启动失败并记录到 Log。
  • 值为类实例的字典显示异常。
  • defined 函数作为 if 的条件,且其参数在 else 语句中定义时,if 条件被判断为 true。
  • 键值表中插入数据中键值列的类型与 schema 定义的类型不一致时,将相同的值识别为不同的键。
  • 字典自包含导致 server 崩溃。
  • dict 嵌套 dict 时,若内嵌套的 dict 新增一个 key-value,导致外层 dict 也新增该 key-value。
  • at 操作符内的下标越界导致 server 崩溃。
  • pnodeRun 执行一个返回向量的函数时,返回值中未包含节点名称。
  • 多次执行 pnodeRun(setTraceMode{true}),导致 server 崩溃。
  • peach 使用栈变量导致 server 崩溃。
  • 当字典值为数据类型(如 DATE 等)时,通过 toStdJson 转换后不是标准 JSON。
  • x 是浮点数时,percentChange(x,1)percentChange(x) 的计算方法和返回类型不一致。
  • 在时间序列聚合引擎和日级时间序列聚合引擎中使用 subWindow 进行指标计算,会输出重复数据。
  • cancelRebalanceTask, cancelRecoveryTask 要求入参是 chunkid 而非 taskid
  • cumstd 在计算小于 1e-10 的数时,结果为 0。
  • 在 3.00.1 版本中,无法通过 unsubscribeTable 取消通过 python 客户端创建的订阅。
  • 3.00.0 版本上的 std, stdp, var, varp 函数取消了对非常小的数字的检查,导致计算结果不符合预期。
  • 对于某些特殊的输入数据,kama 函数计算结果与 python TA-Lib 的 KAMA 计算结果不一致。
  • 在对流数据表进行过滤后,如果数据剩余不多,可能会导致发布数据变慢。
  • createTimeSeriesEnginecreateDailyTimeSeriesEngine 在指定 acceptedDelay 的值为窗口长度(windowSize) 时,会自动插值。
  • 日级时序聚合引擎在接收到乱序时间后,会导致日期列填充了 "invalid date"。
  • 日级时序聚合引擎在收到跨天的数据时,可能出现数据丢失的问题。
  • 修改订单簿引擎的以下问题:
    • WARNING 日志里没有打印出 symbol 名。
    • 设置 useSystemTime=true 时,前一天创建引擎,第二天通过 dropStreamEngine 删除引擎时,可能导致删除操作卡住。
  • 对 sortColumns 列的过滤导致 DECIMAL 精度丢失。
  • 类的成员方法中,WHERE 语句使用 IN 进行 SQL 查询过滤,实例化后调用该方法时报错。
  • context by 语句大小写敏感导致分布式表查询报错。
  • 使用 update 语句交换内存表中两列的值,结果不符合预期。
  • JIT 中矩阵不支持使用标量赋值。
  • Windows JIT 版本偶发卡住。
  • 函数 createGPLearnEnginegroupCol 参数传入向量时报错。

废弃功能

废弃内网 license server 功能,因此删除其相关的函数和配置项:getLicenseServerResourceInfo, getRegisteredNodeInfo, licenseServerSite, bindCores。该功能将由公网 license server 替代。