surreal-sync

🔄 SurrealDB官方多源数据迁移CDC工具

SurrealDB官方数据迁移工具,支持7种数据源的全量同步与CDC增量同步,Rust高性能实现。

收藏
4.9k
安装
1.1k
版本
1.2.1
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Surreal-Sync 是 SurrealDB 官方生态的数据迁移 CLI 工具,基于 Rust 实现,专用于将 MongoDB、PostgreSQL、MySQL、Neo4j、Kafka 及 JSONL 文件的数据迁移至 SurrealDB。支持两种同步模式:全量同步(Full Sync) 一次性导入历史数据;增量 CDC 同步 实时捕获变更流,适用于生产环境不停机迁移。

命令结构遵循 surreal-sync from <SOURCE> <COMMAND> 模式,需配置源库连接串与目标 SurrealDB 端点。关键特性包括:自动 schema 推断与表创建、主键到 Record ID 的映射、关系自动提取为图边、可配置批处理与并行度、断点续传的 checkpoint 机制,以及 Kafka 消费者的去重处理。

显著优点

  • 多源覆盖广:单一工具覆盖文档型、关系型、图数据库及流处理系统
  • CDC 机制成熟:PostgreSQL 支持 wal2json 逻辑复制与触发器双方案,MySQL 采用序列检查点,MongoDB 基于 Change Streams
  • 生态原生:SurrealDB 官方维护(surreal-skills 集合),API 设计与目标数据库深度契合
  • 性能优异:Rust 实现,支持并发批处理,适合大规模数据迁移
  • 运维友好:断点续传、自动去重、灵活的关系抽取配置

潜在缺点与局限性

  • 版本锁定:上游版本 v0.3.4,功能迭代受限于官方发布节奏
  • CDC 方案异构:不同源库 CDC 实现机制差异大(wal2json/触发器/Timestamp),运维认知成本较高
  • 无可视化界面:纯 CLI 工具,复杂迁移场景需配合脚本编排
  • 冲突策略有限:文档提及冲突解决但未详述自动化策略,复杂业务场景需人工干预

适合人群

  • 计划从 MongoDB/PostgreSQL/MySQL/Neo4j 迁移至 SurrealDB 的架构师与 DBA
  • 需要构建实时数仓或统一图数据库平台的工程团队
  • 熟悉 Rust 生态、能接受 CLI 工作流的后端开发者

常规风险

  • 数据一致性风险:CDC 延迟或异常中断可能导致目标端数据滞后,需配合 checkpoint 监控
  • schema 漂移:自动推断 schema 可能与业务预期不符,建议迁移前验证映射规则
  • 权限配置复杂:wal2json 需 PostgreSQL 超级权限,生产环境需最小化权限审计
  • Kafka 消费组管理:去重机制依赖消费位点,分区重分配时可能引发短暂重复写入

surreal-sync 内容

手动下载zip · 2.9 kB
skill-card.mdtext/markdown
请选择文件