注:同构关联的表出自同一个地方,比如说两张表都来自Oracle数据库;异构关联的表出自不同地方,比如说一张表来自Oracle数据库,一张表来自于MySQL数据库。
① 将Oracle数据库中的emp表导入到info中;
② 首先查看一下dept表在MySQL的什么数据库下;
③ 将MySQL数据库中的dept表导入到info中,需要新建立一个连接MySQL的驱动;
④ 完成上述操作后,就会出现下表,继续完成如下操作;
⑤ 接着选择你要导入的表在什么数据库;
⑥ 接下来从mysql中的导入dept表到info中;
⑦ 上述操作完成后,接着完成下面的操作;
⑧ 两张表导入完成后的效果如下;
① 将emp表拖动到右侧的灰色区域;
② 双击该目标表,给目标表重命名;
③ 设置目标表的列字段:将dept中的字段加入到目标表的字段中去;
④ 生成并执行sql,才能在目标数据库中真正生成这张目标表;
⑤ 可以去目标数据库edw中查看生成的目标表;
① 定义一个映射;
② 将Oracle中的emp表和MySQL中的dept表,都拖拉到右侧灰色区域;
注意:从上图可以看出:deptno同样一个字段在Oracle中和MySQL中数据类型不一致,因此,我们需要将这个字段的数据类型设置为相同。 ③ 修改dept表中的deptno字段的数据类型:添加一个“f(x)表达式转换”组件,并将dept表中的所有字段,都传递给“f(x)表达式转换”组件;
④ 双击“f(x)表达式转换”组件,进行数据类型的转换;
⑤ 添加一个“联接器转换”组件,并将各自的字段都传递到“联接器转换”组件中;
⑥ 双击“联接器转换”组件:设置一个关联条件;
⑦ 将“联接器转换”组件中的字段都传递给目标表;
⑧ 使用CTRL + S保存一下创建的映射;
① 创建一个任务;
② 选择该任务执行的映射;
③ 创建数据库连接对象; Ⅰ 创建oracle中emp源表的数据库连接对象;
Ⅱ 创建mysql中dept源表的数据库连接对象;
Ⅲ 创建目标表的数据库连接对象,这个在oracle数据库中;
④ 修改源表的连接对象; Ⅰ 修改emp表的连接对象;
Ⅱ 修改dept表的连接对象;
⑤ 修改目标表的连接对象;
⑥ 使用CTRL + S保存该任务;
① 创建一个工作流;
② 建立工作流与任务之间的连接,同时保存创建的工作流;
③ 通过任务启动工作流;
④ 上述操作会自动打开M客户端;
⑤ 最后再去目标表中查看最终生成的数据,可以看到已经将mysql中的dept表和oracle中的emp表关联到一起了;