3.00.0

版本下载

版本号: 3.00.0     二级兼容 2.00.11 和 1.30.23

发行日期: 2024-03-31

新功能

  • 新增配置项 maxJoinTaskRetry,用于设置在内存紧张时单个SQL JOIN 子任务的最大重试次数。(3.00.0.5

  • 支持 fromStdJson 函数,将标准 JSON 文本转化为符合 DolphinDB 标准的数据。(3.00.0.2
  • 支持 parseInteger 函数(别名:parseInt),按照不同进制将字符串转换为指定的整数类型。(3.00.0.2
  • 支持函数 backupSettingsrestoreSettings,分别用于备份或恢复当前数据库系统中的所有用户、用户权限信息和函数视图。(3.00.0.2
  • 新增函数 VaRCVaR ,分别用于计算风控指标(VaR)和条件风险指标(CVaR) 。(3.00.0.1

  • 新增函数 nssnssPredict,分别用于拟合债券的收益率曲线和预测债券的收益率。(3.00.0.1

  • 新增配置项 enableShellFunction,用于设置是否允许用户调用 shell 函数。默认不允许任何用户调用。(3.00.0.1

  • 新增支持了用于解析 Python 脚本的 Python Parser。Python Parser 集成了 DolphinDB 语法和 Python 语法,在 Python Parser 内可以实现:

    • 解析原生 Python 的数据结构、内置函数和大部分编程语法,包括赋值语法、编程语句、函数定义、列表推导式、类等。

    • 使用 pandas 的 DataFrame 类、Series 类、Index 类(仅支持 SingleIndex),和它们的部分方法。

    • 使用 DolphinDB 数据结构和内置函数。

    • 使用 SQL 的部分功能,包括建库、建表、插入数据、查询数据等。

  • 新增订单簿引擎,用于实时合成指定频率的全档位盘口信息、窗口内统计信息、全天累计统计信息等订单薄数据。也可通过历史逐笔数据来合成需要的订单薄数据。

  • 新增复杂事件处理引擎(CEP引擎),用于从大量的实时事件流中提取有意义的信息,根据事件的内容和发生时间进行关联,并采取相应的行动,具体以下功能:

    • 支持通过 Class 定义事件类型。

    • 支持动态添加多种事件匹配规则, 包括单一事件匹配、按时间触发、限定时间内匹配。

    • 支持自定义事件匹配之后的处理函数。

    • 支持多种事件处理顺序:优先处理指定事件、按事件接收顺序处理。

    • 支持数据视图 DataViewEngine,实时监控 CEP 数据变化。

    • 将事件分发到不同线程并行处理。

  • 为提高与标准 SQL 的兼容性,便于习惯于 SQL 语法的用户更便捷地管理数据库和表,在此版本中新增 Catalog 功能,通过 catalog-schema-table 三层架构,用户可以更有效地查询、管理、组织和使用 DolphinDB 中的数据库和表。有关详情,参考:数据目录

  • 新增 IMOLTP 存储引擎支持将所有数据都存储在内存中,省去磁盘 I/O 的开销;以行存的形式来组织数据,主要适用于 OLTP 的场景,支持创建 B+ 树索引(主键索引和二级索引)来应对高频度、高并发的更新和查询操作。

  • 新增支持实现遗传算法的引擎 GPLearnEngine,可以调用 GPU 进行自动因子挖掘,加快投研效率。

  • DolphinDB 脚本语言(DolphinDBScript )支持 Class。响应式状态引擎支持通过 OOP 模式定义因子。

  • 流计算发布订阅扩展支持 udp 可靠组播模式,优化多订阅端共同订阅单一发布端时的网络带宽使用,从而提升了数据传输效率。

功能改进

  • 提升了 SQL 并发查询的稳定性。(3.00.0.6

  • 增强函数参数校验。(3.00.0.6

  • 增强系统安全性。(3.00.0.6

  • 提升 DELETE 语句性能。(3.00.0.6

  • 订单簿引擎(createOrderBookSnapshotEngine)输入表的 "receiveTime" 支持 TIMESTAMP 类型。(3.00.0.5
  • 提升 TSDB 的并发查询性能。(3.00.0.5
  • groupby 函数支持传入元组类型(等长向量)的 groupingCol 。(3.00.0.2
  • sortBy! 函数支持对键值内存表指定排序方向。(3.00.0.2

  • rowGroupby 函数新增参数 ascending,支持设置输出的排序方向。(3.00.0.2

  • fixedLengthArrayVector 函数支持合并固定长度数组向量。(3.00.0.2
  • Shark GPLearn 在计算适应度时支持使用 contextbygroupby 进行数据预处理。(3.00.0.2

  • Shark GPLearn 支持辅助函数:std, stdp, skew, kurtosis, rank。(3.00.0.2

  • createCrossSectionalEngine 增加 keyFilter 参数,用于过滤不满足条件的 key。(3.00.0.2
  • createOrderBookSnapshotEngine优化以下内容:(3.00.0.2

    • 支持上交所逐笔合并数据中的订单状态数据。

    • 撤单类型增加原始委托量的相关字段:WithdrawBuyOrderQtyList, WithdrawSellOrderQtyList。

    • 支持对全部的 exchangeoutputColMap 指定为 genOutputColumnsForOBSnapshotEngine 函数返回的任意字段。

    • 设置 exchange="XSHGFUND" 时只输出 5 开头的分组。

  • 优化了 CEP 引擎匹配时的性能。(3.00.0.2
  • 函数 createGPLearnEngine 新增参数 verbose,用于设置是否输出训练时的信息。(3.00.0.1

  • 函数 createGPLearnEngine 新增参数 minimize,用于设置适应度的优化方向。(3.00.0.1

  • GPLearn 引擎中自定义的适应度函数支持更多辅助函数。(3.00.0.1

  • 优化 replay 函数全速回放异构流表的性能。(3.00.0.1

  • license 函数新增可选参数 read,用于指定是否对 license 文件进行校验。(3.00.0.1

  • createOrderBookSnapshotEngine 的参数 orderBookDetailDepth 支持设置订单簿明细档位。(3.00.0.1

  • genOutputColumnsForOBSnapshotEngine 的参数 orderBookDetailDepth 支持设置输出的订单簿明细档位。(3.00.0.1

  • createPartitionedTablesortKeyMappingFunction 参数支持设置为 hashBucket{, 1}。(3.00.0.1

  • 优化 TSDB 引擎以下场景中的查询效率:对 sort key 使用 in 进行过滤。(3.00.0.1

  • 提升系统安全性,对密码进行加密后存储。(3.00.0.1

故障修复

  • 在 N 对 N 回放时,如果数据中某个分区为空,可能会导致其中某些输出表的数据缺失。(3.00.0.6

  • 修复了通过 append! 向分布式分区表表追加分布式分区表导致 server 崩溃的问题,现执行该操作时系统将返回错误提示。(3.00.0.6

  • 在 MySQL 语法模式下,查询语句中若使用窗口函数的 leadlag 函数会导致 server 崩溃。(3.00.0.6

  • 通过 dropColumns! 删除键值内存表中的列时,若键值内存表中某个列名包含大写字母,则会报错。(3.00.0.6

  • corr 函数的 XY 为表且列数不同导致 server 崩溃。(3.00.0.6

  • 并发写入键值内存表导致 server 崩溃。(3.00.0.6

  • 调用自定义递归函数造成内存泄漏。(3.00.0.6

  • 使用 group by 分组后对 STRING 类型列调用 max 函数可能导致结果不正确。(3.00.0.6

  • group by 子句中包含 inverval 函数时, varp函数计算结果错误。(3.00.0.6

  • 创建 IMOLTP 内存表时,列名无法指定为大写。(3.00.0.6

  • 分发引擎(createStreamDispatchEngine)写入异步持久化流表时,若流表的持久化线程出现堆积,可能造成 server 崩溃。(3.00.0.5

  • 订阅时 batchSizethrottle 同时触发导致数据乱序。(3.00.0.5

  • 表连接操作偶尔导致 server 崩溃。(3.00.0.5

  • 使用用户定义的最优化函数,可能导致 server 崩溃。(3.00.0.5

  • 当 Py 插件通过 globalDynamicLib 配置的路径不存在时,server 未报错。(3.00.0.5

  • 高可用集群下,在自动新增分区后,如果不调用 loadTable 重新加载表,而是继续使用旧的句柄(handle),可能无法查询到新分区的数据。(3.00.0.5

  • 进行异构回放时,若重新划分了数据源的时间列(replayDS 指定了参数 timeRepartitionSchema),导致输出的数据乱序。(3.00.0.5

  • 在 N 对 N 回放时,如果数据中某个分区为空,可能会导致其中某些输出表的数据缺失。(3.00.0.5

  • 函数视图同时满足以下条件时,在 server 重启后,可能出现函数视图的结果不正确:

    • 包含 CROSS JOIN(SQL-92)语句

    • CROSS JOIN 与其它 join 联用

  • makeKey 函数应用于 WHERE 语句时,当其入参不符合预期时,可能导致 server 崩溃。(3.00.0.5

  • 当查询 keyedTable/indexedTable 时,若查询语句包含对 SYMBOL 类型向量的查询,且同时存在以下条件,可能导致 serve 崩溃(3.00.0.5):

    • SYMBOL 类型向量的元素数量为 0。

    • 主键列的个数大于1。

  • 并发执行 SQL 语句,当满足以下条件时,可能导致 server 崩溃(3.00.0.5):

    • SQL 语句进行多表连接,且其中一个表是子查询。

    • from 的对象是一个子查询。

  • 当 TSDB 引擎写入的 DECIMAL 数据精度超过表结构设置的精度时,重启集群进行回放会发生错误。(3.00.0.4

  • 在表连接操作中,偶发由于系统修改子查询中的变量名而导致找不到列名的错误。(3.00.0.4

  • left join 导致偶发的 server 崩溃。(3.00.0.3

  • 使用 ej 函数对键值内存表进行等值连接的结果错误。(3.00.0.3

  • 控制节点的元数据在极端情况下会出现一个分区路径对应多个 chunkid。(3.00.0.3

  • 若异步复制任务中存在数据损坏,系统无法跳过该任务而持续重试。(3.00.0.3

  • 在 SQL 查询中,如果 interval 函数的第一个参数不是表中的列,可能导致 server 崩溃。(3.00.0.2

  • 函数 mmad 的参数 minPeriods 对前 window 个元素不生效。(3.00.0.2

  • 在 SQL 语句中,如果数据库路径不是字符串,可能导致 server 崩溃。(3.00.0.2

  • 当查询分布式表时,如果 context by 子句包含的列数大于 2,且 csort 包含 context by 的列,结果不正确。(3.00.0.2

  • 在流数据回放时,如果 worker 数远小于分区数,可能会导致回放任务卡住。(3.00.0.2

  • 当 SQL 查询包含 pivot by 子句,且 select/exec 子句包含表达式时,查询报错。(3.00.0.2

  • 从 Amazon S3 上恢复手动上传的备份文件时报错。(3.00.0.2

  • 对键值表使用 sortBy! 排序时,不支持设置参数 sortDirections。(3.00.0.2

  • 对空表进行 SQL 查询时,如果包含 context by 子句,且 select 子句中调用函数 eachPre,则查询报错。(3.00.0.2

  • 在宏变量的元编程中,按分组对多列应用函数模式进行计算,若计算函数为聚合或序列相关函数,则有时结果不正确。(3.00.0.2

  • 表为值分区,且分区列是 STRING 或 SYMBOL,若 where 指定的分区列中含有小数点或其他特殊符号,可能会导致 where 中的等号失效。此为 3.00.0 版本引入的问题。(3.00.0.2

  • 对 select 查询的列调用 join 函数后再进行聚合计算,会出现报错。(3.00.0.2

  • 在 SQL 查询中,moving 高阶函数调用 ols,可能会导致 server 崩溃。(3.00.0.2

  • 订阅流数据写入分布式表时,在 batchSize=1 时,出现 DECIMAL 数据丢失精度。(3.00.0.2

  • createOrderBookSnapshotEngineoutputCodeMap 参数中指定了包含重复值的向量时,导致 server 崩溃。(3.00.0.2

  • 高可用流表场景下,在节点重启时,若流表已完成加载,但 Raft 还未完成初始化,可能导致 server 崩溃。(3.00.0.2

  • 在异步复制中,从集群的 Leader 切换为 Follower 后又重新被选举为 Leader,此时执行 getSlaveReplicationQueueStatus 返回的 executionSet 会显示随机数。(3.00.0.2

  • 对分布式表使用 ej,同时在 where 子句中使用了外部变量,会报错 “Unrecognized column name”。(3.00.0.2

  • CEP 引擎 spawn monitor 时,若 Monitor 中存在 class 类型的成员属性,可能导致 server 崩溃。(3.00.0.2

  • CEP 引擎在 addEventListener 方法中通过参数 condition 指定了 Monitor 中的成员属性时,出现报错:SQL context is not initialized yet. RefId: S02011。(3.00.0.1

  • ARM 版本多线程查询导致 server 崩溃。(3.00.0.1

  • 开启资源跟踪后,对内存表并发执行 selectappend! 操作导致 server 崩溃。(3.00.0.1

  • clearCachedModules 函数在命令行执行不生效。(3.00.0.1

  • wjaggs 参数中使用 head 函数导致 server 崩溃。(3.00.0.1

  • 递归或嵌套调用 JIT 函数,在内部编译失败时,server 发生崩溃。(3.00.0.1

  • 分布式查询的 WHERE 子句中包含生成临时变量的函数调用导致 server 崩溃。(3.00.0.1

  • 在查询中,分析函数无法正确识别多表连接中的列。(3.00.0.1

  • 修复潜在的安全漏洞。(3.00.0.1