Docs 菜单

迁移风险参考

迁移前分析会生成一份报告,列出源数据库中的迁移风险。此参考页列出了Relational Migrator可能在支持的数据库上检测到的所有迁移风险。

迁移风险分为以下几类:

  • 数据类型:迁移到MongoDB时可能导致精度损失或数据丢失的数据类型。

  • 模式:在将源数据库模式映射到MongoDB时造成困难的数据库或表配置。

  • 不支持的功能: MongoDB不支持的其他数据库功能。

  • 性能:将数据迁移到MongoDB时可能导致性能问题的数据库或表配置。

名称
类型
category
难度
报告消息
缓解措施

地理空间数据

表格

数据类型:MYSQL_GEOMETRYMYSQL_POINTMYSQL_LINESTRINGMYSQL_POLYGONMYSQL_MULTIPOINTMYSQL_MULTILINESTRINGMYSQL_MULTIPOLYGONMYSQL_GEOMETRYCOLLECTION

该表包含需要特殊处理的列:<columns>。

您正在数据库中存储地理空间数据。这些将转换为具有 WKB(良好二进制)格式的 srid (int) 坐标引用和 wkb (binary) 内容的对象

Blob 类型

表格

数据类型:MYSQL_MEDIUMBLOBMYSQL_LONGBLOBMYSQL_MEDIUMTEXTMYSQL_LONGTEXT

中型

该表包含可能超过 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
难度
报告消息
缓解措施

地理空间数据

表格

数据类型:ORACLE_SDO_GEOMETRYORACLE_SDO_GTYPEORACLE_SDO_SRIDORACLE_SDO_POINTORACLE_SDO_ELEM_INFOORACLE_SDO_ORDINATES

该表包含需要特殊处理的列:<columns>。

您正在数据库中存储地理空间数据。这些将转换为具有 WKB(良好二进制)格式的 srid (int) 坐标引用和 wkb (binary) 内容的对象

Blob 类型

表格

数据类型:ORACLE_BLOBORACLE_CLOBORACLE_NCLOB

中型

该表包含可能超过 16MB 限制的列。

如果您在记录中存储的存储容量 > 16 MB,则迁移将失败,因为MongoDB文档不能超过 16 MB。我们强烈建议不要在MongoDB中存储大型 blob,但如果不需要多文档事务,可以使用GridFS。

数值精度(指定)

表格

数据类型

中型

由于小数精度问题,以下列存在数据丢失的风险:<columns>。

指定列已配置为支持的十进制精度高于 Decimal128字段支持的精度。在迁移过程中,这些值将四舍五入为 34 位有效数字。

数值精度(未指定)

表格

数据类型

中型

由于小数精度,以下列可能存在数据丢失的风险:<columns>。

指定列使用可变小数精度,并且所包含的值的小数精度可能超过 Decimal128字段支持的值。在迁移过程中,这些值将四舍五入为 34 位有效数字。

日期的时区

表格

数据类型:ORACLE_TIMESTAMP_WITH_TIME_ZONEORACLE_TIMESTAMP_WITH_LOCAL_TIME_ZONE

中型

检测到类型为 <type> 的列。 MongoDB默认以 UTC 格式存储时间, Relational Migrator可以将任何本地时间表示形式转换为这种形式或直接字符串。受影响的列:<columns>。

MongoDB不支持将时区与时间数据一起存储。请考虑在应用程序中转换为所需的时区或将其存储为字符串。

磁盘上的文件

表格

数据类型: ORACLE_BFILE

中型

检测到类型为 <type> 的列。此类型目前不支持迁移到MongoDB 。受影响的列:<columns>。

ORACLE_BFILE MongoDB不支持。如果文件必须存储在数据库中并且不需要多文档事务,则可以使用GridFS。否则,我们建议将文件存储在云存储上并改为记录 URI。

不支持的Oracle类型

表格

数据类型:ORACLE_LONGORACLE_LONG_RAWORACLE_UROWID

中型

检测到类型为 <type> 的列。此类型目前不支持迁移到MongoDB 。受影响的列:<columns>。

该报告将给定的不支持类型的所有列分组为单个项目。

  • ORACLE_LONG 数据类型已被Oracle弃用, MongoDB不支持等效的 LOB 数据类型。如果文件必须存储在数据库中并且不需要多文档事务,则可以使用GridFS。否则,我们建议将文件存储在云存储上并改为记录 URI。

  • ORACLE_UROWID 数据类型本质上是另一行的 FK,以二进制形式存储。我们鼓励尽可能使用显式 ID 进行迁移,并强制执行 FK,以协助数据迁移。

自动递增列

表格

架构

表<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
难度
报告消息
缓解措施

地理空间数据

表格

数据类型:POSTGRES_POINTPOSTGRES_LINEPOSTGRES_LSEGPOSTGRES_BOXPOSTGRES_PATHPOSTGRES_POLYGONPOSTGRES_CIRCLE

