新年版本新升级,DolphinDB V2.00.11 & V1.30.23 正式发布!

原创
01/10 14:02
阅读数 15

新年伊始,DolphinDB 迎来了24年度的首次版本升级。在刚刚发布的 2.00.11 & 1.30.23 版本中,DolphinDB 带来了如下亮点新功能:增加了 TSDB 引擎的软删除功能支持了 SQL 开窗函数新增了 Web 端的数据面板功能。除此之外,DolphinDB 的数据分析能力也进一步领先:新增了适合风控计算场景的规则引擎优化了对数据回放的倍速限制新增并扩展了一系列函数、还更新了2024年度的交易日历

同时,新版本还改善了函数视图强化了资源监控与隔离等运维管理功能……

下面一起来看看,具体都有哪些功能更新吧~

引擎性能再提升

软删除(Soft Delete)是一种在数据库中处理数据删除的方法,这种删除方式并不是直接从数据库中移除数据,而是通过特定的标记方式在查询的时候将此记录过滤掉,在后台合并数据文件时才真正删除数据。相对于硬删除(Hard Delete),即直接从数据库中永久删除数据,软删除以追加方式进行数据删除,可大幅度提升列式数据库删除的效率。

2.00.11版本支持了 TSDB 引擎的软删除功能,通过建表时进行配置,仅在去重机制为保留最新一条时可以生效。

除此之外,新版本还优化了部分场景下的用户查询性能(如 sortkey 很多,且使用了 sortKeyHashMappingFunc 时),提升了流数据引擎的计算性能,降低了计算的峰值时延。

Dashboard 大更新

此次跟随 server 版本一起更新的,还有 DolphinDB 数据面板功能。

2.00.11版本起,DolphinDB 为用户提供了数据面板这一强大的数据可视化和分析工具,帮助用户更好地理解和利用数据。

DolphinDB 数据面板位于 Web 端,包含创建面板、编辑变量、配置数据源和自定义图表等功能。

用户可以通过对表进行查询的方式添加数据源,选择包括柱状图、折线图、饼图、表格、K线、混合图、订单图、富文本、描述表、编辑器、仪表盘、雷达图、变量、散点图等14种图表形式进行自定义的数据呈现,并通过参数配置实现对仪表盘中查询元素的动态控制,以便更灵活地分析和呈现数据。

分钟 K 线图

数据分析功能更强大

DolphinDB 是集数据存储、数据分析和流数据处理为一体的统一实时数据处理平台,通过多范式的编程语言、强大的函数库、历史数据分析与实时流计算的有机融合等设计,为用户提供了卓越的数据分析使用体验。新版本在 SQL 编程流数据函数功能拓展等层面都进行了功能增强。

SQL 开窗函数功能支持

开窗函数又叫做分析函数,是一种强大的分析工具,开窗函数允许用户在数据集中定义一个窗口,对窗口内的数据进行聚合或计算,而不是仅仅对整个数据集进行操作。这使得用户可以根据特定的条件来选择分析的范围,例如,计算每行的累积总和或平均值等。开窗函数能够满足更复杂的分析需求,特别是处理大型数据集或需要更详细分析的情况。DolphinDB 从第一个版本开始就推出了 SQL 子句 context by,可以完成开窗函数的功能。此次支持 SQL 的开窗函数,主要是为了兼容标准 SQL,方便用户迁移。

DolphinDB 新版本中新增了一系列 SQL 开窗函数,包括:sum, avg, std, stdp, var, varp, count, min, max, skew, kurtosis, med, rank, dense_rank, percent_rank, row_number, cume_dist, lead, lag, ntile, first_value, last_value, nth_value 函数。

新增规则引擎,为风控计算提供更优解

金融风控场景包含了流动性风险、信用风险、市场风险、法律和合规风险等,具有高度复杂性和即时性。为了有效管理和应对这些风险,往往会采用规则引擎,根据制定好的规则,自动识别异常交易,监测潜在欺诈行为,从而触发相应的预警或阻断措施。

新版本中,通过新增函数 createRuleEngine,可以创建规则引擎 (RuleEngine)。该引擎支持用户自定义规则集,引擎会根据每条数据指示的规则集,校验输入,并按要求输出检查结果。同时还新增了函数 updateRule  deleteRule,分别用于更新或删除规则引擎中的规则。

例如持仓风控场景中,我们可以利用规则引擎,检查最大持仓、最大亏损以及收益率:

// 默认规则检查最大持仓,最大亏损以及收益率
y = [ [ < position >= 3000000 >, < pnl < -10000 >, < pnl\position < 0.01 >], [< pnl < -10000 > ], [ < pnl\position < 0.01 > ] ]
ruleSets = dict(x, y)

