...
序号 | 问题分类 | 兼容性问题说明 | 可能影响效果 | 迁移场景(源库——》目标库) | 建议解决方案 |
51 | 分区与分布机制 | 一些数据库支持分区表而目标数据库不支持 | 查询效率降低 | 源库有分区表设置——》目标库无分区表设置 | 无法兼容,之前设置的分区字段不生效 数据迁移后重新设计分区策略,或使用分布式中间件(如Doris、StarRocks等)适配分析场景。 |
62 | 编码/字符集问题 | 源数据库和目标数据库字符集不同,可能导致中文乱码 | 文本乱码,查询结果错误 | 源库—》目标库,编码/字符集不同 | 迁移前统一字符集编码(如UTF-8);采用ETL工具进行字符转换并校验。 |
73 | NULL处理差异 | 某些数据库不允许空字符串作为NULL,或者布尔字段处理不一致 | 逻辑判断出错 | 源库—》目标库,NULL处理差异 | |
ETL中明确NULL与空值的处理规则;统一布尔字段值的处理方式(如0/1或TRUE/FALSE)。 | |||||
84 | 数据精度问题 | 数值字段在不同数据库中精度定义不一致(如浮点型精度丢失) | 数据计算结果不准 | 源库—》目标库,数据精度不一致 | 明确字段精度范围,在迁移脚本中定义精度转换;关键字段建议使用字符串或DECIMAL类型保存。 |
95 | 事务隔离级别与锁机制差异 | 数据库事务隔离机制不同(如Snapshot、Serializable),锁粒度不一致 | 并发异常、数据脏读 | 源库—》目标库,数据库事务隔离机制不同 | 避免在BI中使用事务;使用ETL调度平台时明确隔离级别,尽量避免行级锁冲突。 |
106 | 执行计划优化器差异 | 不同数据库的执行计划优化器行为不同(如JOIN顺序、并行策略) | 查询变慢、索引失效 | 源库—》目标库的执行计划优化器行为不同 | 避免强依赖某一数据库的执行计划逻辑;关键SQL可手动优化,或写入提示(hint)适配。 |
117 | 跨库引用与远程表支持 | 部分数据库支持dblink/FDW远程表,部分不支持 | 查询失败 | 源库—》目标库, | 使用数据同步中间层;或将所有依赖表迁移至同一数据库。 |
128 | 数据库对象名长度限制 | 不同数据库对表名、字段名长度有限制(如 Oracle 30 字符) | 无法创建表,BI建模失败 | 源库—》目标库 表名、字段名长度有限制不一样 | 统一命名规范,限制对象名长度 ≤ 30;可使用简写或别名方式规避。 |
139 | 数据类型不兼容 | 同一数据在不同数据库中数据类型不同(如 TEXT vs CLOB,BOOLEAN vs CHAR(1)) | 导入/导出失败,BI报错 | 源库—》目标库 数据类型不同 | 在ETL/数据同步前统一数据类型映射规则,使用中间层或数据建模工具进行类型转换。 |
...