一、准备数据源

在Oracle数据库中创建 OLTP用户导入源数据 oracle_oltp_data.sql
在Mysql数据库中创建表,插入产品相关数据 mysql_product_data.sql
用户表ods_cust_info(oltp)     
地区表department(oltp)
通话表call_record(oltp)     
产品表product(mysql)


二、需求:

电信运营情况分析:从各业务系统数据分析一下公司运营情况(只分析通话,不分析流量)
报表结果: 
统计各维度与各指标的用户量与运营收入情况
维度(时间,地区,产品)
指标(用户数,运营收入)


三、开发思路

1:对地区维度表进行相应的处理
社区 ---->  端局 ------> 区局    
村          镇           县
create table department_dimension as
select 
a.dept_id dq_id,a.dept_name dq_name,a.level_no dq_level_no,
b.dept_id ju_id,b.dept_name ju_name,b.level_no ju_level_no,
c.dept_id sq_id,c.dept_name sq_name,c.level_no sq_level_no 
from 
(select dept_id,dept_name,level_no from department t where dept_type_no = 2) a,
(select dept_id,dept_name,level_no from department t where dept_type_no = 4) b,
(select dept_id,dept_name,level_no from department t where dept_type_no = 5) c
where a.level_no=substr(b.level_no,1,3) and b.level_no=substr(c.level_no,1,6);

2:对通话表进行查找,计算出 每个电话 每个月 按照时间顺序 拨打电话的 累计时长,费用计算规则
然后限定条件出其中一个电话,一个月的数据,来分析情况,其他的就都一个道理。
select 
  call_id,
  call_date,
  phone_no,
  begin_time,
  time_long,
  sum(time_long) over(partition by phone_no,to_char(call_date,'yyyy-mm') 
  order by to_char(call_date,'yyyy-mm-dd'),begin_time) leiji 
from call_record t
WHERE phone_no = 134*****678      --4G98    98   150    0.19
AND to_char(call_date,'yyyy-mm') = '2018-03';

select * from ods_cust_info where phone_no = 134*****678;  --prod_id = '4G98'

select * from product where prod_id = '4G98'; -- mysql  98   150    0.19

--电话          月份    套餐    套餐费用  通话时长  超出150分钟,0.19每分钟
--134*****678  2018-03  4G98    98        150       0.19

3:获得累计通话时长,及每次通话费用

select 
  call_id,
  call_date,
  phone_no,
  begin_time,
  time_long,
  leiji,
  (case when leiji>150 then 
      case when leiji-150-time_long<0 then (leiji-150)*0.19 
      else time_long*0.19 end
   else 0 end) c_feiyong  -- 超出套餐的每次通话费用 
from   
  (select 
        call_id,
        call_date,
        phone_no,
        begin_time,
        time_long,
        sum(time_long) over(partition by phone_no,to_char(call_date,'yyyy-mm') 
        order by to_char(call_date,'yyyy-mm-dd'),begin_time) leiji
   from call_record t
   WHERE phone_no = 134*****678      --4G98    98   150    0.19
   AND to_char(call_date,'yyyy-mm') = '2018-03' );


四、ETL工具Informatica开发流程核心思想与步骤

第一个功能:实现累计通话时长的输出

(暂时先只求一个电话一个月的)

1、导入源表

2、创建目标表,生成并执行sql

3、创建映射,编辑映射,连接并ctrl+S保存

4、创建任务,修改任务映射连接到对应的地方,保存,

5、创建工作流,连接任务,通过任务启动工作流,

6、监测执行完毕,检查目标数据。

第二个功能:实现多表连接,获取需求字段

目标计算每次通话的费用,需要知道用户的套餐类型(用户表)、套餐基本费用,免费时长、计费标准(产品表)等信息。

1、修改目标表,修改后生成并执行SQL

2、修改映射,delete映射与目标的连接 ,添加新的源和组件

3、断开W端,重新连接,刷新任务,修改任务映射,保存,然后从新启动任务。

4、查验数据

第三个功能:计算每次通话的费用

1、修改目标表

2、修改映射

iif( leiji>TO_DECIMAL(MF_TIME),
     iif(  leiji-TO_DECIMAL(MF_TIME)-TIME_LONG<0,
            (leiji-TO_DECIMAL(MF_TIME))*CALL_MINUTE_FEE,
            TIME_LONG*CALL_MINUTE_FEE),
     0)

3、刷新任务,从新执行,查验数据

第四个功能:删除限定一个用户一个月的条件,edw层费用明细表完成

1、删除单用户单个月的限定条件

2、ctrl+ s 保存映射,刷新任务,保存ctrl+s ,M端重新启动任务,数据库查验数据结果。

第五个功能:计算每个号码每月的通话费用

1、修改目标表,生成并执行sql

2、修改映射,添加聚合组件,修改,连接,保存

3、刷新任务,保存,从新启动任务,查验数据

五、DM层(按照不同维度、指标作进一步需求的分析)

1、和已经处理的地区表department_dimension关联,求每个地区每个月各套餐使用用户数及合计消费

select 
  call_date,
  dq_name,
  prod_id,
  count(phone_no) total,
  max(basic_fee) basic_fee,
  sum(call_fee) call_fee  
