Informatica如何不重新导入同步多映射目标表新增列
Informatica共享目标表新增列不同步的非重导入解决方法
操作全程不需要删除原有目标、也不需要重新从数据库导入表结构,直接修改仓库内的共享目标定义即可,所有关联映射同步后就能正常使用,具体步骤如下:
- 打开Informatica Designer客户端,切换到Target Designer(目标设计器)视图,在左侧导航树的目标列表里,找到那张被多个映射引用的共享目标表定义——注意必须选仓库里存储的原生目标对象,不要从单个映射里点开目标实例改,那种修改只对当前映射生效。
- 右键选中该目标定义,点击Edit(编辑)选项,在弹出的窗口切换到Columns(列)标签页。
- 对照数据库侧新增列的属性,手动在列列表里添加对应字段:字段名、数据类型、长度、精度、非空约束等属性必须和数据库端完全一致,比如数据库定义是
varchar(100)的字段不要错设为长度50,数值型字段的精度、小数位也要完全对齐,属性错了后续跑任务会报字段匹配错误、数据截断问题。 - 核对所有新增列属性无误后点击OK,保存对共享目标定义的修改,这一步改完,仓库里的目标本体就已经更新完成了。
- 逐个打开引用了这张目标表的映射,选中映射画布上的目标表实例,右键选择Synchronize(同步)选项,在弹出的同步配置窗口里,确认同步方向是「从仓库目标定义同步到映射实例」,核对同步字段列表包含你刚新增的列,确认后完成同步即可。
小提示:如果新增列在数据库侧设置了默认值、或者允许为空,同步完不需要在映射里给这个字段连上游数据流,会话运行时会自动写入数据库默认值或
NULL;如果需要给这个字段传业务值,再手动把上游对应的转换输出端口连到这个新增的目标端口就行。
避坑提醒
- 操作前先确认相关的目标定义、关联映射都没有被其他用户锁定,且你对对应文件夹有读写权限,不然修改后会保存失败。
- 绝对不要直接在单个映射的目标实例编辑页里加新列,这种修改只作用于当前映射的副本,其他引用同一张目标表的映射拿不到这个新字段,等于白改。
- 手动加字段的时候不要改原有字段的任何属性,不然同步的时候会把原有映射里的端口连接关系冲掉,增加额外的修复工作量。
内容的提问来源于stack exchange,提问作者Tan Duong
相关产品推荐
相关产品推荐

