新版本 | 异步复制、交易日历、自定义状态函数......请查收!

页面介绍 DolphinDB 发布 V2.00.9 与 V1.30.21,并概述新功能与改进方向。

Source: https://dolphindb.cn/news/detail/128

What this page covers

技能认证特训营第二期报名信息

页面顶部横幅推广技能认证特训营第二期并提供限时报名链接与专属福利优惠提示。

新闻页标题与发布时间

标识该内容为新闻并给出文章标题与发布日期。

版本发布概述(V2.00.9 与 V1.30.21)

说明 DolphinDB 发布 V2.00.9 与 V1.30.21,新功能多且对数据库进行全方位提升。

新特性一览:数据库、流计算、SQL、高阶函数与向量化

按模块列出新版本在数据库、流计算、SQL 与高阶函数/向量化方面的新增与优化点。

核心功能与亮点引导

引出后续对核心功能与亮点的详细介绍。

异步复制提升容灾能力

介绍主从架构下的集群间数据异步复制、其一致性与容错/扩展特性,以及用于监控复制状态的新增运维函数。

更强大的权限管理

说明权限管理改进:库级读写权限、DB_MANAGE 数据库级权限设置、查询结果内存限制字段,以及更细粒度的表写入权限拆分。

自带交易日历的数据库

介绍内置交易日历(覆盖国内外交易所、支持自定义)及其在多个时间序列相关函数中的使用,并给出获取日历的函数名。

流数据引擎中自定义状态函数(插件化)

解释在响应式状态引擎中将状态函数插件化以支持自定义算子与业务逻辑,并说明可通过代码导入插件与查询状态函数列表。

响应式状态引擎性能优化(JIT)与其他改进

描述通过 JIT 支持更多常用函数与提升特定/自定义函数性能,并列出流数据引擎的其他性能与订阅连接相关改进。

大数据量分组计算与 Pivot by 多线程加速

说明 group by/context by 性能提升(十倍以上)、context by 输入支持扩展,以及 Pivot by 多线程加速与相关性能优化。

未完待续:下个版本开发重点

列出后续版本计划开发的重点方向,包括分布式连接、OLTP 内存引擎、TSDB 并发性能、JIT/脚本优化与巡检工具等。

Facts Index

