Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Docs 菜单
Docs 主页
/ /

迁移基准

本页介绍Relational Migrator数据迁移基准测试结果,并根据这些结果提供建议。您可以使用这些结果和建议来估计迁移时间表,选择适当的基础架构配置,并为您的关系型数据库到MongoDB 的迁移规划资源需求。

Relational Migrator基准测试根据以下因素测量迁移性能:

  • 模式映射复杂性

  • 关系数据库大小

  • 关系数据库存储类型

  • Relational Migrator实例配置

  • MongoDB Atlas配置

基准测试使用了MongoDB Atlas和 AWS 基础设施。但是,性能模式和建议广泛应用于其他云提供商和本地部署部署。要详细学习;了解基准中使用的基础架构,请参阅 基准配置。

Relational Migrator允许您将关系模式转换为文档模型。以下术语描述了基准测试使用的不同MongoDB模式映射复杂性:

复杂程度
说明

一对一

与您的关系模式相匹配的MongoDB模式:每个表都映射到一个MongoDB集合,每一行都映射到一个文档。最少使用高级功能。

嵌入式映射

包含一些嵌入式数组或嵌入式文档的MongoDB模式。最多两层嵌套文档。

高级

使用许多高级功能的MongoDB模式可能会增加迁移时间。以下是一些高级功能的示例:

  • 映射过滤器

  • 表筛选器

  • 原始数组

  • 数组条件

高级模式最多包含三层嵌套文档。

要学习;了解有关将关系数据映射到MongoDB模式的更多信息,请参阅 数据建模。

下表描述了基准测试中使用的每个组件的配置:

组件
配置

源数据库 (Oracle)

  • 平台:AWS RDS

  • vCPUs: 2

  • RAM:8 GB

  • 区域:AWS ap-southeast-2

  • 存储:AWS RDS存储类型因数据库大小和映射复杂性而异。要学习;了解有关 AWS RDS存储类型的更多信息,请参阅 AWS RDS 存储类型文档。

Oracle实例被隔离,仅接收来自Relational Migrator实例的流量。

Relational Migrator

  • 平台:AWS ECS

  • vCPUs: 32

  • RAM:64 GB

  • 区域:AWS ap-southeast-2

  • 版本: Relational Migrator v1.15

  • 模式:默认(启用多线程的嵌入式模式)

目标数据库 (MongoDB Atlas)

  • 平台: MongoDB Atlas

  • 区域:AWS ap-southeast-2

  • 配置: MongoDB Atlas 集群配置因数据库大小和映射复杂性而异。要了解有关修改MongoDB Atlas 集群的更多信息,请参阅修改集群。

下表显示了基准测试的结果。基准测试使用Atlas用户界面或 mongostat 来监控文档指标。Average Throughput (MB/s) 列四舍五入到小数点后两位。Cluster Documents/s 列四舍五入到最接近的每秒一万个文档。对于长时间运行的 One-to-one 迁移,Cluster Documents/s 列提供了由于基准测试期间的速度变化而观察到的下限和上限。

注意

在基准测试期间, Oracle数据库未显示明显的 CPU 或RAM使用量。

数据库大小
映射复杂性
Oracle RDS 存储类型
Atlas集群层
迁移持续时间
平均吞吐量(MB/秒)
集群文档数

10 GB

一对一

gp2

M60

15 分钟

11.11

80,000 (insert)

10 GB

嵌入式映射

gp2

M60

37 分钟

4.50

80,000 (insert), 40,000 (update)

10 GB

高级

gp2

M60

47 分钟

3.55

90,000 (insert), 40,000 (update)

100 GB

一对一

gp3

M60

2 小时 31 分钟

11.04

80,000 至 100,000(插入)

100 GB

嵌入式映射

gp3

M80

16 小时 25 分钟

1.69

90,000 (insert), 40,000 (update)

100 GB

高级

gp3

M140

15 小时 47 分钟

1.76

90,000 (insert), 40,000 (update)

1 TB

一对一

IOPS固态硬盘

M60

30 小时 50 分钟

9.01

85,000 至 100,000(插入)