//创建规则引擎
test = createRuleEngine("posRule",ruleSets, dummy ,`sym`position`pnl, outputTable,  "all")

//仓位表
posTable = table([230012,230005,230212] as sym, [1000000, 2000000, 3000000] as position, [20000, -30000, -10000] as pnl)

// 根据默认的风控规则检查仓位表中的数据
test.append!(posTable)

输出结果展示:

可以看到,债券代码为230012的持仓数据通过了风控限额检查;230005在最大亏损和收益率上超过了限额,没有通过规则检查;230212在最大持仓和收益率上没有通过检查。

数据回放再升级,回放倍速更灵活

新版本中,数据回放可以完全支持按照数据到来时间的倍速进行回放,这意味着回放精度提高,用户可以更细致地控制回放的时间单位和间隔。

此外,新版本缩短了用户取消回放任务的响应时间,帮助用户进一步提升分析决策效率。

函数的新增与扩展

新版本增加了对金融场景函数 bondDuration, bondDirtyPrice, bondConvexity 的支持,用于计算久期、含息价格、凸性等金融指标。

统计分析层面,新增支持了:

  • 函数 iminLast imaxLast 以及对应的滑动窗口实现,拓展了查找最值索引的功能,支持多个最值取最大的索引。
  • 函数 kendall ,用于计算 Kendall 相关性系数。
  • 函数 clip ,用于按数据范围进行极值掩盖。

数值计算层面,新增支持了:

  • 函数 socp,用于更高效地求解二阶锥规划问题,计算目标函数在限定条件下的最小值。
  • 函数 osqp,支持半正定的二次项矩阵的优化问题求解。
  • 函数 brentq ,用于在给定区间范围内求根。

高阶函数层面,新版本对已有函数 byRow  byColumn 进行了系统性的增强和统一,支持 tuple, array vector 和 matrix,并进行了大量的性能优化。同时新增了用模式符号 :H, :V 和 :U 表示函数 byRow, byColumn  loop 的功能,借助这类模式编写脚本,代码的表达能力得以提升。

2024年度交易日历更新

随着新的一年到来,DolphinDB 也在新版本中内置了2024年的交易日历,其中包含各国的法定节假日、休市日、交易时间调整等信息,能够为投资交易者提供更多参考。

同时,新版本拓展了 transfreqasFreq  resample 函数的规则。过去,参数 rule 可以指定交易日历的标识(国外交易所的 ISO Code、国内交易所简称或自定义交易日历名称),以便基于交易日历进行计算。新版本中,交易日历可以配合使用数字,表示多个交易日(此时只能指定由4个大写字母组成的交易日历标识)。例如:“2XSHG”,表示上海证券交易所每两个交易日。

易用性增强

新版本在模块、函数视图功能上做了较大的改善,将函数视图的权限约束和集群共享功能与 module 的模块化管理结合,从而在使用上更为便捷可控,更利于代码的工程化管理。改进具体表现在:

  • 过去用户在命名函数视图时,可能会出现函数重名冲突的问题。新版本中为函数视图的功能增加了 namespace 属性,即用户可以把模块里的函数定义成函数视图,在不同模块定义同名函数时,也不会产生冲突。
  • 拓展了权限管理功能,可以通过 grant(`user, VIEW_EXEC, `module::fun) 的方式对模块及其函数进行权限管理。
  • addFunctionView 的模块将持久化至控制节点,并自动同步至整个集群,省去手动在各节点上传 module 的繁琐操作及一致性问题。

运维管理功能再强化

新版本在资源监控与隔离、备份恢复、可观测性、权限和作业管理等方面都进行了升级,帮助 DBA 监控并保障相关业务稳定运行。

以资源监控隔离为例,新版本新增了用户级别的资源跟踪功能:

  • 新增函数getUserHardwareUsage,用于采样 CPU 和内存使用量
  • 新增函数getUserTableAccessRecords,用于记录 SQL 访问分布式表的信息
  • 新增函数 enableResourceTracking  disableResourceTracking,用于开启或关闭控制资源隔离
  • 新增配置项 resourceSamplingInterval, resourceSamplingMaxLogSize resourceSamplingLogRetentionTime,支持用户自定义采样间隔拆分日志文件的大小阈值日志保留时间

未完待续……

此次版本发布,不但进一步提升了数据库的数据分析处理能力,也大大优化了用户的使用体验。后续我们也将致力于满足不断演进的用户需求,积极倾听大家的反馈。

接下来的版本中,DolphinDB 将会推出的重点功能如下:

  • 数据库提供 catalog 功能,用户对库表的访问更加方便,进一步兼容标准 SQL
  • 推出新的主键存储引擎和向量存储引擎
  • 计算节点支持数据缓存,增强分布式计算的拓展能力
  • 支持 GPU 在计算中的应用,大大加速算子的计算性能,并支持遗传算法
  • 流计算推出复杂事件处理引擎,为实时事件应用程序提供低代码开发环境与完整的运行平台
  • 脚本语言支持 Class,极大增强脚本语言的可扩展能力
温馨提示:1.30.23版本是1.30系列的最后一个版本,将于2025.12.31停止维护。后续 DolphinDB 更新版本为:2.00系列版本(稳定版)& 3.00系列版本(最新版)。
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部