Entity Attribute Value Confidence
技能认证特训营第二期 status 正式开启,并提供限时报名链接与专属福利优惠提示 medium
限时报名链接 url https://www.qingsuyun.com/h5/e/217471/5/ high
新闻发布日期 date 2023.02.16 high
DolphinDB released_versions V2.00.9 与 V1.30.21 新版本近日已经发布 high
本次更新规模 claim 迄今为止新增功能最多的一次更新,并对数据库做了全方位提升 low
数据库模块 new_feature 主从集群异步复制功能(用于数据安全与数据库管理,加强容灾能力) high
权限管理 improvement 权限管理能力大幅提升,支持更高效、灵活的分层管理 medium
交易日历 new_feature 提供国内外各大交易所的日历数据,并支持用户自定义交易日历 high
License server new_feature 新增 License server 功能,帮助用户合理分配资源 high
DECIMAL 数据类型 improvement 加强 DECIMAL 数据类型的函数支持;大部分常用计算函数如 cumrank 等已支持;V2.00.9 支持创建 DECIMAL 类型的数组向量 high
Arrow 与 Python API support 新增对 arrow 格式的支持;加载插件后 Python API 可以以 arrow 协议与 DolphinDB 交互 high
流计算 new_feature 推出响应式状态引擎状态函数插件,扩展非标准化函数能力,支持用户自定义算子,并优化响应式状态引擎计算性能 high
异构流表多表数据回放 performance 理想情况下最快可达约 300万条/秒 medium
streamEngineParser optimization 优化使其产生尽量少的引擎,达到最优级联方案 high
genericStateIterate / genericTStateIterate new_function 新增函数支持在流数据中窗口迭代计算 high
movingWindowData / tmovingWindowData new_function 新增函数用于获取流计算中历史滑动窗口的数据 high
SQL 兼容性 improvement 加强对标准 SQL 语法的兼容,并优化 group by 与 context by 在大量分组下的计算性能 high
SQL 新增语句 added drop(支持删库、删表)、create local temporary table(本地临时内存表)、alter(列名重命名、删除列)、case when、union/union all、join on、with as(支持 with 关键字使用参数对列重命名) high
SQL 新增谓词 added (not) between and、is null/is not null、(not) exists/not exist、any/all high
SQL 新增函数 added nullIf、coalesce high
SQL 新增关键字 added distinct、nulls first/nulls last(order by 关键字) high
共享表 append/insert into transaction_support 支持通过 transaction 语句实现事务 high
SQL where 条件 capability 支持使用 select 子句中的列别名或新创建的列作为 where 的过滤条件 high
SQL 时间类型与 interval 分组 capability where 条件里的时间类型可以自动转换为 interval 分组的时间类型 high
SQL in 元组查询条件 limitation_removed 放开了元组内元素个数限制 high
lsj performance_optimization 优化在大数据量下的性能 medium
percentile / median performance_optimization V2.00.9 优化在分布式查询下的性能 high
分区表 ej performance_optimization V2.00.9 优化性能 high
高阶函数与向量化计算 improvement 系统性优化高阶函数,支持高阶函数迭用,增强向量化计算;新增 byColumn 使 accumulate 等支持列内竖向计算,并支持在流计算中使用 accumulate high
dict / syncDict new_parameter 新增参数 ordered,用于创建有序字典;支持两个字典的二元操作,以及字典与 scalar、vector 的二元操作 high
interval 函数 new_parameters 新增参数 closed、label、origin high
enlist 函数 new_function 用于将标量或向量转化为由其作为元素值的向量或元组 high
linearTimeTrend 函数 capability 支持对矩阵和表的计算 high
rowAt 函数 capability 支持以数组向量为索引 high
slice 操作 capability 数组、矩阵等可以通过标量、数组配对范围;越界则填充空值 high
DolphinDB 高可用方案 coverage 提供数据、元数据、客户端以及流数据的高可用方案,以保证数据安全并满足 7*24 小时稳定运行需求 medium
集群间数据异步复制 architecture 采取主从架构,支持将主集群数据复制到从集群,并保证主从集群数据一致,实现集群异地容灾 high
异步复制扩展能力 capability 主集群增减数据节点无需重启;主从集群间无需做节点映射 high
异步复制容错能力 claim 大部分情况下,集群中某些节点出现问题时,不会导致数据丢失或不一致 medium
异步复制运维监控 added_functions 新增特定函数用于监控两个集群间异步复制状态和进度,便于人工介入修复、提升运维效率 medium
setDatabaseForClusterReplication function_purpose 启动针对某个数据库的异步复制 high
getDatabaseClusterReplicationStatus() function_purpose 查看所有数据库是否开启异步复制功能 high
getRecentSlaveReplicationInfo() function_purpose 在主集群上执行,一键获取所有从集群的回放进度 high
权限管理的重要性 claim 权限管理对保障数据安全非常重要,也是 IT 团队的一大运维管理成本之一 low
库级别权限 new_capability 读写权限可配置到数据库级别,对新增的数据表同样适用 high
getTables 函数赋权方式(此前) limitation 此前可通过 getTables 对数据库下数据表赋权;当数据库动态新增表时需不断重新赋权 high
DB_MANAGE permission_scope 支持数据库级别的权限设置,可赋予或取消用户对某几个单独数据库的管理权限 high
setMemLimitOfQueryResult new_field 新增 QUERY_RESULT_MEM_LIMIT 字段,可为某个单独用户设置查询时的内存限制 high
表写入权限 granularity_change 新增 TABLE_INSERT、TABLE_UPDATE、TABLE_DELETE 来控制插入/更新/删除权限;此前仅用 TABLE_WRITE high
TABLE_WRITE 权限风险 claim 仅用 TABLE_WRITE 赋权插入/更新/删除会带来数据安全隐患 medium
数据库级别写入权限设置 improvement 数据库级别的写入权限设置也做了精细化处理 medium
全年交易日数量(一般情况) approx_value 除去国庆、元旦、春节等节假期后,全年交易日约有 250 天左右 medium
交易日历在金融交易与量化策略研究中的作用 purpose 用于判断某天是否交易日、标识下一个/最后一个交易日、获取交易区间等 high
交易日历功能 capability 提供国内外各大交易所交易日历及用户自定义交易日历,并支持在 temporalAdd、resample、asfreq、transFreq 中进行计算 high
getMarketCalendar function_purpose 用于获取期望日期内的所有交易日历 high
高频行情数据下量价因子计算 challenge 每只股票每条新数据注入会更新该股票所有因子值;因子有状态,关联当前多个指标及其历史状态 high
DolphinDB 响应式状态引擎 capability 可用于解决上述有状态因子更新计算难题 medium
流数据状态函数插件化 purpose 将流数据的状态函数插件化,支持用户灵活定制状态函数 high
listStateFunction function_purpose 获取所有通过插件导入的状态函数及其用法列表 high
PluginReactiveState plugin_name 用于加载自定义状态函数插件的示例插件名为 PluginReactiveState(通过 loadPlugin 加载) medium
movingWindowData、genericStateIterate 等函数 development_status 已利用该插件成功开发,支持在流计算中访问历史数据或任何中间状态,并用于计算与结果传递到下一步处理 medium
即时编译(JIT) added_supported_functions 新增支持 sum、avg、count、size、min、max、iif 等常用函数 high
JIT 对流数据引擎中函数性能的影响 claim 可提升流数据引擎中特定函数以及自定义函数的性能;以 moving 为例显著提升计算速度 medium
知乎案例文章(ETF 期权) claim 与 C++ 原生代码相比,耗时仅多出 0.5 倍,接近并突破该计算场景性能瓶颈 low
流数据订阅客户端 new_capability V2.00.9 允许订阅客户端变成接受数据的一方,并在流订阅反转基础上支持 WebSocket 连接 high
group by / context by performance_improvement 针对上千万行表且分组数量庞大的情况优化性能,提升十倍以上 medium
context by input_support 新增支持 matrix 和 table 的输入形式 high
Pivot by definition DolphinDB 独有功能,拓展标准 SQL,将表中一列或多列内容按两个维度重新排列,实现窄表转宽表 high
Pivot by performance_improvement 新版本改为用多线程加速计算;资源充足情况下性能提升几十倍,并优化 pivot by 最后一列为分区列时的性能 medium
下个版本规划 planned_features 分布式多线程多表连接;OLTP 内存存储引擎与嵌入式版本(更低时延场景);提升 TSDB 高并发性能;通过 JIT 与脚本语言优化提升流计算与脚本性能;提供数据库安全/健康/稳定性巡检工具提升运维效率;提升数据库系统与流数据引擎稳定性 medium