from edw_call_record t1,oltp.department_dimension t2
where t1.address=t2.sq_name
group by call_date,dq_name,prod_id
order by 1,2,3;

2、更多的进一步细化分析,可以根据需求进一步去做分析。

ETL工具Informatica开发流程 综合应用 电信通话计费系统开发项目案例10相关推荐

  1. 专业系统开发流程有多少步骤?如何进行系统开发?

    ​在进行系统开发时,很多企业会选择技术公司进行系统开发,对于技术公司而言,一个全面.专业的开发流程也能从侧面反映出合作技术公司的开发示例及项目负责人员组织架构的完整度,能够更好地了解项目进度.专业系统 ...

  2. java电信计费项目论文_毕业论文-基于JAVA开发的电信IP计费系统3.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava 毕业论文-基于JAVA开发的电信IP计费系统3.doc ...

  3. 《SuperMap GIS二次开发MVC实战训练---江海区慢性病防治院系统》项目研发阶段性总结

    <SuperMap GIS二次开发MVC实战训练-江海区慢性病防治院系统>项目研发阶段性总结 作者:爱怡同学 本次任务完成时间:2019年1月1日-2019年1月10日 开发工具与关键技术 ...

  4. 外包项目开发课程整理一:SDLC传统系统开发生命周期7个阶段

    外包项目开发课程整理一:SDLC传统系统开发生命周期7个阶段 前言: 课程全称为:通过案例学习外包项目开发,是软件工程专业大三下的课程,我将根据中方外方ppt教授讲述内容及上网搜索的知识对本课程进行系 ...

  5. z转载:Mc3000开发培训(vb.net智能终端无线系统开发)

    无线终端开发培训文档 项目名称 Mc3000开发培训(vb.net智能终端无线系统开发) 项目号 项目阶段 日期 2006.9.20 工作要素 培训时间 16:00 培训人员 广州雄冠条码公司 培训程 ...

  6. 福建电信的计费查询平台应用--案例

    福建电信的 计费查询平台应用 本项目的建设需求是:为福建电信集中计费系统上线后,建立一个独立的查询系统,将计费数据库和统计数据库上的数据同步到一个正确的查询数据库中,通过该查询数据库实现24个月的计费 ...

  7. 区块链存证原理与流程--基于xuperchain司法存证系统开发的学习笔记

    区块链–存证系统 存证基本原理 存证的背景故事和概念(基于区块链) A向B借了1000块钱,B获得借条凭证,A再雇一个人C偷取B身上的借条,这样B就没有理由要回钱了.此时我们需要法院备份,即使B的借条 ...

  8. 关于Java基础部分知识的综合应用之成员调度系统的项目

    好久没更新了,咱继续 这是view package windows;import service.SunmmaryOperation1; import service.SunmmaryOperatio ...

  9. 嵌入式开发教程哪家好?linux嵌入式系统开发

    嵌入式入门你知多少?对于一些初入门的初学者而言,对嵌入式入门的一些知识有助于后期的学习,从嵌入式技术的应用前景以及到ARM认知到开发板等等.嵌入式企业用人需求在增长. 如今的嵌入式开发大热是ARM+L ...

最新文章

  1. 第三天:创建型模式--建造者模式
  2. CS231n 学习笔记(1)——神经网络 part1 :图像分类与数据驱动方法
  3. Re:关于集成测试与系统测试
  4. Bing改善Microsoft Office及Edge浏览器图像搜索功能
  5. jenkins docker脚本
  6. [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串
  7. <MySQL>何时使用普通索引,何时使用唯一索引
  8. 【RK3399Pro学习笔记】十三、ROS中的坐标系管理系统
  9. HttpClient Get/Post方式调用Http接口
  10. SpringBoot 工程目录 整合mybatis-neo4j(注解类型)-增删改查
  11. Xcode中AutoLayOut的简单使用
  12. java加解密之DES多种使用方式
  13. FlyMcu - 用于STM32芯片ISP串口程序一键下载的免费软件
  14. 个人博客系统开发记录
  15. php json对象转为字符串,JSON对象转化为字符串(附上代码详细解答)
  16. python与开源gis空间分析_Python 与开源GIS —数据处理、空间分析与地图制图
  17. (六)Graphics基本应用
  18. C++学习(11)(综合题)
  19. 2019版本ppt如何导出论文所需300dpi像素以上的高清图片
  20. 上海税前12000税后多少_税前12000元月工资,税后能拿多少

热门文章

  1. 气动和液压的差异点,可能会颠覆你的认知哦!
  2. 群在两个集合上的作用等价,群在群的集合上的伴随作用,群的中心与Abel群
  3. 使用EndNote导出GB/T 7714—2015格式的参考文献
  4. 未来可期的6个物联网发展
  5. 怎么判断膝关节错位_膝关节基础(三):髌骨脱位查体和诊断
  6. scilab安装EMD工具箱
  7. LwIP应用笔记(三):在RTOS环境下运行LwIP协议栈
  8. 局域网传输工具需求分析
  9. php文件如何上传到服务器,php文件怎么上传到云服务器
  10. python--真气网城市空气质量数据抓取