Skip to content

Latest commit

 

History

History
145 lines (119 loc) · 6.26 KB

README_ZH.md

File metadata and controls

145 lines (119 loc) · 6.26 KB

English | 中文

简介

  • ape-dts 是一款旨在实现 any-to-any 的数据迁移工具,并具有数据订阅和数据加工能力。
  • 简单、轻量、高效,不依赖第三方组件和额外存储。
  • 使用 Rust。

主要特性

  • 支持多种数据库间的同构、异构数据迁移和同步。
  • 支持全量、增量任务的断点续传。
  • 支持数据校验、订正。
  • 支持库、表、列级别的过滤和路由。
  • 针对不同源、目标、任务类型,实现不同的并发算法,提高性能。
  • 可加载用户 lua 脚本,编辑正在迁移/同步的数据。
  • 支持以 HTTP Server 的方式启动 ape-dts 并拉取源端数据,用户可使用任何语言的 HTTP Client 获取数据并自主消费。

支持任务类型

目前支持的成熟任务类型:


mysql -> mysql pg -> pg mongo -> mongo redis -> redis mysql -> kafka pg -> kafka mysql -> starrocks mysql -> clickhouse mysql -> tidb pg -> starrocks
全量迁移
增量同步
数据校验/订正/复查
库表结构迁移

快速上手

教程

测试用例

更多文档

Benchmark

  • MySQL -> MySQL,全量
同步方式 节点规格 rps(rows per second) 源 MySQL 负荷(cpu/内存) 目标 MySQL 负荷(cpu/内存)
ape_dts 1c2g 71428 8.2% / 5.2% 211% / 5.1%
ape_dts 2c4g 99403 14.0% / 5.2% 359% / 5.1%
ape_dts 4c8g 126582 13.8% / 5.2% 552% / 5.1%
debezium 4c8g 4051 21.5% / 5.2% 51.2% / 5.1%
  • MySQL -> MySQL, 增量
同步方式 节点规格 rps(rows per second) 源 MySQL 负荷(cpu/内存) 目标 MySQL 负荷(cpu/内存)
ape_dts 1c2g 15002 18.8% / 5.2% 467% / 6.5%
ape_dts 2c4g 24692 18.1% / 5.2% 687% / 6.5%
ape_dts 4c8g 26287 18.2% / 5.2% 685% / 6.5%
debezium 4c8g 2951 20.4% / 5.2% 98% / 6.5%
  • 镜像对比
ape_dts:2.0.3 debezium/connect:2.7
86.4 MB 1.38 GB

开发

架构

架构

模块

  • dt-main:程序启动入口
  • dt-connector:各种数据库的 extractor + sinker
  • dt-pipeline:串联 extractor 和 sinker 的模块
  • dt-parallelizer:各种并发算法
  • dt-task:根据配置创建 extractor,sinker,pipeline,parallelizer 以组装任务
  • dt-common:通用基础模块,基础数据结构,元数据管理
  • dt-tests:集成测试
  • 关联子模块:mysql binlog connector

编译

检查列表

  • 执行 cargo clippy --all-targets --all-features --workspace 并修复所有警告

技术交流

Slack社区

微信交流群