ETL(三):汇总转换器组件(聚合)和表达式组件的合用
1、需求如下
2、在进行ETL开发之前,先创建一个edw用户。
3、创建一个test_aggregation文件夹,用于完成本次项目
- 注意:每个作业相当于是一个工程project,创建文件夹方便我们管理项目,同时ETL开发流程步骤太多,放在同一个文件夹下显得更为合适了。
4、ETL开发流程如下
- 整个ETL开发流程的详细步骤,可以参考我的另外一篇文章:https://blog.****.net/weixin_41261833/article/details/103625414
1)定义源表
2)定义目标表
① 利用源表生成目标表;
② 双击该表,给目标表重新命名;
③ 对源表中的列进行筛选,保留或者自定义我们想要的列;
④ 生成并执行sql后,目标表中才会生成这个表的表结构(这一步很关键!!!);
⑤ 针对上述“生成数据库对象”表,做如下操作;
⑥ 执行完成以后,可以去edw用表下面查看已经生成了edw_ITEMS表;
3)创建映射
① 创建映射;
② 将源表和目标表都拖拉到右侧的灰色区域;
③ 在源表和目标表中间加一个“汇总转换器”组件;
④ 双击“汇总转换器”组件,点击“端口”,出现如下原始界面;
⑤ 按照客户id分组,求price最大值,其他操作同理;
- 注:关于上图中1处的I和O的说明,可以参考我的另外一篇文章:https://blog.****.net/weixin_41261833/article/details/103636659
⑥ 上述所有操作完成后,就会出现如下结果;
⑦ 通过上图可以发现avg(price)的2倍这个字段还没有创建出来,使用;
⑧ 进行映射关联,关联图如下;
⑨ 点击CTRL+S,保存一下,界面左下角出现如下界面,表示创建的映射没有问题;
4)创建任务
① 创建一个任务;
② 当出现如下界面后,完成以下操作;
③ 修改源表的连接对象;
④ 修改目标表的连接对象;
⑤ 用CTRL+S保存一下,当出现如下界面,证明任务创建成功;
5)创建一个工作流
① 创建一个工作流;
② 将会话拖拉到右侧灰色区域,让工作流调度任务;
③ 点击CTRL+S保存,当出现如下界面,证明工作流创建成功;
④ 启动工作流;
⑤ 上述操作会自动帮我们打开M客户端;
⑥ 此时,去edw用户下查看edw_ITEMS表中已经有了数据;