【 使用环境 】测试环境
【 OB or 其他组件 】oms
【 使用版本 】版本号: 4.2.4_bp1
【问题描述】
oracle迁移至obmysql。
在oms迁移时,因目标端表比源端表数量少(备份表等因素),我们采用了导入csv文件导入来最终确定表的迁移范围。
因为历史原因最新版本的部分表结构中部分字段已经停止使用,所以通过程序建表后,目标端字段比源端字段少。数据迁移时因目标端缺少字段会报错。我们也不想再在目标端增加冗余字段。
请问在csv配置过程中应如何将源端的某个字段排除迁移范围呢。
csv配置文件中的列映射如何配置才能实现?
在使用 OMS 进行数据迁移时,如果目标端表结构与源端表结构不一致(例如目标端字段比源端字段少),可以通过配置 CSV 文件中的列映射来实现源端某些字段的排除。具体配置方法如下:
-
CSV 导出文件:确保导出的 CSV 文件中只包含目标端需要的字段。可以通过程序或脚本生成导出文件时,只导出目标端需要的字段。
-
CSV 导入配置:在导入 CSV 文件时,配置列映射关系。例如,假设源端表有字段
col1
,col2
,col3
,而目标端表只有col1
,col2
,可以在导入配置文件中指定列映射关系。[columns] col1=col1 col2=col2
这样,
col3
将不会被导入到目标端表中。 -
使用 obloader 工具:如果使用
obloader
工具进行 CSV 文件的导入,可以通过配置文件中的columns
选项来指定列映射关系。例如:[table] name=target_table_name columns=col1,col2
这样,
obloader
会忽略col3
,只导入col1
和col2
。 -
示例配置文件:
[job] job_name=my_job database=target_database table=target_table_name file=/path/to/csv/file.csv delimiter=, columns=col1,col2
通过以上配置,可以实现源端表中某些字段的排除,从而避免因目标端表结构不一致导致的导入错误。
检索到的文档如下:
- 使用 OceanBase 导数工具从 OceanBase 集群 Oracle 租户迁移数据到 MySQL 租户
- 表与表之间的数据迁移
- obloader控制文件与数据文件不一致导入问题
OMS做不到排除某个表的某个字段
可以使用OMS导入时候,排除备份表。或者参考小助手的使用obloader导入时候配置过滤参数
社区版不支持oracle到obmysql,如果使用社区版oms可以在全量或者增量组件配置sink.ignoreRedunantColumnsReplicate=true来忽略目的端不存在的字段。
[columns]
col1=col1
col2=col2
这个配置并不是在讲 OMS 迁移任务中的这个模板吧
嗯 客户部署的OMS工具,我们和客户建议一下不知道是否能实施。
确实不行,OMS做不到列过滤
我也想知道
实现做评估了吗
在oms的api里 databases数据结构有filterColumns参数,可以试试看
听说下一个版本的OMS可以满足你这个需求
学习学习
列不一致还能搞?看来我的oms版本太低了