天天看点

ETL(九):同构关联(源限定符转换组件的使用)

一、解法一

1、同构关联和异构关联的区别

ETL(九):同构关联(源限定符转换组件的使用)

注:同构关联的表出自同一个地方,比如说两张表都来自Oracle数据库;异构关联的表出自不同地方,比如说一张表来自Oracle数据库,一张表来自于MySQL数据库。

2、需求

ETL(九):同构关联(源限定符转换组件的使用)

3、ETL开发流程

1)定义源表

① 将scott用户中的emp表和dept表都导入到info中;

ETL(九):同构关联(源限定符转换组件的使用)
2)定义目标表

① 由于源表有两个,我们随便拖拉一张表到右侧灰色区域,进行目标表的设置;

ETL(九):同构关联(源限定符转换组件的使用)

② 双击该表,进行目标表表名的设置;

ETL(九):同构关联(源限定符转换组件的使用)

③ 在原来字段的基础上,新增几个字段,得到最终目标表的字段;

ETL(九):同构关联(源限定符转换组件的使用)

④ 生成并执行sql,在目标数据库中生成该目标表;

ETL(九):同构关联(源限定符转换组件的使用)

⑤ 取edw用户下,查看该目标表ora_edw_same_join;

ETL(九):同构关联(源限定符转换组件的使用)
3)定义映射

① 创建一个映射;

ETL(九):同构关联(源限定符转换组件的使用)

② 将源表和目标表都拖拉到右侧的灰色区域;

ETL(九):同构关联(源限定符转换组件的使用)

③ 删除emp表和dept表各自的SQ表,效果如下;

ETL(九):同构关联(源限定符转换组件的使用)

④ 新建一个“源限定符转换SQ”组件,将上述两张表进行关联;

ETL(九):同构关联(源限定符转换组件的使用)

⑤ 完成上述操作后,就会产生如图所示的“源限定符转换SQ”组件;

ETL(九):同构关联(源限定符转换组件的使用)

⑥ 双击“源限定符转换SQ”组件,设置上面两张表的关联条件;

ETL(九):同构关联(源限定符转换组件的使用)

⑦ 将“源限定符转换SQ”组件中的字段,与目标表之间的字段进行连接;

ETL(九):同构关联(源限定符转换组件的使用)

⑧ 使用CTRL + S保存创建的映射;

ETL(九):同构关联(源限定符转换组件的使用)
4)定义任务

① 创建一个任务;

ETL(九):同构关联(源限定符转换组件的使用)

② 选择该任务要执行的映射;

ETL(九):同构关联(源限定符转换组件的使用)

③ 修改源表的连接对象;

ETL(九):同构关联(源限定符转换组件的使用)

④ 修改目标表的连接对象;

ETL(九):同构关联(源限定符转换组件的使用)

⑤ 使用CTRL + S保存一下该任务;

ETL(九):同构关联(源限定符转换组件的使用)
5)定义工作流

① 定义一个工作流;

ETL(九):同构关联(源限定符转换组件的使用)

② 建立工作流与任务之间的连接;

ETL(九):同构关联(源限定符转换组件的使用)

③ 使用CTRL + S,保存一下工作流;

ETL(九):同构关联(源限定符转换组件的使用)

④ 通过任务启动工作流;

ETL(九):同构关联(源限定符转换组件的使用)

⑤ 上述操作会自动打开M客户端,我们在M客户端查看一些日志信息。尤其是当我们出现错误的时候,日志信息可以帮助我们找到自己的错误究竟在哪里;

ETL(九):同构关联(源限定符转换组件的使用)

⑥ 最后可以去edw用户下,查看目标表中的数据,正是我们想要的效果;

ETL(九):同构关联(源限定符转换组件的使用)

二、解法二:直接在info中使用SQL

  在上述操作基础上,进行部分开发步骤的修改即可。为了和上面目标表的结果区分开,我们完成如下效果展示;

ETL(九):同构关联(源限定符转换组件的使用)

1、直接从原来创建好的映射那里,开始进行修改;

① 先来查看一下之前创建好的映射,是啥样;

ETL(九):同构关联(源限定符转换组件的使用)

② 删除原来的“源限定符转换SQ”组件;

ETL(九):同构关联(源限定符转换组件的使用)

③ 重新添加一个“源限定符转换SQ”组件;

ETL(九):同构关联(源限定符转换组件的使用)

完成上述操作后,就会出现如下界面;

ETL(九):同构关联(源限定符转换组件的使用)

④ 双击c,就会出现如下界面;

ETL(九):同构关联(源限定符转换组件的使用)

⑤ 在上述基础上,进行如下操作(这一步很关键);

ETL(九):同构关联(源限定符转换组件的使用)

注意!注意!注意!上述操作只是第一步,接着进行下面这一步;

ETL(九):同构关联(源限定符转换组件的使用)

⑥ 然后在将“源限定符转换SQ”组件中的字段,全部传递给目标表中的字段;

ETL(九):同构关联(源限定符转换组件的使用)

⑦ 使用CTRL + S保存修改好的映射;

ETL(九):同构关联(源限定符转换组件的使用)

⑧ 重新刷新一下映射;

ETL(九):同构关联(源限定符转换组件的使用)

⑨ 使用CTRL + S保存;

ETL(九):同构关联(源限定符转换组件的使用)

⑩ 重新启动任务;

ETL(九):同构关联(源限定符转换组件的使用)

注意:可以看到这里拒绝了一行,那是因为我们做右连接的时候,最后一条数据emptno为空,但是emptno在目标表中又是一个主键,因此不允许插入,因此目标表中仍然是14条记录。