创建Cube操作手册.docx

上传人:b****5 文档编号:5363751 上传时间:2022-12-15 格式:DOCX 页数:37 大小:844.99KB
下载 相关 举报
创建Cube操作手册.docx_第1页
第1页 / 共37页
创建Cube操作手册.docx_第2页
第2页 / 共37页
创建Cube操作手册.docx_第3页
第3页 / 共37页
创建Cube操作手册.docx_第4页
第4页 / 共37页
创建Cube操作手册.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

创建Cube操作手册.docx

《创建Cube操作手册.docx》由会员分享,可在线阅读,更多相关《创建Cube操作手册.docx(37页珍藏版)》请在冰豆网上搜索。

创建Cube操作手册.docx

创建Cube操作手册

第1章前言

本操作手册主要用于在创建OLAP数据模型时,给用户一个指导性操作步骤。

OLAP模型的建立主要有以下步骤和关键点:

1)需求调研

此时主要是通过和用户进行沟通,明确用户有什么样需求,有哪些需求。

2)需求分析

当明确用户的需求时,开发人员应该针对用户的需求进行分析。

分析的目的主要是分析现有系统有没有相应的数据支持,能不能做等。

并规划以后的开发过程。

3)系统设计

详细的需求说明书确认后,此时就要整合所有的需求,进行归类,分析共性和异性。

确认实现的整个架构,统一的规范等。

4)详细设计

依据系统设计书,开发详细的程序

5)创建Cube模型

建模型

本操作手册以《原奶收购情况分析》作为例子指导

第2章用户需求

2.1原始需求

需求说明书中原奶收购情况分析的需求如下:

原奶收购情况分析

⏹分析目的

分析牛奶收奶完成情况。

⏹分析主体

伊利集团液态奶事业部领导。

⏹数据来源

指标名称

指标解释

指标计算公式

取数来源

实际收奶量

工厂每月原奶实际收购量

工厂在ERP系统录入的实际收奶量

ERP供应链系统牛奶收购情况报表

年计划收奶量

指一年计划的用奶量

BI系统

月计划收奶量

指一月计划的用奶量

BI系统

日计划收奶量

指一日计划的用奶量

BI系统

⏹分析指标

1.基础指标:

实际收奶量、年计划收奶量、月计划收奶量、日计划收奶量

衍生指标:

计划量

2.时间维度上的聚合关系:

基础指标为加和汇总。

⏹分析维度

1、时间:

年-月-日

品种:

A++有机奶、A+原料奶、A原料奶、A-原料奶

机构:

工厂

区域:

东北区域、中南区域、西北区域

单位:

⏹分析案例

1.展示示例:

液态奶事业部管理层:

i.时间为日(查询的日期需求为时间段,开始时间:

年-月-日,结束日期:

年-月-日)

ii.展示品种:

A++有机奶、A+原料奶、A原料奶、A-原料奶

iii.展现工厂

iv.展现区域:

东北区域、中南区域、西北区域

v.展示相应的分析指标。

⏹信息展现需求

1、分析可以按照时间点或时间段进行查询;除提供本期查询分析外,并支持同比分析,环比分析,累计分析等及丰富灵活的图形化展示,包括:

柱状图,饼图,折线图,地图形式,气泡图,堆积图等等

2、地图展示:

提供指标告警

2.2需求分析

分析指标:

在第2.1节的分析指标中我们可以看到总共有4个指标实际收奶量、年计划收奶量、月计划收奶量、日计划收奶量。

通过分析我们知道,在ERP系统中,牛奶是通过杂项入库的方式维护到ERP当中的。

但收奶计划量是业务部门通过制订计划,由外部数据Excel手工维护的。

因此通过分析数据来源,我们可以清楚的知道,该需求的数据主要有两部分:

ERP系统和外部数据。

分析维度:

1)时间:

在时间维度上,有三种选择,年、月、日

2)品种:

在ERP系统中,对原奶来说,实际上就是批次表中相应的批次号

3)机构:

原奶收购量在维护进ERP时,是入到具体的原料仓中,所以通过仓库代码就可以找到对应的机构。

机构肯定在某个固定的区域内。

4)区域:

对于区域的划分,在ERP中并没有做明确的维护。

因此需要手工定义并维护。

ERP系统中手工维护区域和仓库的关系,因此区域—机构—仓库可以建立对应关系。

