BI商务智能车险行业小项目介绍

- 项目描述

项目背景:车险行业中,各地协会按照每月统计本省的新车,非新车,商用车,乘用车的签单保费。
项目需求:根据业务源数据,制作报表展示:
透析表:查看不同公司各年、季度、月的销售额

-

项目框架

BI商务智能车险行业小项目介绍_第1张图片
- 数据源分析
数据来源:EXCEL表,存储于某个文件夹内
表结构:
BI商务智能车险行业小项目介绍_第2张图片
数据源描述:EXCEL表中包含多个工作表,每个工作表是河北省的一个市的各保险公司的保费情况,每个EXCEL表名都包含了统计的年份月份。

- DM模型设计

  • 物理模型

公司维度(表名称:COMPANY_DIM)
BI商务智能车险行业小项目介绍_第3张图片
时间维度(DATE_DIM)
BI商务智能车险行业小项目介绍_第4张图片
车辆用途种类维度(CAR_USED_DIM)
BI商务智能车险行业小项目介绍_第5张图片
车辆新旧维度(CAR_TYPE_DIM)
这里写图片描述
地区维度(LOCAL_DIM)
这里写图片描述
事实表(FACT_PREMIUM)
BI商务智能车险行业小项目介绍_第6张图片

DM实现

  • 创建DM用户以及创建表结构
    ORACLE用户名称:auto_insurance_dm
    登录SYS用户创建用户并分配权限
CREATE USER auto_insurance_dm IDENTIFIED BY 123456;
GRANT CONNECT,RESOURCE TO auto_insurance_dm;
  • 登录创建好的用户
    BI商务智能车险行业小项目介绍_第7张图片
  • 创建DM层的表结构
--创建公司维度表
CREATE TABLE COMPANY_DIM(
C_ID NUMBER,
COMPANY_CODE VARCHAR2(50),
COMPANY_NAME VARCHAR2(50),
START_TIME VARCHAR2(50),
END_TIME VARCHAR2(50));

--创建时间维度(DATE_DIM)
CREATE TABLE DATE_DIM(
DATE_VALUE VARCHAR2(50),
DATE_YEAR VARCHAR2(50),
DATE_MONTH VARCHAR2(50),
DATE_QUATER VARCHAR2(50));

--创建车辆用途种类维度(CAR_USED_DIM)
CREATE TABLE CAR_USED_DIM(
C_ID NUMBER,
CAR_USED_CODE VARCHAR2(50),
CAR_USED_NAME VARCHAR2(50),
START_TIME VARCHAR2(50),
END_TIME VARCHAR2(50));

--创建车辆新旧维度(CAR_TYPE_DIM)
CREATE TABLE CAR_TYPE_DIM(
C_ID NUMBER,
CAR_TYPE_CODE VARCHAR2(50),
CAR_TYPE_NAME VARCHAR2(50));

--创建地区维度(LOCAL_DIM)
CREATE TABLE LOCAL_DIM(
C_ID NUMBER,
LOCAL_CODE VARCHAR2(50),
LOCAL_NAME VARCHAR2(50));

--创建事实表(FACT_PREMIUM)
CREATE TABLE FACT_PREMIUM(
C_ID NUMBER,
COMPANY_CODE VARCHAR2(50),
LOCAL_CODE VARCHAR2(50),
CAR_USED_CODE VARCHAR2(50),
CAR_TYPE_CODE VARCHAR2(50),
DATE_VALUE VARCHAR2(50),
F_VALUE NUMBER);
  • 公司维度实现
    主要思路:
    1. 数据源选择公司名称,公司编号字段流出,然后按照公司编号排序,去除掉公司编号为空的记录,然后去重;然后使用数据库查询,与目标表对比,筛选掉不需要更新和插入的数据;然后再使用数据库查询,对比,将新记录与需要更新操作的数据分开操作,对新纪录做插入操作,对需要更新的记录做更新操作,并且保留历史记录。
    2. 采用加时间戳的方式辨别有效记录和历史记录。
      BI商务智能车险行业小项目介绍_第8张图片
      源数据操作
      BI商务智能车险行业小项目介绍_第9张图片
      BI商务智能车险行业小项目介绍_第10张图片
      BI商务智能车险行业小项目介绍_第11张图片
      为记录排序,主要因为去重操作需要
      BI商务智能车险行业小项目介绍_第12张图片
      筛选掉公司编码为空的记录
      BI商务智能车险行业小项目介绍_第13张图片
      去除重复
      BI商务智能车险行业小项目介绍_第14张图片

