OMS迁移设置列映射

【 使用环境 】测试环境
【 OB or 其他组件 】oms
【 使用版本 】版本号: 4.2.4_bp1
【问题描述】
oracle迁移至obmysql。
在oms迁移时,因目标端表比源端表数量少(备份表等因素),我们采用了导入csv文件导入来最终确定表的迁移范围。
因为历史原因最新版本的部分表结构中部分字段已经停止使用,所以通过程序建表后,目标端字段比源端字段少。数据迁移时因目标端缺少字段会报错。我们也不想再在目标端增加冗余字段。
请问在csv配置过程中应如何将源端的某个字段排除迁移范围呢。
csv配置文件中的列映射如何配置才能实现?

3 个赞

@论坛小助手

1 个赞

在使用 OMS 进行数据迁移时,如果目标端表结构与源端表结构不一致(例如目标端字段比源端字段少),可以通过配置 CSV 文件中的列映射来实现源端某些字段的排除。具体配置方法如下:

  1. CSV 导出文件:确保导出的 CSV 文件中只包含目标端需要的字段。可以通过程序或脚本生成导出文件时,只导出目标端需要的字段。

  2. CSV 导入配置:在导入 CSV 文件时,配置列映射关系。例如,假设源端表有字段 col1, col2, col3,而目标端表只有 col1, col2,可以在导入配置文件中指定列映射关系。

    [columns]
    col1=col1
    col2=col2
    

    这样,col3 将不会被导入到目标端表中。

  3. 使用 obloader 工具:如果使用 obloader 工具进行 CSV 文件的导入,可以通过配置文件中的 columns 选项来指定列映射关系。例如:

    [table]
    name=target_table_name
    columns=col1,col2
    

    这样,obloader 会忽略 col3,只导入 col1col2

  4. 示例配置文件

    [job]
    job_name=my_job
    database=target_database
    table=target_table_name
    file=/path/to/csv/file.csv
    delimiter=,
    columns=col1,col2
    

    通过以上配置,可以实现源端表中某些字段的排除,从而避免因目标端表结构不一致导致的导入错误。

检索到的文档如下:

  1. 使用 OceanBase 导数工具从 OceanBase 集群 Oracle 租户迁移数据到 MySQL 租户
  2. 表与表之间的数据迁移
  3. obloader控制文件与数据文件不一致导入问题
3 个赞

OMS做不到排除某个表的某个字段

4 个赞

可以使用OMS导入时候,排除备份表。或者参考小助手的使用obloader导入时候配置过滤参数

2 个赞

社区版不支持oracle到obmysql,如果使用社区版oms可以在全量或者增量组件配置sink.ignoreRedunantColumnsReplicate=true来忽略目的端不存在的字段。

3 个赞

[columns]
col1=col1
col2=col2
这个配置并不是在讲 OMS 迁移任务中的这个模板吧
image

1 个赞

嗯 客户部署的OMS工具,我们和客户建议一下不知道是否能实施。

1 个赞

确实不行,OMS做不到列过滤

1 个赞

:+1: :+1: :smile:

1 个赞

我也想知道

1 个赞

实现做评估了吗

在oms的api里 databases数据结构有filterColumns参数,可以试试看

听说下一个版本的OMS可以满足你这个需求

学习学习

列不一致还能搞?看来我的oms版本太低了