2.3结论

分析指标:

实际收奶量ERP系统

计划量外部数据

分析维度:

时间系统产生

品种手工维护

机构系统产生

区域手工维护

第3章系统设计

命名规范:

1)维度:

DW_DIM_XXXX

2)事实表:

DW_FACT_XXXX

3.1维度模型

1)时间

createtableDW.DW_DIM_TIME_DAY

YEAR_IDVARCHAR2(8)notnull,

YEAR_NAMEVARCHAR2(20)notnull,

YEAR_ORDERVARCHAR2(8)notnull,

HALFYEAR_IDVARCHAR2(8)notnull,

HALFYEAR_NAMEVARCHAR2(20)notnull,

HALFYEAR_ORDERVARCHAR2(8)notnull,

QUARTER_IDVARCHAR2(8)notnull,

QUARTER_NAMEVARCHAR2(20)notnull,

QUARTER_ORDERVARCHAR2(8)notnull,

MONTH_IDVARCHAR2(8)notnull,

MONTH_NAMEVARCHAR2(20)notnull,

MONTH_ORDERVARCHAR2(8)notnull,

TENDAYS_IDVARCHAR2(8)notnull,

TENDAYS_NAMEVARCHAR2(20)notnull,

TENDAYS_ORDERVARCHAR2(8)notnull,

FIVEDAYS_IDVARCHAR2(8),

FIVEDAYS_NAMEVARCHAR2(50),

FIVEDAYS_ORDERVARCHAR2(8),

DAY_IDVARCHAR2(8)notnull,

DAY_NAMEVARCHAR2(20)notnull,

DAY_ORDERVARCHAR2(49)notnull,

DUMMY_LEVELNUMBER

tablespaceDW

2)等级奶维度

手工维护

createtableDW.DW_DIM_MILKGRADE

GRADE_IDNUMBER(5),

LOT_NOVARCHAR2(32),

LOT_DESCVARCHAR2(40),

PARENT_IDNUMBER(15),

SHOW_ORDERVARCHAR2(32),

ROLLUP_METHODVARCHAR2

(1)default'+'notnull

tablespaceDW

3)区域机构维度

手工维护

createtableDW.DW_DIM_MILK_DEPOT

WHSE_IDNUMBER(15),

WHSE_CODEVARCHAR2(20),

WHSE_NAMEVARCHAR2(200),

PARENT_IDNUMBER(15),

SHOW_ORDERVARCHAR2(32),

ROLLUP_METHODVARCHAR2

(1)default'+'notnull

tablespaceDW

4)指标维度

指标表dw_dim_measure_all与dw_dim_msr_olap_info配置如下:

将配置表中数据插入到dw_dim_measure_all与dw_dim_msr_olap_info中。

指标维DW.VW_DIM_MEASURE_MILK视图如下:

CREATEORREPLACEVIEWDW.VW_DIM_MEASURE_MILKAS

SELECT

t.MSR_IDFACT_VALUE_ID,

t.MSR_OLAP_NAMEFACT_VALUE_NAME,

t.ROLLUP_METHODCALL_METHOD,

t.PARENT_MSR_IDPARENT_ID,

t.OLAP_ATTRIBUTE1MEASURE_FLAG,

t."CUBE_ID",t."PARENT_MSR_ID",t."MSR_ID",t."MSR_NAME",t."CALC_ENGINE",t."CALC_TYPE",t."TIME_TYPE",t."CALC_LEVEL",t."DEFAULT_JD",t."MSR_CATEGORY",t."MSR_SUB_CATEGORY",t."LINK_MSR1_TYPE",t."LINK_MSR1_ID",t."LINK_MSR1_NULLABLE",t."LINK_MSR2_TYPE",t."LINK_MSR2_ID",t."LINK_MSR2_NULLABLE",t."EXTERNAL_MSR_FLAG",t."MSR_ATTRIBUTE1",t."MSR_ATTRIBUTE2",t."MSR_ATTRIBUTE3",t."MSR_ATTRIBUTE4",t."MSR_ATTRIBUTE5",t."SHOW_ORDER",t."ROLLUP_METHOD",t."ALT_MSR_NAME",t."MSR_OLAP_NAME",t."OLAP_ATTRIBUTE1",t."OLAP_ATTRIBUTE2",t."OLAP_ATTRIBUTE3",t."OLAP_ATTRIBUTE4",t."OLAP_ATTRIBUTE5"