查询数据库,与流中数据做对比,返回对比表中的字段数据
BI商务智能车险行业小项目介绍_第15张图片
筛选掉不需要更新和插入的记录
BI商务智能车险行业小项目介绍_第16张图片
选择源数据的字段作为流出数据
BI商务智能车险行业小项目介绍_第17张图片
将源数据的数据与目标表对比,按照公司编号对比,相同时返回目标表字段有数据,不相同时返回目标表字段为空值。
BI商务智能车险行业小项目介绍_第18张图片
将数据通过筛选步骤分为两个流,一个为新纪录,一个为更新数据流
BI商务智能车险行业小项目介绍_第19张图片
新纪录流字段选择,只保留源数据中的字段
BI商务智能车险行业小项目介绍_第20张图片
获取系统时间
BI商务智能车险行业小项目介绍_第21张图片
转换系统时间的格式
BI商务智能车险行业小项目介绍_第22张图片
通过笛卡尔积将每个新纪录关联上一个系统时间,系统时间作为START_TIME
BI商务智能车险行业小项目介绍_第23张图片
增加一个空值作为END_TIME
BI商务智能车险行业小项目介绍_第24张图片
调用数据库中的序列
BI商务智能车险行业小项目介绍_第25张图片

--创建序列
CREATE SEQUENCE COMPANY_SEQ
INCREMENT BY 1 --增长值为1,如果为负数,则是递减
START WITH 1 --从1开始递增
MAXVALUE 9999999 --最大值,MINVALUE为最小值的意思
--NOCYCLE:达到最大值后不循环
--NOCACHE:不对序列进行缓冲
--CACHE:对序列进行缓冲,对序列进行缓冲,可以改善序列的性能
--CYCLE:达到最大值后循环
NOCYCLE NOCACHE;

插入到数据表
BI商务智能车险行业小项目介绍_第26张图片
以上新纪录的操作完毕,以下是旧数据的更新和历史数据保存操作

在使用筛选记录步骤分拨数据时,字段选择4,为需要做旧数据的更新和历史数据保存操作的流
BI商务智能车险行业小项目介绍_第27张图片
由于筛选记录步骤只能连接两个步骤,因此字段选择四将流出的所有字段都选择
BI商务智能车险行业小项目介绍_第28张图片

然后在通过两个字段选择,分别选择对应需要做历史数据保留操作所需的字段,和需要做更新数据操作的字段;历史数据保留操作就是将目标表的END_TIME更新为系统时间;
更新数据直接将数据插入到目标表中并将start_time置为系统时间,end_time为空。
BI商务智能车险行业小项目介绍_第29张图片

  • 日期维度(存储过程)
CREATE OR REPLACE PROCEDURE P_DATE_DIM(
START_DATE IN STRING,
END_DATE IN STRING)
IS
v_date DATE;
v_year VARCHAR2(20);
v_month VARCHAR2(20);
v_quater VARCHAR2(20);
v_count NUMBER;
v_number_month NUMBER;
v_str_date VARCHAR2(20);

BEGIN
  SELECT COUNT(*) INTO v_count FROM DATE_DIM;
  IF v_count>0
    THEN DELETE FROM DATE_DIM;
    COMMIT;
  END IF;

  v_date := TO_DATE(START_DATE,'YYYY-MM');
  LOOP
    v_year := SUBSTR(TO_CHAR(v_date,'YYYY-MM'),1,4);
    v_month :=SUBSTR(TO_CHAR(v_date,'YYYY-MM'),6,2);
    v_number_month := TO_NUMBER(v_month);
    CASE
      WHEN v_number_month >=1 AND v_number_month<=3
        THEN v_quater :='第1季度';
      WHEN v_number_month >=4 AND v_number_month<=6
        THEN v_quater :='第2季度';
      WHEN v_number_month >=7 AND v_number_month<=9
        THEN v_quater :='第3季度';
      WHEN v_number_month >=10 AND v_number_month<=12
        THEN v_quater :='第4季度';
     END CASE;
      v_str_date :=TO_CHAR(v_date,'YYYY-MM');
      INSERT INTO DATE_DIM VALUES (v_str_date,v_year,v_month,v_quater);
      v_date := ADD_MONTHS(v_date,1);
      EXIT WHEN v_date > TO_DATE(END_DATE,'YYYY-MM');
  END LOOP;
  COMMIT;
