从 Kdb+ 到 DolphinDB,一文帮你成为数据迁移小能手
本教程面向 Kdb+ 使用者,提供迁移到 DolphinDB 的对比参考、数据迁移方法与编程语法映射总结。
What this page covers
- 文章的新闻频道信息、标题与发布日期。
- 面向 Kdb+ 使用者的教程目标与内容范围。
- Kdb+ 与 DolphinDB 的共同点对比维度。
- Kdb+ 与 DolphinDB 的差异对比维度。
- 通过 DolphinDB 的 Kdb+ 插件导入数据的方法与流程要点。
- Kdb+ 到 DolphinDB 的语法映射参考(字典结构与覆盖范围)。
- 页面顶部活动提示与报名入口链接。
技能认证特训营第二期限时报名入口
页面顶部提供活动提示,并给出限时报名链接入口。
- 页面包含“技能认证特训营第二期”的报名入口信息。
- 报名链接指向 qingsuyun.com 的活动页面。
新闻与文章标题/发布日期
页面展示新闻频道标识,并给出文章标题与发布日期信息。
- 文章标题为“从 Kdb+ 到 DolphinDB,一文帮你成为数据迁移小能手”。
- 文章发布日期为 2022.11.08。
教程目的与内容范围
教程面向 Kdb+ 使用者,覆盖相同点与区别对比、数据迁移方法,以及编程语法映射总结。
- 目标受众是 Kdb+ 使用者(迁移到 DolphinDB)。
- 内容包含 Kdb+ 与 DolphinDB 的相同点与区别考察。
- 内容介绍将 Kdb+ 数据迁移到 DolphinDB 的方法。
- 内容总结编程语法映射。
Kdb+ 与 DolphinDB 的相同点
从数据库类型、编程语言与金融支持等方面,描述 Kdb+ 与 DolphinDB 的共同点。
- 两者都是列存储的时间序列数据库。
- 两者都包含磁盘数据库与内存数据库。
- 两者都支持并鼓励对表进行分区。
- 两者的数据库系统都包括编程语言,适合库内开发重度数据应用。
- DolphinDB 支持元编程、向量处理与函数式编程。
Kdb+ 与 DolphinDB 的不同点
从系统架构、多用户接入、数据库特性、编程友好与中文支持等方面,对比两者差异。
- DolphinDB 架构引入分布式文件系统。
- Kdb+ 可通过脚本修改路由网关方式运行在多服务器集群上,但存在局限性。
- DolphinDB 支持多用户同时接入系统进行作业。
- Kdb+ 同一时间内,一个实例只允许一个用户跑一个任务。
- Kdb+ 描述为离线存储模式;DolphinDB 描述为在线存储。
从 Kdb+ 导入数据到 DolphinDB
介绍 DolphinDB 的 Kdb+ 插件,并说明两种导入方式与相关函数调用要点。
- DolphinDB 提供用于导入 Kdb+ 数据的插件支持。
- 导入方式(1):连接正在运行的 Kdb+ 数据库作为中间管道导入。
- 导入方式(2):直接读取磁盘上的 Kdb+ 数据文件导入。
- 两种方式都会将数据加载为 DolphinDB 的内存表。
- 插件可通过 loadPlugin("/path/to/plugin/PluginKDB.txt") 加载。
- 方式(1)可使用 connect 建立连接并获取连接句柄。
- 方式(1)可使用 close 断开连接。
- sym 文件路径在参数中可为空(方式(1)与方式(2)均提及)。
Kdb+ 使用者的 DolphinDB 语法映射参考(字典结构)
语法映射字典说明其编写依据与覆盖范围,并按类别列出条目结构。
- 语法映射字典基于 Kdb+ 与 q 官方参考文档编写。
- 语法映射字典参考 DolphinDB 2.0 用户手册编写。
- 覆盖范围包含数据类型、关键字、运算符、副词与执行控制等。
- 对应的使用方法可能略有差异,但目标是功能可替代。
Facts index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 从 Kdb+ 到 DolphinDB,一文帮你成为数据迁移小能手 | 发布日期 | 2022.11.08 | high |
| 本教程 | 目标受众 | Kdb+ 使用者(迁移到 DolphinDB) | high |
| 本教程 | 内容覆盖 | 考察 Kdb+ 与 DolphinDB 的相同点和区别,介绍如何将 Kdb+ 数据迁移到 DolphinDB,并总结编程语法映射 | high |
| Kdb+ | 诞生时间 | 上世纪90年代末 | medium |
| Kdb+ | 主要使用场景 | 金融场景的数据处理 | high |
| DolphinDB | 首次发布年份 | 2018 | high |
| 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 区分不同用户创建的变量/自定义函数,但不强制创建自己的 namespace | high |
| 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 |
| DolphinDB | Kdb+ 数据导入支持方式 | 提供用于导入 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 |