FROMdw.vw_dw_dim_measure_allt

WHEREt.CUBE_ID='MILK'

3.2事实表模型

通过分析知道,原奶收购情况分析涉及到时间、机构、等级奶、指标维,因此事实表结构如下:

createtableDW.DW_FACT_MILK

TIME_IDVARCHAR2(8),

WHSE_IDNUMBER(15),

ITEM_IDNUMBER(10),

ITEM_NOVARCHAR2(32),

GRADE_IDVARCHAR2(10),

FACT_VALUE_IDVARCHAR2(10),

FACT_VALUENUMBER

tablespaceDW

3.3数据处理过程(ERP)

该过程主要统计原奶收购量。

/*

*Author:

tyc

*Created:

2009-8-9

*Purpose:

原奶收购情况统计

*/

procedureld_f_milk(p_begin_timeauto_etl_inc_control_dw.begin_time%type,

p_end_timeauto_etl_inc_control_dw.end_time%type,

p_etl_allvarchar2default'N',

p_etl_autovarchar2default'N')

is

--记录数据处理用时

v_use_timedate;

begin

v_use_time:

=sysdate;

ifp_etl_all='Y'then

pkg_fbi_common.Truncate_Table('DW','dw_fact_milk');

pkg_fbi_etl_ctl.write_log('一般',

'【DW】_TRUNCATE原奶收购数据表_['||p_begin_time||'~'||

p_end_time||']'||sql%rowcount,

3,

sysdate-v_use_time);

commit;

else

deletedw.dw_fact_milkt

wheret.fact_value_idin(G_MEASURE50_ID,G_MEASURE51_ID,G_MEASURE55_ID)

andt.time_idbetweenp_begin_timeandp_end_time;

pkg_fbi_etl_ctl.write_log('一般',

'【DW】_删除原奶收购数据表_['||p_begin_time||'~'||

p_end_time||']'||sql%rowcount,

3,

sysdate-v_use_time);

commit;

endif;

--统计原奶收购情况

insertintodw.dw_fact_milk

time_id,--时间

orgn_id,--机构ID

whse_id,--仓库ID

whse_code,--仓库编码

item_id,--品项ID

item_no,--品项编码

grade_id,--等级奶

fact_value_id,--指标ID

fact_value--指标值

--原奶收购量第一计量单位

select

to_char(tran.trans_date,'yyyymmdd')day_id,--事务日期

nvl(hr.operating_unit,-99999999)orgn_id,--机构ID

nvl(whse.mtl_organization_id,-99999999)whse_id,--仓库ID

tran.whse_codewhse_code,--仓库代码

tran.item_iditem_id,--品项ID

item.item_noitem_no,--品项编码

decode(lots.lot_no,'A+','A+',

'A-','A-',

'A+2','A+2',

'A++','A+2',

'A++','A+2',lots.lot_no)grade_id,--等级ID

G_MEASURE50_IDfact_value_id,--指标ID

nvl(sum(tran.trans_qty),0)/1000fact_value--收购量

fromods.ic_tran_vw1tran,--库存事务表

ods.ic_lots_mstlots,--原辅料批次表

ods.ic_item_mst_bitem,--品项表

ods.ic_whse_mstwhse,--仓库表

ods.inv_organization_info_vhr

wheretran.item_id=lots.item_id

andtran.lot_id=lots.lot_id

andtran.item_id=item.item_id

and(tran.doc_type='CREI'ortran.doc_type='ADJI')

and(tran.line_type=0ortran.line_type=-1)

and(tran.item_id=2996ortran.item_id=56671)

andpleted_ind=1

andtran.whse_code=whse.whse_code

andhr.organization_code(+)=tran.whse_code

andtran.REASON_CODEin(/*液奶*/1163,1263,1300,1301,1942,1060,/*奶粉*/2601)

andlots.lot_noin('A','A+','A-','A+2','A+','A-','A+2','A++','A++')

andtran.TRANS_DATE>=to_date(p_begin_time,'yyyy-mm-dd')

andtran.TRANS_DATE

groupbyto_char(tran.trans_date,'yyyymmdd'),--事务日期

nvl(hr.operating_unit,-99999999),

nvl(whse.mtl_organization_id,-99999999),

tran.whse_code,--仓库代码