END;

--调用存储过程
BEGIN
   P_DATE_DIM('1994-01-01', '2030-12-31');
END;
--查看表
SELECT DATE_VALUE,DATE_YEAR,DATE_MONTH,DATE_QUATER FROM  DATE_DIM;
  • 车辆用途种类维度实现
    采用手录的方式实现:
    创建序列
CREATE SEQUENCE CAR_USED_SEQ--创建的序列
INCREMENT BY 1 --增长值为1,如果为负数,则是递减
START WITH 1 --从1开始递增
MAXVALUE 100 --最大值,MINVALUE为最小值的意思
NOCYCLE NOCACHE;

向表中插入数据

INSERT INTO CAR_USED_DIM VALUES(CAR_USED_SEQ.NEXTVAL,1001,'商用车',TO_CHAR(SYSDATE,'YYYY-MM-DD'),NULL);

INSERT INTO CAR_USED_DIM VALUES(CAR_USED_SEQ.NEXTVAL,1002,'乘用车',TO_CHAR(SYSDATE,'YYYY-MM-DD'),NULL);

车辆种类(新车/非新车)维度(CAR_TYPE_DIM)
手动插入

SELECT * FROM CAR_TYPE_DIM FOR UPDATE;

BI商务智能车险行业小项目介绍_第30张图片
BI商务智能车险行业小项目介绍_第31张图片
BI商务智能车险行业小项目介绍_第32张图片

  • 地区维度(LOCAL_DIM)
    主要思路:数据源EXCEL表工作表名称代表河北省的市区,获取工作表名称,添加工作表字段,将地区名称提取出来,然后单独选择出地区名称字段,去重去空值,然后与目标表对比,过滤出新纪录,添加两个序列,一个用作ID,一个用作地区编号,插入到目标表。
    BI商务智能车险行业小项目介绍_第33张图片
    BI商务智能车险行业小项目介绍_第34张图片
    获取工作表名称,添加工作表字段
    BI商务智能车险行业小项目介绍_第35张图片
  • 事实表(FACT_PREMIUM)实现
    BI商务智能车险行业小项目介绍_第36张图片
    EXCEL输入
    BI商务智能车险行业小项目介绍_第37张图片
    过滤掉空值
    BI商务智能车险行业小项目介绍_第38张图片
    值映射构造时间字段
    BI商务智能车险行业小项目介绍_第39张图片
    利用四个字段选择,将流中的结构转换一下
    BI商务智能车险行业小项目介绍_第40张图片
    BI商务智能车险行业小项目介绍_第41张图片
    通过MERGE JOIN(一定要记得排序) 与维度表关联将流中的车辆种类、new_type、local_name做关联,然后选择维度表中对应的编码字段
    BI商务智能车险行业小项目介绍_第42张图片
    最后添加序列,插入目标表中
    BI商务智能车险行业小项目介绍_第43张图片
    创建JOB实现全量加载
    BI商务智能车险行业小项目介绍_第44张图片
    在执行转换前将目标表所有数据TEUNCATE
    BI商务智能车险行业小项目介绍_第45张图片

报表展示

  • 建立RPD
    建立RPD有联机打开和非联机打开
    这里写图片描述
    非联机打开:
    创建好RPD,或者修改RPD后,每次需要登录http://172.18.48.112:7001/em/,更新RPD到主题区域,否则在创建分析时,看不到创建或修改RPD对应的主题区域
    联机打开:
    创建创建好RPD,或者修改RPD后,不用登录http://172.18.48.112:7001/em/,更新RPD,直接保存,在创建分析时可以直接看到该RPD对应的主题区域。

