一、需求:
将oracle数据库的scott用户源表items 直抽至 EDW层 EDW_items。数据存储到oracle的edw01用户下
数据抽取至EDW层做聚合转换
- 求各供应商 min(price),avg(price),max(price),sum(price), 2*avg(price)
- 根据供应商id去供应商表查找供应商名称
- 查验数据结果后,再修改Informatica,按照平均价格和求和价格降序
数据说明:
二、开发操作
①定义源
--先连接R端创建文件夹BI_ETL01
--切换到D端打开BI_ETL01
--创建连接源:点击源图标,点击源--->从数据库导入-->【点击ODBC数据源(D)后边的‘···’--->用户DSN--->添加--->选择:DataDirect 6.1 Oracle Wire Protocol--->自定义Data Source Name:odbc01_oracle--->Host:127.0.0.1--->Port Number:1521--->SID:orcl--->确定 --->选择 odbc01_oracle --->确定。
--点击源--->从数据库导入-->连接scott用户-->找到items表--->确定。
--点击源--->从数据库导入-->连接scott用户-->找到MANUFACTURERS表--->确定。
②定义目标
--点击目标图标--将源items表拖拽到Target Designer区域里面来-->去修改表名:EDW01_items及字段。
--创建存储目标表的表结构:目标--生成/执行sql--连接--生成项目--生成并执行。
③创建映射
--创建新的映射:点击映射图标--映射--创建--名称:M_ORACLE_EDW01_items--确定。
--将源表和目标表拖拽到Mapping Designer区域。
--聚合组件
--点击汇总转换器图标,在Mapping Designer区域空白处拖拽一下,ok,将源表和汇总转换器连接,然后去修改字段。
--表达式转换器组件
--创建表达式转换器,与汇总转换表avg_price连接,添加输出字段avg_price2。
--查找组件
--点击查找转换图标
,在Mapping Designer区域空白处拖拽一下,为查找转换选择表,源-->MANUFACTURERS-->确定。
--将汇总转换器的DISTRIBUTOR_ID拖拽到查找转换器--编辑查找转换器的条件,将两个id相连;属性,修改连接源的数据库信息。
--与目标表连接 ,ctrl+s保存
④定义任务
--切换到W端
--点击任务开发程序图标,任务,创建,会话,名称:S_ORCL_EDW01_items,选择关联的映射:M_ORACLE_EDW01_items
--连接,关系,新建,oracle --(source_Oracle<自定义名称>,scott<用户名> tigre<密码> orcl<连接字符串>)、新建,oracle --(target_Oracle_edw01<自定义名称>,edw01<用户名> edw01<密码> orcl<连接字符串>)[如果存在,直接使用]
--双击S_ORCL_EDW01_items-->调整映射【源 连接值:source_Oracle】【目标 连接值:target_Oracle_edw01 属性(Target load type 改为Normal 勾选Truncate target table option】--确定,记得 ctrl + s 保存
⑤创建工作流
--切换到工作流图标,工作流-->创建-->W_ORCL_EDW01_items --> 确定。
--将S_ORCL_EDW01_items 拖拽到右侧--链接工作流和任务。然后ctrl+s 保存
--右击S_ORCL_EDW01_items--通过任务启动工作流--会自动弹出M端。
⑥工作流调度监控
--点击启动的M端查看监测情况
⑦查验数据
--登陆Oracle的edw01用户查验数据
三、修改操作
目标:修改Informatica,按照平均价格和求和价格降序
--选中映射中所有的连接目标表的线,delete键删除
--排序器转换
--点击生成排序器转换表,把所有目标需要的字段先拖拽连接到排序器转换表中,并进入修改平均价格、求和价格字段为降序
-- 连接目标表,ctrl+s保存
--刷新S_ORCL_EDW01 items任务,编辑(检查) 任务 的 映射 的 目标 属性 必须勾选Truncate target table option 确定,ctrl+s保存。
--在M端从新启动任务-->执行完毕后查验数据。
对比平均单价,和总销售价格,适中的价格,总收益会更好,当然要做进一步分析,需要根据成本价,进一步计算利润。