如何高效迁移 SQL Server 数据到 DolphinDB
本文说明 SQL Server 在高吞吐写入与海量分析/实时计算场景的不足,并提供从 SQL Server 迁移至 DolphinDB 的参考思路。
What this page covers
- 迁移背景与文章目的
- 迁移数据概述与案例设置
- 方法一:ODBC 插件迁移
- 方法二:DataX 驱动迁移
- ODBC 与 DataX 的对比与推荐
技能认证特训营第二期限时报名
页面顶部活动宣传与报名链接入口。
- 页面提供“技能认证特训营第二期”的报名入口链接。
新闻与文章标题
新闻栏目标识与文章标题展示。
- 页面包含新闻栏目位置与文章标题展示区域。
- 文章标题为“如何高效迁移 SQL Server 数据到 DolphinDB”。
发布时间
文章发布日期信息。
- 文章《如何高效迁移 SQL Server 数据到 DolphinDB》发布日期为 2022.12.06。
迁移背景与文章目的
说明 SQL Server 在高吞吐写入与海量分析/实时计算场景的不足,并阐明本文提供迁移参考的目的。
- SQL Server 在高吞吐量数据写入与海量数据分析场景下可能无法满足需求。
- 即使数据量较小,SQL Server 也可能难以同时响应实时计算请求。
- 本文面向有从 SQL Server 迁移至 DolphinDB 需求的用户。
- 本文目标是提供简洁明了的迁移参考。
迁移数据概述与案例设置
介绍 DolphinDB 的全量/增量同步能力、案例所用数据(深交所逐笔委托数据)以及迁移时对表结构调整的需求。
- DolphinDB 提供多种数据同步方法。
- DolphinDB 支持从多个数据源进行全量同步或增量同步。
- 案例基于深交所逐笔委托数据进行说明。
- 案例假设最近 10 年逐笔委托数据存储于 SQL Server。
- 迁移过程中需要对表结构进行部分调整以便与其他数据源整合。
方法一:ODBC 插件
介绍通过 DolphinDB 的 ODBC 插件访问 SQL Server 并写入 DolphinDB 的迁移方法与核心步骤(安装驱动、配置环境、建立连接、同步数据)。
- DolphinDB 的 ODBC 插件用于通过 ODBC 接口访问 SQL Server。
- 该 ODBC 插件为开源产品。
- 插件可配合 DolphinDB 脚本使用以完成数据写入。
- 插件与服务器在同一进程空间运行,用于提高写入效率的表述被提及。
- 在 Ubuntu 22.04 环境中,需要安装 freeTDS、unixODBC 与 SQL Server ODBC 驱动。
- 需要在 /etc/freetds/freetds.conf 与 /etc/odbcinst.ini 配置 IP、端口等。
- 加载 ODBC 插件后,可通过 connect 命令与 SQL Server 建立连接。
- 可通过运行脚本执行同步,示例中包含 transform 函数片段。
方法二:DataX 驱动
介绍基于 DataX 框架与 DolphinDBWriter 的同步方式、开发特性(Java SDK/高可用)及核心步骤(部署、配置、执行任务)。
- DataX 被描述为可扩展的数据同步框架。
- DataX 将同步抽象为 Reader(读源)与 Writer(写目标)插件。
- DataX 理论上可支持任意数据源类型的数据同步。
- DolphinDB 提供基于 DataXReader 与 DataXWriter 的开源驱动。
- DolphinDBWriter 插件用于向 DolphinDB 写入数据。
- 用户可在 Java 项目中包含驱动包以开发迁移软件。
- 该驱动开发基于 Java SDK。
- 该驱动被描述为支持高可用。
- 部署时需将 ./dist/dolphindbwriter 内容拷贝到 DataX/plugin/writer。
- 配置文件 synchronization.json 放置于 data/job 目录。
- 可在 Linux 终端执行 DataX 任务(示例提到进入 DataX/bin/)。
ODBC 与 DataX 对比与推荐
给出两种方案耗时对比与在数据量/表数量增大时的实现复杂度差异,并得出推荐 ODBC 插件的结论。
- 耗时对比中,ODBC 插件耗时为 122s。
- 耗时对比中,DataX 驱动耗时为 212s。
- 当数据量增大且表数量增多时,ODBC 插件速度优势被描述为更明显。
- DataX 被描述为需要为每个表配置一个 JSON。
- ODBC 插件被描述为只需更改表名即可,实施难度更低。
- 页面结论推荐使用 ODBC 插件进行数据迁移。
对比图说明(AI 说明)
对比图的文字说明,强调两种工具均支持全量/增量同步且 ODBC 端到端更简便。
- ODBC 插件与 DataX 均适用于全量同步。
- ODBC 插件与 DataX 均适用于增量同步。
- ODBC 插件被描述为可完全在 DolphinDB 端实现。
- DataX 被描述为需要额外部署并编写 JSON 配置文件。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 文章《如何高效迁移 SQL Server 数据到 DolphinDB》 | 发布日期 | 2022.12.06 | high |
| SQL Server | 能力限制(高吞吐写入与海量分析场景) | 面对高吞吐量数据写入以及海量数据分析等场景时无法满足需求 | medium |
| SQL Server | 能力限制(实时计算响应) | 即使数据量较小能满足写入要求,也难以同时响应实时计算请求 | medium |
| 本文 | 目标读者/目的 | 为有从 SQL Server 迁移至 DolphinDB 需求的用户提供简洁明了的参考 | high |
| DolphinDB | 数据同步方式 | 提供多种灵活的数据同步方法,支持从多个数据源进行全量同步或增量同步 | medium |
| 本文案例 | 数据基础 | 基于深交所逐笔委托数据,介绍从 SQL Server 迁移至 DolphinDB | high |
| 本文案例 | 数据范围假设 | 假设现有最近 10 年的逐笔委托数据存储于 SQL Server | high |
| 数据迁移过程 | 表结构调整需求 | 为方便与其他数据源逐笔委托数据整合,迁移过程中要对表结构进行部分调整,并给出字段对应关系表 | high |
| DolphinDB | 软件版本 | DolphinDB_Linux64_V2.00.8.6 | high |
| Microsoft SQL Server | 软件版本 | Microsoft SQL Server 2017 (RTM-CU31) (KB5016884) - 14.0.3456.2 (X64) | high |
| ODBC 插件(DolphinDB) | 产品性质 | 通过 ODBC 接口访问 SQL Server 的开源产品 | high |
| ODBC 插件(DolphinDB) | 运行方式与效率原因 | 插件配合 DolphinDB 脚本使用,与服务器在同一个进程空间内运行,能高效完成 SQL Server 数据到 DolphinDB 的数据写入 | medium |
| ODBC 迁移步骤(Ubuntu 22.04) | 驱动/依赖安装 | 终端安装 freeTDS 程序库、unixODBC 库和 SQL Server ODBC 驱动 | high |
| ODBC 迁移步骤 | 配置文件位置 | 在 / etc/freetds/freetds.conf 和 / etc/odbcinst.ini 中配置 IP 地址、端口等设置 | high |
| ODBC 迁移步骤 | 建立连接方式 | 加载 ODBC 插件后运行 connect 命令建立与 SQL Server 的连接(示例连接串包含 Driver={SQLServer}; Servername=sqlserver; Uid=sa; Pwd=...) | medium |
| ODBC 迁移步骤 | 同步方式 | 运行脚本执行同步(示例包含 transform 函数片段) | low |
| DataX | 定义 | 可扩展的数据同步框架,将同步抽象为 Reader 插件(读源)与 Writer 插件(写目标) | high |
| DataX | 理论能力 | 理论上可支持任意数据源类型的数据同步工作 | medium |
| DolphinDB(DataX 驱动) | 提供的开源驱动 | 提供基于 DataXReader 和 DataXWriter 的开源驱动 | high |
| DolphinDBWriter 插件 | 功能 | 实现向 DolphinDB 写入数据;结合 DataX 现有 reader 插件可从不同数据源向 DolphinDB 同步数据 | high |
| DataX 驱动使用方式 | 开发集成方式 | 用户可在 Java 项目中包含 DataX 的驱动包,开发从 SQL Server 到 DolphinDB 的数据迁移软件 | high |
| DataX 驱动 | 开发基础与特性 | 开发基于 Java SDK,支持高可用 | medium |
| DataX 迁移步骤 | 插件部署位置 | 将 Github 源码的 ./dist/dolphindbwriter 目录内容拷贝到 DataX/plugin/writer 目录下 | high |
| DataX 迁移步骤 | 配置文件位置 | 配置文件 synchronization.json 置于 data/job 目录下 | high |
| DataX 迁移步骤 | 执行方式 | 在 Linux 终端执行 DataX 任务(示例:cd ./DataX/bin/) | medium |
| 数据迁移耗时对比 | ODBC 插件耗时 | 122s | high |
| 数据迁移耗时对比 | DataX 驱动耗时 | 212s | high |
| ODBC 插件 vs DataX 驱动 | 性能随规模变化的结论 | 当数据量增大、尤其表数量增多时,ODBC 插件速度优势更明显 | medium |
| DataX | 配置复杂度 | 即使不需要处理同步数据,也需要为每一个表配置一个 json | high |
| ODBC 插件 | 配置复杂度优势 | 只需要更改表名即可,实现难度明显低于 DataX | medium |
| ODBC 插件 vs DataX 驱动 | 推荐结论 | ODBC 插件性能优于 DataX,更推荐使用 ODBC 插件进行数据迁移 | high |
| ODBC 插件与 DataX | 同步类型支持(对比图说明) | 两者均适用于全量及增量同步 | medium |
| ODBC 插件 | 实现方式(对比图说明) | 可完全在 DolphinDB 端实现,操作相对简便 | low |
| DataX | 额外部署与配置(对比图说明) | 需要额外部署并编写 JSON 配置文件 | medium |
| 技能认证特训营第二期 | 报名链接 | https://www.qingsuyun.com/h5/e/217471/5/ | high |