从 Kdb+ 到 DolphinDB,一文帮你成为数据迁移小能手

本教程面向 Kdb+ 使用者,提供迁移到 DolphinDB 的对比参考、数据迁移方法与编程语法映射总结。

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

What this page covers

技能认证特训营第二期限时报名入口

页面顶部提供活动提示,并给出限时报名链接入口。

新闻与文章标题/发布日期

页面展示新闻频道标识,并给出文章标题与发布日期信息。

教程目的与内容范围

教程面向 Kdb+ 使用者,覆盖相同点与区别对比、数据迁移方法,以及编程语法映射总结。

Kdb+ 与 DolphinDB 的相同点

从数据库类型、编程语言与金融支持等方面,描述 Kdb+ 与 DolphinDB 的共同点。

Kdb+ 与 DolphinDB 的不同点

从系统架构、多用户接入、数据库特性、编程友好与中文支持等方面,对比两者差异。

从 Kdb+ 导入数据到 DolphinDB

介绍 DolphinDB 的 Kdb+ 插件,并说明两种导入方式与相关函数调用要点。

Kdb+ 使用者的 DolphinDB 语法映射参考(字典结构)

语法映射字典说明其编写依据与覆盖范围,并按类别列出条目结构。

Facts index

Entity Attribute Value Confidence
从 Kdb+ 到 DolphinDB,一文帮你成为数据迁移小能手发布日期2022.11.08high
本教程目标受众Kdb+ 使用者(迁移到 DolphinDB)high
本教程内容覆盖考察 Kdb+ 与 DolphinDB 的相同点和区别,介绍如何将 Kdb+ 数据迁移到 DolphinDB,并总结编程语法映射high
Kdb+诞生时间上世纪90年代末medium
Kdb+主要使用场景金融场景的数据处理high
DolphinDB首次发布年份2018high
DolphinDB 与 Kdb+数据库类型(共同点)都是列存储的时间序列数据库,包含磁盘数据库和内存数据库,支持并鼓励对表进行分区;数据库系统都包括编程语言,适合库内开发重度数据应用high
DolphinDB编程语言特性(共同点对照)支持元编程、向量处理和函数式编程;部分 SQL 语句可在 DolphinDB 脚本中直接使用high
Kdb+ 脚本与 DolphinDB 脚本可迁移性/映射Kdb+ 的数据类型、函数和关键字大多能在 DolphinDB 中找到对应;大部分 Kdb+ 脚本可一对一翻译为 DolphinDB 脚本medium
DolphinDB 与 Kdb+金融领域支持(共同点)两者对金融领域有非常好的支持,适合追求高性能和高灵活性的金融应用领域low
DolphinDB 与 Kdb+实时分析能力(共同点)具备对海量流数据进行实时分析的能力;是流数据库、内存数据库和历史数据三合一的全栈数据平台low
DolphinDB系统架构差异构架引入分布式文件系统,具备数据高可用、系统高容错、集群易扩展等分布式系统优势medium
Kdb+多服务器集群运行方式局限可通过脚本修改路由网关方式运行在多服务器集群上,但方式具有很大局限性;部署难度与扩展性受限,难以自动平衡节点负载或在节点故障时保证高可用medium
DolphinDB多用户接入支持支持多用户同时接入系统进行作业;可使用 Web 端管理页面、VS code 插件或桌面端 DolphinDB GUI 连接服务器运行脚本high
DolphinDB会话隔离与共享机制为每个接入用户创建自己的 session(相互不可见);变量/函数共享可通过 share 关键字以及创建 module 或 function view 实现high
Kdb+并发/多用户限制同一时间内,一个数据库实例只允许一个用户跑一个任务;耗时任务可能导致整个数据库系统阻塞high
Kdb+共享实例建议设计上不鼓励多用户共享一个可写实例,多数情况下鼓励用户启动自己的实例完成工作medium
Kdb+共享 session 与隔离方式多个用户共享一个实例时让所有用户共享一个 session;用 namespace 区分不同用户创建的变量/自定义函数,但不强制创建自己的 namespacehigh
Kdb+磁盘存储模式离线存储模式;数据持久化需要频繁读写磁盘,部分场景可能因 IO 限制效率较低medium
DolphinDB磁盘存储模式在线存储;可保持数据随时可用的状态medium
DolphinDB内置引擎内置 OLAP 和 TSDB 双引擎high
DolphinDB事务支持对事务的 ACID 有严格的支持medium
DolphinDB内置函数数量1000多个内置函数(包括 TA-lib、MyTT 指标库、WorldQuant 101 Alpha 因子指标库等)medium
DolphinDB流计算引擎能力内置多种流计算引擎,支持增量计算和并发计算;窗口函数性能不受限于窗口长度medium
DolphinDB适用场景(高频实时分析)能很好满足物联网和金融领域的应用需求(针对高频数据的实时分析处理)low
Kdb+编程语言设计理念要求代码尽可能简短以减小 footprint 换取更少访存时间;运算符无优先级;表达式从左到右解析;错误信息非常简单;同一操作符多种重载medium
DolphinDB编程语言设计特点注重可读性,语法更接近 Python;表达式习惯与大部分编程语言相同,从右到左解析并尊重运算符优先级;上手难度低、代码更易维护与团队协作low
DolphinDB研发主体由浙江智臾科技有限公司自主研发high
DolphinDB中文支持有丰富的中文教程和交流氛围良好的技术交流社区;团队不断更新和维护产品low
DolphinDBKdb+ 数据导入支持方式提供用于导入 Kdb+ 数据的插件支持;插件代码开源在 github/gitee 平台,并提供教程参考high
DolphinDB Kdb+ 插件数据导入方式两种方式:(1)连接正在运行的 Kdb+ 数据库作为中间管道导入;(2)直接读取磁盘上的 Kdb+ 数据文件导入;两种方式都会将数据加载为 DolphinDB 的内存表high
DolphinDB Kdb+ 插件加载方式(示例路径)在脚本中使用 loadPlugin("/path/to/plugin/PluginKDB.txt") 加载插件high
方式(1)连接运行中的 Kdb+ 数据库导入连接与断开连接函数使用 connect 建立连接获取连接句柄;使用 close 断开连接high
方式(1)通过 Kdb+ 数据库读取数据loadTable 参数要求需要提供表文件路径和 sym 文件路径;sym 文件路径可为空high
方式(2)直接读取磁盘上的 Kdb+ 文件导入loadFile 参数要求需要提供表文件路径和可选的 sym 文件路径;sym 文件路径可为空high
语法映射字典编写依据基于 Kdb+ 和 q 官方参考文档与 DolphinDB 2.0 用户手册编写high
语法映射字典覆盖范围包含从数据类型、关键字、运算符、副词到执行控制等方面的语法对应high
Kdb+ 函数或关键字在 DolphinDB 中的对应差异与可替代性说明使用方法可能与原函数略有差异,但可保证功能上的可替代性medium
技能认证特训营第二期报名链接https://www.qingsuyun.com/h5/e/217471/5/high