Skip to content

Latest commit

 

History

History
183 lines (142 loc) · 8.16 KB

File metadata and controls

183 lines (142 loc) · 8.16 KB

English | 中文

简介

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

主要特性

  • 支持多种数据库间的同构、异构数据迁移和同步。
  • 支持全量、增量任务的断点续传。
  • 支持数据校验、订正。
  • 支持库、表、列级别的过滤和路由。
  • 针对不同源、目标、任务类型,实现不同的并发算法,提高性能。
  • 可加载用户 lua 脚本,编辑正在迁移/同步的数据。

支持任务类型

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

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

高级选项

Crate features

dt-main crate 提供了几个可选组件,可以通过 Cargo [features] 启用:

  • metrics: 启用 Prometheus 格式的任务指标 HTTP 服务接口。 启用此功能后,您可以通过以下配置自定义指标服务:

    [metrics]
    # http服务host
    http_host=127.0.0.1
    # http服务port
    http_port=9090
    # http服务工作节点数量
    workers=2
    # prometheus指标静态标签
    labels=your_label1:your_value1,your_label2:your_value2
    
  • TBD

快速上手

教程

测试用例

更多文档

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.14 debezium/connect:2.7
86.4 MB 1.38 GB

开发

架构

架构

模块

  • dt-main:程序启动入口
  • dt-precheck: 前置检查,尽量减少后续数据操作发现问题中断,提前快速失败
  • dt-connector:各种数据库的 extractor + sinker
  • dt-pipeline:串联 extractor 和 sinker 的模块
  • dt-parallelizer:各种并发算法
  • dt-task:根据配置创建 extractor,sinker,pipeline,parallelizer 以组装任务
  • dt-common:通用基础模块,基础数据结构,元数据管理
  • dt-tests:集成测试
  • 关联子模块:mysql binlog connector

编译

  • Minimum supported Rust version (MSRV) 当前支持的最低 Rust 版本 (MSRV) 是 1.85.0。
  • cargo build
  • 生成镜像

检查列表

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

社区

如有任何问题,欢迎通过以下方式联系我们:

  • ApeDTS GitHub 讨论区

  • ApeDTS 微信公众号,添加时请备注 ape-dts

    wechat