Relational Migrator始终以一系列insert操作开始,以写入根文档。然后,它使用 update 操作插入嵌入式文档或嵌入式数组。因此,One-to-one 基准测试结果仅包含插入操作,而 Embedded MappingsAdvanced 结果同时包含插入和更新操作。

根据基准测试结果, Relational Migrator大约可以迁移:

  • 一对一模式为 21 GB/小时

  • 7 GB/小时,适用于具有最多两级嵌入式映射的模式。

一对一模式的数据库迁移速度近似为线性。示例,一对一 100 GB迁移所需时间大约是一对一 10 GB迁移的10 倍。

更复杂模式的迁移速度不会与数据库大小呈线性扩展。模式中的嵌入式文档、嵌入式数组和其他功能越多,迁移速度就越慢。

下表提供了根据源数据库大小和映射复杂性推荐的Atlas 集群层和 AWS RDS存储类型。

源数据集大小
映射复杂性
推荐的Atlas集群层
推荐的 AWS RDS 存储类型

0-50 GB

一对一

M60

gp2

0-50 GB

嵌入式映射

M60

gp2

0-50 GB

高级

M60

gp2

50 GB-300 GB

一对一

M60

gp3

50 GB-300 GB

嵌入式映射

M80

gp3

50 GB-300 GB

高级

M80

gp3

300 GB-1 TB

一对一

M60

gp3

300 GB-1 TB

嵌入式映射

M140

IOPS固态硬盘

300 GB-1 TB

高级

M140

IOPS固态硬盘

1 TB+

一对一

M60

IOPS固态硬盘

1 TB+

嵌入式映射

M200

IOPS固态硬盘

1 TB+

高级

M200

IOPS固态硬盘

尽管该表指定了MongoDB Atlas和 AWS RDS 配置,但您可以应用这些建议应用于其他云提供商和自管理部署。要学习与给定MongoDB Atlas 集群层相关的基础架构配置的更多信息,请参阅云提供商。要学习;了解有关 AWS RDS存储类型的更多信息,请参阅 AWS RDS 存储类型文档。

为了最大限度地减少网络延迟,请确保源数据库、 Relational Migrator和目标集群在同一数据中心运行。

要优化迁移性能,监控指标以识别性能瓶颈。最佳实践是在识别性能瓶颈时遵循数据流向:首先监控源数据库,然后转向Relational Migrator,最后监控目标集群。

如果您发现读取 IOPS 较低 (< 50),则源数据库可能是瓶颈。请考虑采取以下操作来提高源数据库性能:

  • AWS RDS:使用 Provisioned IOPS 或升级存储类型。

  • 本地部署:为提高性能,您可能需要升级物理存储,或迁移到性能更高的存储解决方案。

如果您发现Relational Migrator实例上的 CPU 和RAM已充分利用,则Relational Migrator是瓶颈。请考虑增加实例大小以提高迁移性能。

以下测试结果显示了增加Relational Migrator实例vCPU 数量和RAM对迁移性能的影响:

源数据库大小
映射复杂性
16 vCPU、32 GB RAM持续时间
32 vCPU、64 GB RAM持续时间
改进

10 GB

一对一

15 分钟

15 分钟

0%

10 GB

嵌入式映射

50 分钟

37 分钟

26%

10 GB

高级

63 分钟

47 分钟

25.40%

100 GB

一对一

3 小时 34 分钟

2 小时 31 分钟

29.44%

100 GB

嵌入式映射

18 小时 24 分钟

16 小时 25 分钟

10.78%

100 GB

高级

16 小时 35 分钟

15 小时 47 分钟

4.82%

1 TB

一对一

45 小时 20 分钟

30 小时 50 分钟

31.99%

当Relational Migrator实例成为瓶颈时,增加 vCPU 数量和RAM可使性能提高 25-30%。

如果您发现与基准结果表相比,文档插入或更新率较低,则MongoDB 集群可能是瓶颈。请考虑采取以下操作来提高迁移性能:

  • 增加预配 IOPS

  • 增加 vCPU 或RAM

  • 增加集群层

如果您发现更新由于复制延迟而受到限制,则增加预配 IOPS 对迁移性能的影响最大。

后退

风险参考

在此页面上