surreal-sync

🔄 异构数据一键迁移至 SurrealDB

SurrealDB官方数据迁移工具,支持7种数据源全量/增量同步,具备CDC、断点续传和自动建表能力,适用于异构数据库迁移场景。

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

使用说明

Surreal-Sync 综合评估

核心用法

Surreal-Sync 是 SurrealDB 官方生态中的 CLI 数据迁移工具,采用 Rust 编写,专注于将异构数据源迁移至 SurrealDB。核心工作模式为 surreal-sync from <SOURCE> <COMMAND>,支持 PostgreSQL(触发器/wal2json 双模式)、MySQL、MongoDB、Neo4j、JSONL 文件及 Apache Kafka 共 7 种源。提供全量同步(full sync)与增量 CDC(Change Data Capture)两种机制,其中 PostgreSQL 和 MySQL 采用触发器+序列检查点实现 CDC,MongoDB 依赖 Change Streams,Kafka 则支持消费订阅与去重。

显著优点

1. 原生生态整合:作为 surreal-skills 集合组件,与 SurrealDB 的命名空间、数据库、图边模型深度适配,自动生成表结构并映射主键为 Record ID。
2. 双模式 CDC 支持:PostgreSQL 同时支持触发器逻辑(通用兼容)和 wal2json 逻辑复制(高性能),满足不同运维约束。

3. 生产级可靠性:内置断点续传(checkpoint tracking)、可配置批大小与并行度、Kafka 消费去重,适合大规模数据迁移。

4. 图数据感知:具备关系抽取与图边自动创建能力,便于从关系型/文档型数据库向图模型迁移。

潜在缺点与局限性

  • 目标库单一:仅支持 SurrealDB 作为目标端,无法反向同步或用于其他数据库间的互迁。
  • CDC 方案异构:各源 CDC 实现原理差异大(触发器、Change Streams、wal2json、时间戳追踪),运维监控需针对不同源定制。
  • JSONL 无增量:文件源仅支持全量导入,大数据量场景需外部调度配合。
  • 社区规模有限:上游仓库 stars 和贡献者数量尚处成长期,长期维护深度待观察。

适合人群

  • 正在或计划将 MongoDB/PostgreSQL/MySQL/Neo4j 迁移至 SurrealDB 的架构师与 DBA
  • 需要构建实时数据管道(Kafka → SurrealDB)的流式计算工程师
  • 希望利用 SurrealDB 多模型能力(文档+图)进行数据融合的技术团队

常规风险

  • CDC 延迟风险:触发器方案在高并发写入场景下可能产生延迟堆积,需监控检查点滞后。
  • Schema 漂移:自动推断 schema 后若源端结构变更,可能导致同步异常,建议配合版本锁定或显式映射。
  • 认证信息暴露:CLI 需明文传递数据库密码,生产环境应使用环境变量或密钥管理服务注入,避免 shell 历史泄漏。
  • wal2json 插件依赖:PostgreSQL CDC 高性能模式需预装 wal2json 并调整 wal_level=logical,对云托管数据库(如 AWS RDS 部分配置)存在兼容限制。

surreal-sync 内容

手动下载zip · 1.6 kB
SKILL.mdtext/markdown
请选择文件