注:同构关联的表出自同一个地方,比如说两张表都来自Oracle数据库;异构关联的表出自不同地方,比如说一张表来自Oracle数据库,一张表来自于MySQL数据库。
① 将scott用户中的emp表和dept表都导入到info中;
① 由于源表有两个,我们随便拖拉一张表到右侧灰色区域,进行目标表的设置;
② 双击该表,进行目标表表名的设置;
③ 在原来字段的基础上,新增几个字段,得到最终目标表的字段;
④ 生成并执行sql,在目标数据库中生成该目标表;
⑤ 取edw用户下,查看该目标表ora_edw_same_join;
① 创建一个映射;
② 将源表和目标表都拖拉到右侧的灰色区域;
③ 删除emp表和dept表各自的SQ表,效果如下;
④ 新建一个“源限定符转换SQ”组件,将上述两张表进行关联;
⑤ 完成上述操作后,就会产生如图所示的“源限定符转换SQ”组件;
⑥ 双击“源限定符转换SQ”组件,设置上面两张表的关联条件;
⑦ 将“源限定符转换SQ”组件中的字段,与目标表之间的字段进行连接;
⑧ 使用CTRL + S保存创建的映射;
① 创建一个任务;
② 选择该任务要执行的映射;
③ 修改源表的连接对象;
④ 修改目标表的连接对象;
⑤ 使用CTRL + S保存一下该任务;
① 定义一个工作流;
② 建立工作流与任务之间的连接;
③ 使用CTRL + S,保存一下工作流;
④ 通过任务启动工作流;
⑤ 上述操作会自动打开M客户端,我们在M客户端查看一些日志信息。尤其是当我们出现错误的时候,日志信息可以帮助我们找到自己的错误究竟在哪里;
⑥ 最后可以去edw用户下,查看目标表中的数据,正是我们想要的效果;
在上述操作基础上,进行部分开发步骤的修改即可。为了和上面目标表的结果区分开,我们完成如下效果展示;
① 先来查看一下之前创建好的映射,是啥样;
② 删除原来的“源限定符转换SQ”组件;
③ 重新添加一个“源限定符转换SQ”组件;
完成上述操作后,就会出现如下界面;
④ 双击c,就会出现如下界面;
⑤ 在上述基础上,进行如下操作(这一步很关键);
注意!注意!注意!上述操作只是第一步,接着进行下面这一步;
⑥ 然后在将“源限定符转换SQ”组件中的字段,全部传递给目标表中的字段;
⑦ 使用CTRL + S保存修改好的映射;
⑧ 重新刷新一下映射;
⑨ 使用CTRL + S保存;
⑩ 重新启动任务;
注意:可以看到这里拒绝了一行,那是因为我们做右连接的时候,最后一条数据emptno为空,但是emptno在目标表中又是一个主键,因此不允许插入,因此目标表中仍然是14条记录。 ⑪ 可以去edw用户下,检验一下目标表中的数据;