tran.item_id,

item.item_no,

lots.lot_no

havingnvl(sum(tran.trans_qty),0)<>0

unionall

--原奶收购量第2计量单位

select

to_char(tran.trans_date,'yyyymmdd')day_id,--事务日期

nvl(hr.operating_unit,-99999999)orgn_id,--机构ID

nvl(whse.mtl_organization_id,-99999999)whse_id,--仓库ID

tran.whse_codewhse_code,--仓库代码

tran.item_iditem_id,--品项ID

item.item_noitem_no,--品项编码

decode(lots.lot_no,'A+','A+',

'A-','A-',

'A+2','A+2',

'A++','A+2',

'A++','A+2',lots.lot_no)grade_id,--等级ID

G_MEASURE51_IDfact_value_id,--指标ID

nvl(sum(tran.trans_qty2),0)/1000fact_value--指标值

fromods.ic_tran_vw1tran,--库存事务表

ods.ic_lots_mstlots,--原辅料批次表

ods.ic_item_mst_bitem,--品项表

ods.ic_whse_mstwhse,

ods.inv_organization_info_vhr

wheretran.item_id=lots.item_id

andtran.lot_id=lots.lot_id

andtran.item_id=item.item_id

and(tran.doc_type='CREI'ortran.doc_type='ADJI')

and(tran.line_type=0ortran.line_type=-1)

--是否可在配置表中配置

and(tran.item_id=2996ortran.item_id=56671)

--是否可在配置表中配置

andpleted_ind=1

andtran.whse_code=whse.whse_code

andhr.organization_code(+)=tran.whse_code

andtran.REASON_CODEin(/*液奶*/1163,1263,1300,1301,1942,1060,/*奶粉*/2601)

andlots.lot_noin('A','A+','A-','A+2','A+','A-','A+2','A++','A++')

andtran.TRANS_DATE>=to_date(p_begin_time,'yyyy-mm-dd')

andtran.TRANS_DATE

groupbyto_char(tran.trans_date,'yyyymmdd'),--事务日期

nvl(hr.operating_unit,-99999999),

nvl(whse.mtl_organization_id,-99999999),

tran.whse_code,--仓库代码

tran.item_id,

item.item_no,

lots.lot_no

havingnvl(sum(tran.trans_qty2),0)/1000<>0

unionall

--原奶库存量

select

a.day_idday_id,--事务日期

nvl(hr.operating_unit,-99999999)orgn_id,--机构ID

nvl(whse.mtl_organization_id,-99999999)whse_id,--仓库ID

tran.whse_codewhse_code,--仓库代码

tran.item_iditem_id,--品项ID

item.item_noitem_no,--品项编码

decode(lots.lot_no,'A+','A+',

'A-','A-',

'A+2','A+2',

'A++','A+2',

'A++','A+2',lots.lot_no)grade_id,--等级ID

G_MEASURE55_IDfact_value_id,--指标ID

sum(casewhento_char(tran.trans_date,'yyyymmdd')<=a.day_idthennvl(tran.trans_qty,0)end)/1000fact_value--指标值

fromods.ic_tran_vw1tran,--库存事务表

ods.ic_lots_mstlots,--原辅料批次表

ods.ic_item_mst_bitem,--品项表

ods.ic_whse_mstwhse,

ods.inv_organization_info_vhr,

ods.i_time_daya

wheretran.item_id=lots.item_id

andtran.lot_id=lots.lot_id

andtran.item_id=item.item_id

and(tran.item_id=2996ortran.item_id=56671)

andtran.whse_code=whse.whse_code

andtran.whse_code=hr.organization_code(+)

andlots.lot_noin('A','A+','A-','A+2','A+','A-','A+2','A++','A++')

anda.day_idbetweento_char(tran.trans_date,'yyyymmdd')anda.day_id

anda.day_idbetweenp_begin_timeandp_end_time

groupbya.day_id,--事务日期

nvl(hr.operating_unit,-99999999),

nvl(whse.mtl_organization_id,-99999999),

tran.whse_code,--仓库代码

tran.item_id,

item.item_no,

lots.lot_no

havingsum(casewhento_char(tran.trans_date,'yyyymmdd')<=a.day_idthennvl(tran.trans_qty,0)end)/1000<>0

;

pkg_fbi_etl_ctl.write_log('一般',

'【DW】_原奶收购

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1