该表包含需要特殊处理的列:<columns>。

您正在数据库中存储地理空间数据。这些将转换为具有 WKB(良好二进制)格式的 srid (int) 坐标引用和 wkb (binary) 内容的对象

Blob 类型

表格

数据类型:POSTGRES_BYTEAPOSTGRES_TEXTPOSTGRES_BPCHAR

中型

该表包含可能超过 16MB 限制的列。

如果您在记录中存储的存储容量 > 16 MB,则迁移将失败,因为MongoDB文档不能超过 16 MB。我们强烈建议不要在MongoDB中存储大型 blob,但如果不需要多文档事务,可以使用GridFS。

数值精度(指定)

表格

数据类型

中型

由于小数精度问题,以下列存在数据丢失的风险:<columns>。

指定列已配置为支持的十进制精度高于 Decimal128字段支持的精度。在迁移过程中,这些值将四舍五入为 34 位有效数字。

数值精度(未指定)

表格

数据类型

中型

由于小数精度,以下列可能存在数据丢失的风险:<columns>。

指定列使用可变小数精度,并且所包含的值的小数精度可能超过 Decimal128字段支持的值。在迁移过程中,这些值将四舍五入为 34 位有效数字。

日期的时区

表格

数据类型: POSTGRES_TIMESTAMPTZ

中型

检测到类型为 <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
难度
报告消息
缓解措施

地理空间数据

表格

数据类型:SQL_SERVER_GEOGRAPHYSQL_SERVER_GEOMETRY

该表包含需要特殊处理的列:<columns>。

您正在数据库中存储地理空间数据。这些将转换为具有 WKB(良好二进制)格式的 srid (int) 坐标引用和 wkb (binary) 内容的对象

Blob 类型

表格

数据类型:SQLSERVER_TEXTSQLSERVER_NTEXTSQLSERVER_IMAGESQLSERVER_VARCHARSQLSERVER_NVARCHARSQLSERVER_VARBINARY

中型

该表包含可能超过 16MB 限制的列。

如果您在记录中存储的存储容量 > 16 MB,则迁移将失败,因为MongoDB文档不能超过 16 MB。我们强烈建议不要在MongoDB中存储大型 blob,但如果不需要多文档事务,可以使用GridFS。

数值精度(指定)

表格

数据类型

中型

由于小数精度问题,以下列存在数据丢失的风险:<columns>。

指定列已配置为支持的十进制精度高于 Decimal128字段支持的精度。在迁移过程中,这些值将四舍五入为 34 位有效数字。

数值精度(未指定)

表格

数据类型

中型

由于小数精度,以下列可能存在数据丢失的风险:<columns>。

指定列使用可变小数精度,并且所包含的值的小数精度可能超过 Decimal128字段支持的值。在迁移过程中,这些值将四舍五入为 34 位有效数字。

日期的时区

表格

数据类型: SQL_SERVER_DATETIMEOFFSET

中型

检测到类型为 <type> 的列。 MongoDB默认以 UTC 格式存储时间, Relational Migrator可以将任何本地时间表示形式转换为这种形式或直接字符串。受影响的列:<columns>。

MongoDB不支持将时区与时间数据一起存储。请考虑在应用程序中转换为所需的时区或将其存储为字符串。

磁盘上的文件

表格

数据类型: FILESTREAM

中型

检测到类型为 <type> 的列。此类型目前不支持迁移到MongoDB 。受影响的列:<columns>。

FILESTREAM MongoDB不支持。 MongoDB不支持 FILESTREAM数据类型。如果文件必须存储在数据库中并且不需要多文档事务,则可以使用GridFS。

不支持的SQL Server 类型

表格

数据类型:SQLSERVER_HIERARCHYIDSQLSERVER_ROWVERSIONSQLSERVER_SQL_VARIANTSQLSERVER_UNIQUEIDENTIFIER

中型

检测到类型为 <type> 的列。此类型目前不支持迁移到MongoDB 。受影响的列:<columns>。

该报告将给定的不支持类型的所有列分组为单个项目。

  • MongoDB中没有与 SQLSERVER_HIERARCHYID 直接等效的项。相反,应使用嵌入式文档对分层数据进行建模。

  • SQLSERVER_ROWVERSION (ROWVERSION) 数据类型用于版本标记表行, MongoDB中没有直接等效的类型。您可以使用整数或字符串字段来模拟这一过程,以手动存储和递增版本信息。或者,变更流也可用于版本跟踪。

  • SQLSERVER_SQL_VARIANT 数据类型是存储SQL Server 支持的各种数据类型的数据的灵活方式。 MongoDB没有完全相同的工具,但灵活的模式模型允许通过动态键入字段来实现类似的存储。

  • MongoDB没有原生GUID数据类型。 SQLSERVER_UNIQUEIDENTIFIER 类型将迁移到字符串。您可以使用 ObjectID,或在应用程序代码中生成这些 UUID。

自动递增列

表格

架构

表<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部署模型。