流程:物理层–逻辑层–展现层
物理层
创建资料档案库
BI商务智能车险行业小项目介绍_第46张图片
右击选择物理表图–仅限所选对象
BI商务智能车险行业小项目介绍_第47张图片
建立物理层外连接:
有两种结构:1.雪花模型
BI商务智能车险行业小项目介绍_第48张图片
2.星状模型
BI商务智能车险行业小项目介绍_第49张图片
在这里我们使用星状模型
这里写图片描述
将事实表与其中一个维度连接到一块
BI商务智能车险行业小项目介绍_第50张图片
依次类推建立好星状模型
BI商务智能车险行业小项目介绍_第51张图片
保存。

  • 逻辑层
    可以删除没有用的字段,进行层次构造,以用于在报表中实现钻取,设计事实表的聚合方式。
    BI商务智能车险行业小项目介绍_第52张图片
    对事实表中的值设计聚合方式,双击F_CALUE
    BI商务智能车险行业小项目介绍_第53张图片
    BI商务智能车险行业小项目介绍_第54张图片
    建立时间维度钻取,右击创建逻辑维–基于层次级别的逻辑维
    这里写图片描述
    然后多了
    BI商务智能车险行业小项目介绍_第55张图片
    选中DATE_DIM_DETAIL,右击,新建对象–父级
    BI商务智能车险行业小项目介绍_第56张图片
    这里写图片描述
    在MONTH上建立父级QUARTER,然后建立父级YEAR,将字段拉到对应的层次下
    BI商务智能车险行业小项目介绍_第57张图片
    创建逻辑关键字
    BI商务智能车险行业小项目介绍_第58张图片
    选中,右击,新建逻辑级别关键字–确定,依次建立
    BI商务智能车险行业小项目介绍_第59张图片

展现层

将逻辑层的模型直接拖到展现层,更改展现层的名称,更改图标等。
展现层表重命名:选中表,右击–重命名,修改即可
这里写图片描述
展现层,字段重命名
这里写图片描述
双击
BI商务智能车险行业小项目介绍_第60张图片
修改图标:选中右击–设置图标,选择要使用的图标即可
BI商务智能车险行业小项目介绍_第61张图片

建立分析

登录http://tom.lan:7001/analytics/saw.dll?bieehome&startPage=1,填写安装时配置的用户名及密码。(注意有些浏览器支持打开,有些浏览器不支持)

点击新建
BI商务智能车险行业小项目介绍_第62张图片
点击建立分析对应的主题区域
BI商务智能车险行业小项目介绍_第63张图片
在“打开”中可以查看已经建立好的分析,可以选择打开建立的分析,对分析进行修改编辑
BI商务智能车险行业小项目介绍_第64张图片
新建分析后
BI商务智能车险行业小项目介绍_第65张图片
可以编辑字段的排序,对字段使用公司计算,编辑过滤器筛选数据
BI商务智能车险行业小项目介绍_第66张图片
结果展示编辑
BI商务智能车险行业小项目介绍_第67张图片
添加分析提示,点击新建提示,选择列提示,选择基于哪个列建立提示
BI商务智能车险行业小项目介绍_第68张图片
再次选择了公司名称的列建立提示,点击选项进行配置,选择特定列值选项,将需要的值放到右边,默认选择为当打开时默认勾选的值
例如默认为空值时
BI商务智能车险行业小项目介绍_第69张图片
BI商务智能车险行业小项目介绍_第70张图片
BI商务智能车险行业小项目介绍_第71张图片
保存分析
这里写图片描述
BI商务智能车险行业小项目介绍_第72张图片

  • 建立仪表盘
    BI商务智能车险行业小项目介绍_第73张图片
    为仪表盘命名,记住存储路径
    BI商务智能车险行业小项目介绍_第74张图片

然后到仪表盘编辑的界面
BI商务智能车险行业小项目介绍_第75张图片
BI商务智能车险行业小项目介绍_第76张图片
然后保存,运行
BI商务智能车险行业小项目介绍_第77张图片
BI商务智能车险行业小项目介绍_第78张图片
点击确定,展示一下界面
BI商务智能车险行业小项目介绍_第79张图片
BI商务智能车险行业小项目介绍_第80张图片

ending…

你可能感兴趣的:(BI商务智能车险行业小项目介绍)