迁移风险参考
迁移前分析会生成一份报告,列出源数据库中的迁移风险。此参考页列出了Relational Migrator可能在支持的数据库上检测到的所有迁移风险。
风险类别
迁移风险分为以下几类:
数据类型:迁移到MongoDB时可能导致精度损失或数据丢失的数据类型。
模式:在将源数据库模式映射到MongoDB时造成困难的数据库或表配置。
不支持的功能: MongoDB不支持的其他数据库功能。
性能:将数据迁移到MongoDB时可能导致性能问题的数据库或表配置。
风险参考
名称 | 类型 | category | 难度 | 报告消息 | 缓解措施 |
---|---|---|---|---|---|
地理空间数据 | 表格 | 数据类型: | 高 | 该表包含需要特殊处理的列:<columns>。 | 您正在数据库中存储地理空间数据。这些将转换为具有 WKB(良好二进制)格式的 |
Blob 类型 | 表格 | 数据类型: | 中型 | 该表包含可能超过 16MB 限制的列。 | 如果您在记录中存储的存储容量 > 16 MB,则迁移将失败,因为 MongoDB文档不能超过 16 MB。我们强烈建议不要在MongoDB中存储大型 blob,但如果不需要多文档事务,可以使用GridFS。 |
数值精度(指定) | 表格 | 数据类型 | 中型 | 由于小数精度问题,以下列存在数据丢失的风险:<columns>。 | 指定列已配置为支持的十进制精度高于 Decimal128字段支持的精度。在迁移过程中,这些值将四舍五入为 34 位有效数字。 |
数值精度(未指定) | 表格 | 数据类型 | 中型 | 由于小数精度,以下列可能存在数据丢失的风险:<columns>。 | 指定列使用可变小数精度,并且所包含的值的小数精度可能超过 Decimal128字段支持的值。在迁移过程中,这些值将四舍五入为 34 位有效数字。 |
自动递增列 | 表格 | 架构 | 高 | 表<name> 有一个自动递增列。 | MongoDB鼓励对ID字段使用 ObjectID,因为递增的 ID 难以分片。 MongoDB Relational Migrator可以按原样迁移密钥,但您需要写入代码来维护此行为。如果您使用的是MongoDB Atlas,则可以使用Atlas Triggers自动递增您的 ID。 |
未找到外键 | Database | 架构 | 中型 | <name>数据库没有外键。 | 这将使模式映射变得更加复杂,因为没有它们,我们无法推断表之间的关系。您可以使用 Migrator 的合成外键功能来定义表之间的逻辑关系。 |
视图 | Database | 架构 | 中型 | 在<database> 中检测到视图。 | MongoDB支持视图,但必须将其转换为MQL。请考虑使用 Query Converter迁移视图。 |
Triggers | Database | 不支持的功能 | 高 | <name>数据库有触发器。 | MongoDB没有原生方法来实现触发器。如果您使用的是Atlas,请考虑使用Query Converter将现有触发器转换为Atlas Triggers,以复制现有行为。 |
例程 | Database | 不支持的功能 | 中型 | 在<database> 中检测到例程。 | MongoDB没有原生的方式来表示例程。请考虑使用 Query Converter 将例程迁移为应用程序代码。 |
大型单表 | Database | 性能 | 中型 | 所选表的总数据大小大于 <limit> GB,为 100 GB。 | 较大的数据迁移作业可能需要仔细规划,以最大限度地提高性能和可靠性。文档中的部署注意主题提供了有用的建议。对于可能运行多天的作业,请考虑使用Kafka部署模型。 |
名称 | 类型 | category | 难度 | 报告消息 | 缓解措施 |
---|---|---|---|---|---|
地理空间数据 | 表格 | 数据类型: | 高 | 该表包含需要特殊处理的列:<columns>。 | 您正在数据库中存储地理空间数据。这些将转换为具有 WKB(良好二进制)格式的 |
Blob 类型 | 表格 | 数据类型: | 中型 | 该表包含可能超过 16MB 限制的列。 | 如果您在记录中存储的存储容量 > 16 MB,则迁移将失败,因为MongoDB文档不能超过 16 MB。我们强烈建议不要在MongoDB中存储大型 blob,但如果不需要多文档事务,可以使用GridFS。 |
数值精度(指定) | 表格 | 数据类型 | 中型 | 由于小数精度问题,以下列存在数据丢失的风险:<columns>。 | 指定列已配置为支持的十进制精度高于 Decimal128字段支持的精度。在迁移过程中,这些值将四舍五入为 34 位有效数字。 |
数值精度(未指定) | 表格 | 数据类型 | 中型 | 由于小数精度,以下列可能存在数据丢失的风险:<columns>。 | 指定列使用可变小数精度,并且所包含的值的小数精度可能超过 Decimal128字段支持的值。在迁移过程中,这些值将四舍五入为 34 位有效数字。 |
日期的时区 | 表格 | 数据类型: | 中型 | 检测到类型为 <type> 的列。 MongoDB默认以 UTC 格式存储时间, Relational Migrator可以将任何本地时间表示形式转换为这种形式或直接字符串。受影响的列:<columns>。 | MongoDB不支持将时区与时间数据一起存储。请考虑在应用程序中转换为所需的时区或将其存储为字符串。 |
磁盘上的文件 | 表格 | 数据类型:
| 中型 | 检测到类型为 <type> 的列。此类型目前不支持迁移到MongoDB 。受影响的列:<columns>。 |
|
不支持的Oracle类型 | 表格 | 数据类型: | 中型 | 检测到类型为 <type> 的列。此类型目前不支持迁移到MongoDB 。受影响的列:<columns>。 | 该报告将给定的不支持类型的所有列分组为单个项目。
|
自动递增列 | 表格 | 架构 | 高 | 表<name> 有一个自动递增列。 | MongoDB鼓励对ID字段使用 ObjectID,因为递增的 ID 难以分片。 MongoDB Relational Migrator可以按原样迁移密钥,但您需要写入代码来维护此行为。如果您使用的是MongoDB Atlas,则可以使用Atlas Triggers自动递增您的 ID。 |
未找到外键 | Database | 架构 | 中型 | <name>数据库没有外键。 | 这将使模式映射变得更加复杂,因为没有它们,我们无法推断表之间的关系。您可以使用 Migrator 的合成外键功能来定义表之间的逻辑关系。 |
视图 | Database | 架构 | 中型 | 在<database> 中检测到视图。 | MongoDB支持视图,但必须将其转换为MQL。请考虑使用 Query Converter迁移视图。 |
Triggers | Database | 不支持的功能 | 高 | <name>数据库有触发器。 | MongoDB没有原生方法来实现触发器。如果您使用的是Atlas,请考虑使用Query Converter将现有触发器转换为Atlas Triggers,以复制现有行为。 |
例程 | Database | 不支持的功能 | 中型 | 在<database> 中检测到例程。 | MongoDB没有原生的方式来表示例程。请考虑使用 Query Converter 将例程迁移为应用程序代码。 |
Oracle包 | Database | 不支持的功能 | 中型 | 包是一种模式对象,它将逻辑上相关的 PL/ SQL类型、变量、常量、子程序、游标和异常进行分组。编译包并将其存储在数据库中,许多应用程序可以股票其内容。 | MongoDB没有任何与Oracle Packages 等效的功能。您可以使用查询转换器定义表之间的逻辑关系。 |
大型单表 | Database | 性能 | 中型 | 所选表的总数据大小大于 <limit> GB,为 100 GB。 | 较大的数据迁移作业可能需要仔细规划,以最大限度地提高性能和可靠性。文档中的部署注意主题提供了有用的建议。对于可能运行多天的作业,请考虑使用Kafka部署模型。 |
名称 | 类型 | category | 难度 | 报告消息 | 缓解措施 |
---|---|---|---|---|---|
地理空间数据 | 表格 | 数据类型: | 高 | 该表包含需要特殊处理的列:<columns>。 | 您正在数据库中存储地理空间数据。这些将转换为具有 WKB(良好二进制)格式的 |
Blob 类型 | 表格 | 数据类型: | 中型 | 该表包含可能超过 16MB 限制的列。 | 如果您在记录中存储的存储容量 > 16 MB,则迁移将失败,因为MongoDB文档不能超过 16 MB。我们强烈建议不要在MongoDB中存储大型 blob,但如果不需要多文档事务,可以使用GridFS。 |
数值精度(指定) | 表格 | 数据类型 | 中型 | 由于小数精度问题,以下列存在数据丢失的风险:<columns>。 | 指定列已配置为支持的十进制精度高于 Decimal128字段支持的精度。在迁移过程中,这些值将四舍五入为 34 位有效数字。 |
数值精度(未指定) | 表格 | 数据类型 | 中型 | 由于小数精度,以下列可能存在数据丢失的风险:<columns>。 | 指定列使用可变小数精度,并且所包含的值的小数精度可能超过 Decimal128字段支持的值。在迁移过程中,这些值将四舍五入为 34 位有效数字。 |
日期的时区 | 表格 | 数据类型:
| 中型 | 检测到类型为 <type> 的列。 MongoDB默认以 UTC 格式存储时间, Relational Migrator可以将任何本地时间表示形式转换为这种形式或直接字符串。受影响的列:<columns>。 | MongoDB不支持将时区与时间数据一起存储。请考虑在应用程序中转换为所需的时区或将其存储为字符串。 |
自动递增列 | 表格 | 架构 | 高 | 表<name> 有一个自动递增列。 | MongoDB鼓励对ID字段使用 ObjectID,因为递增的 ID 难以分片。 MongoDB Relational Migrator可以按原样迁移密钥,但您需要写入代码来维护此行为。如果您使用的是MongoDB Atlas,则可以使用Atlas Triggers自动递增您的 ID。 |
未找到外键 | Database | 架构 | 中型 | <name>数据库没有外键。 | 这将使模式映射变得更加复杂,因为没有它们,我们无法推断表之间的关系。您可以使用 Migrator 的合成外键功能来定义表之间的逻辑关系。 |
视图 | Database | 架构 | 中型 | 在<database> 中检测到视图。 | MongoDB支持视图,但必须将其转换为MQL。请考虑使用 Query Converter迁移视图。 |
物化视图 | Database | 不支持的功能 | 中型 | 在 中检测到物化视图<database> | MongoDB支持 按需物化视图。您可以安排它们的生成,也可以使用Atlas Triggers和 $merge 来维护它们。 |
Triggers | Database | 不支持的功能 | 高 | <name>数据库有触发器。 | MongoDB没有原生方法来实现触发器。如果您使用的是Atlas,请考虑使用Query Converter将现有触发器转换为Atlas Triggers,以复制现有行为。 |
例程 | Database | 不支持的功能 | 中型 | 在<database> 中检测到例程。 | MongoDB没有原生的方式来表示例程。请考虑使用 Query Converter 将例程迁移为应用程序代码。 |
大型单表 | Database | 性能 | 中型 | 所选表的总数据大小大于 <limit> GB,为 100 GB。 | 较大的数据迁移作业可能需要仔细规划,以最大限度地提高性能和可靠性。文档中的部署注意主题提供了有用的建议。对于可能运行多天的作业,请考虑使用Kafka部署模型。 |
名称 | 类型 | category | 难度 | 报告消息 | 缓解措施 |
---|---|---|---|---|---|
地理空间数据 | 表格 | 数据类型: | 高 | 该表包含需要特殊处理的列:<columns>。 | 您正在数据库中存储地理空间数据。这些将转换为具有 WKB(良好二进制)格式的 |
Blob 类型 | 表格 | 数据类型: | 中型 | 该表包含可能超过 16MB 限制的列。 | 如果您在记录中存储的存储容量 > 16 MB,则迁移将失败,因为MongoDB文档不能超过 16 MB。我们强烈建议不要在MongoDB中存储大型 blob,但如果不需要多文档事务,可以使用GridFS。 |
数值精度(指定) | 表格 | 数据类型 | 中型 | 由于小数精度问题,以下列存在数据丢失的风险:<columns>。 | 指定列已配置为支持的十进制精度高于 Decimal128字段支持的精度。在迁移过程中,这些值将四舍五入为 34 位有效数字。 |
数值精度(未指定) | 表格 | 数据类型 | 中型 | 由于小数精度,以下列可能存在数据丢失的风险:<columns>。 | 指定列使用可变小数精度,并且所包含的值的小数精度可能超过 Decimal128字段支持的值。在迁移过程中,这些值将四舍五入为 34 位有效数字。 |
日期的时区 | 表格 | 数据类型:
| 中型 | 检测到类型为 <type> 的列。 MongoDB默认以 UTC 格式存储时间, Relational Migrator可以将任何本地时间表示形式转换为这种形式或直接字符串。受影响的列:<columns>。 | MongoDB不支持将时区与时间数据一起存储。请考虑在应用程序中转换为所需的时区或将其存储为字符串。 |
磁盘上的文件 | 表格 | 数据类型:
| 中型 | 检测到类型为 <type> 的列。此类型目前不支持迁移到MongoDB 。受影响的列:<columns>。 |
|
不支持的SQL Server 类型 | 表格 | 数据类型: | 中型 | 检测到类型为 <type> 的列。此类型目前不支持迁移到MongoDB 。受影响的列:<columns>。 | 该报告将给定的不支持类型的所有列分组为单个项目。
|
自动递增列 | 表格 | 架构 | 高 | 表<name> 有一个自动递增列。 | MongoDB鼓励对ID字段使用 ObjectID,因为递增的 ID 难以分片。 MongoDB Relational Migrator可以按原样迁移密钥,但您需要写入代码来维护此行为。如果您使用的是MongoDB Atlas,则可以使用Atlas Triggers自动递增您的 ID。 |
未找到外键 | Database | 架构 | 中型 | <name>数据库没有外键。 | 这将使模式映射变得更加复杂,因为没有它们,我们无法推断表之间的关系。您可以使用 Migrator 的合成外键功能来定义表之间的逻辑关系。 |
视图 | Database | 架构 | 中型 | 在<database> 中检测到视图。 | MongoDB支持视图,但必须将其转换为MQL。请考虑使用 Query Converter迁移视图。 |
Triggers | Database | 不支持的功能 | 高 | <name>数据库有触发器。 | MongoDB没有原生方法来实现触发器。如果您使用的是Atlas,请考虑使用Query Converter将现有触发器转换为Atlas Triggers,以复制现有行为。 |
例程 | Database | 不支持的功能 | 中型 | 在<database> 中检测到例程。 | MongoDB没有原生的方式来表示例程。请考虑使用 Query Converter 将例程迁移为应用程序代码。 |
大型单表 | Database | 性能 | 中型 | 所选表的总数据大小大于 <limit> GB,为 100 GB。 | 较大的数据迁移作业可能需要仔细规划,以最大限度地提高性能和可靠性。文档中的部署注意主题提供了有用的建议。对于可能运行多天的作业,请考虑使用Kafka部署模型。 |