Oracle BIEE (Business Intelligence) 11g 11.1.1.6.0 学习(4)创建多维钻取分析

  在上一节经常,我们创建了一个基于部门号的工薪分类集中。
这里虽引出了一个定义:维度

  专业的说大家自行百度,这里就是未班门弄斧了。从数量的运角度看,维度可以简单的了解成“数据分类集中的平栽依据”。

  按“部门号(DEPTNO)”对“工资(SAL)”进行分拣集中,“DEPTNO”就是同样栽维度;按“工作岗位(JOB)”对“工资”进行分拣集中,“JOB”就是外一样栽维度;

  维度之间吧得生出层次关系,比如:我们先行随“工作岗位”
汇总,然后每个相同工作职位的职工,再遵照“部门”汇总。这种景象下:DeptNo就看是Job的子级维度。

  先照Job汇总数据,相同Job的,再依DeptNo做重新详细的多少汇总,这种逐层深入的多寡解析过程,在BI层里发一个专业术语:钻取(Drill).

  下面就刚刚的景(即:按JOB ->
DEPTNO来罕见对SAL进行分拣集中),来探维度如何创造:

一律、db表结构的始建

  通过上转之上,大家该发一个大致印象,每种数据分类的因,我们应创建同摆放小表来与之对承诺(比如按部门号汇总时,DEPT部门表明就当是如出一辙张维度表)

  现在咱们若经过JOB、DEPTNO
这第二单有层级的维度对数据开展辨析,所以:得有二张表。

  动手前,插点题外话:通常对数码开展解析比较消耗db性能(特别是复杂的分析),所以一般真正的BI分析,都见面先行把多少抽取及其他一样张表(甚至另一个专用于BI分析的堆栈),这样分析时,不至于影响正常的养体系以。
此地我未思对数码抽取展开讨论(事实上,这同片我还从未学会~_~),但是为了反映是思想,我们创建几张盖“BI_”为前缀的新表来当BI分析的数据源。

create table BI_DIM_JOB as  select  distinct(job) from emp;
create table BI_DIM_DEPT as select deptno,dname from dept;

  这样就是创造了次摆放小表BI_DIM_JOB、BI_DIM_DEPT以对应JOB、DEPT二独维度,但一般表还得生主键:

alter table BI_DIM_JOB
  add constraint PK_BI_DIM_JOB primary key (JOB);
alter table BI_DIM_DEPT
  add constraint PK_BI_DIM_DEPT_DEPTNO primary key (DEPTNO);

  加上主键后,我们更来拘禁下主表EMP,既然JOB、DEPTNO都备就此单独的小表记录,主体表中虽不再要这些字段了,我们只是想对SAL进行剖析,所以我们管EMP主表也做生处理:

create table BI_FACT_EMP as select empno,sal from emp;
alter table BI_FACT_EMP
  add constraint PK_BI_FACT_EMP primary key (EMPNO);

  这样就落了千篇一律摆新的(事实)主表,做吗BI的真情表数据源。

  哦,仔细看了转:这张表里没有ENAME(员工姓名),干脆,把EMPNO也真是一个维度,独立出来吧:

create table BI_DIM_EMP as select empno,ename from emp;
alter table BI_DIM_EMP
  add constraint PK_BI_DIM_EMP_EMPNO primary key (EMPNO);

  看这里,可能已经有人发现了一个首要的问题:主表BI_FACT_EMP同这些小表之间好象没有其它数及的关系关系?

  看来,还丢一摆用于描述EMPNO与JOB、DEPTNO之间涉及之申:

create table BI_DIM_DRILL_EMP as select job,deptno,empno from emp group by job,deptno,empno order by job,deptno,empno;

alter table BI_DIM_DRILL_EMP
  add constraint PK_DIM_DRILL_EMP_EMPNO primary key (EMPNO);

alter table BI_DIM_DRILL_EMP
  add constraint FK_DIM_DRILL_EMP_REF_JOB foreign key (JOB)
  references bi_dim_job (JOB);

alter table BI_DIM_DRILL_EMP
  add constraint FK_DIM_DRILL_EMP_REF_DEPTNO foreign key (DEPTNO)
  references bi_dim_dept (DEPTNO);

alter table BI_DIM_DRILL_EMP
  add constraint FK_DIM_DRILL_EMP_REF_EMPNO foreign key (EMPNO)
  references bi_dim_emp (EMPNO);

alter table BI_FACT_EMP
  add constraint FK_BI_FACT_EMP_REF_EMPNO foreign key (EMPNO)
  references bi_dim_drill_emp (EMPNO);

  好了,天下太平,主表BI_FACT_EMP 与 从表 BI_DIM_DRILL_EMP
通过EMPNO关联,而 BI_DIM_DRILL_EMP
再进一步通过EMPNO、JOB、DEPTNO分别与BI_DIM_EMP、BI_DIM_JOB、BI_DIM_DEPT关联,完全符合数据库范式。

  光看上面的sql脚本,比较便于头晕,为了更直观的求证各表的关联,这里让同样摆设关系图:

图片 1

亚、创建RPD 模型和维度

2.1、 先用“BI管理”工具,联机打开时RPD,并拿原本的对象清一色清空掉,再按前几乎不行法到之知识,把刚刚新创造的”BI_”打头的阐明,全加加进去,弄好后,大概是下面是法

图片 2

专注图中第二只黄色的字段:SAL_SUM、EMPNO_COUNT,这是自家手动新长的次只聚众字段,SAL_SUM是对SAL的SUM聚合,而EMPNO_COUNT是针对EMPNO的COUNT聚合,参见下图:

图片 3

 2.2、
在scott上右击->新建对象-》逻辑维-》具有根据级别之层系之维

图片 4

每当弹出的界面中,输入名称:BI_EMP_DIMs

图片 5

然后在BI_EMP_DIMs上右击-》新建对象->逻辑级别

图片 6

输入EMPNO(即创造最底部的维度)

图片 7

 然后把BI_DIM_DRILL_EMP下的EMPNO拖动到刚创立的维度EMPNO下,如下图:

图片 8

好后,类似下图:

图片 9

每当EMPNO维度上右击-》新建对象-》父级别

图片 10

 命名为DEPTNO 

图片 11

做到后,可以看来DEPTNO与EMPNO已经表现出父子层次关系

图片 12

同样,把BI_DIM_DRILL_EMP中之DEPTNO拖动刚创立的维度DEPTNO上,如下图:

图片 13

每当DEPTNO维度上,再累创造父级维度JOB

图片 14

同样把BI_DIM_DRILL_EMP上的JOB拖动到新创的维度JOB上,最终的维度层次如下图:

图片 15

2.3、创建维度关键字:在JOB上右击->新建逻辑级别关键字(如下图)

图片 16

保存默认,不发任何改动,直接点击“确定”

图片 17

仿佛的,在DEPTNO,EMPNO二个子级维度上,也开创主要字,然后点击保存,最终之则如下图:

图片 18

横流:保存成功后,每个维度下的字段前,会生一个好像“手*枪”的粗图标

2.4、把整维度BI_EMP_DIMs拖动到【表示】层中的BI_FACT_EMP上,如下图:

图片 19

使此刻点击保存,会弹有如下错误:

图片 20

解决智:在EMPNO上右击-》属性(如下图)

图片 21

点击+号

图片 22

在弹出的界面中,展开SCOTT下的BI_DIM_DRILL_EMP表,双击EMPNO(即设置BI_DIM_DRILL_EMP的EMPNO字段为维度EMPNO的显示列)

图片 23

类似的,把BI_DIM_DRILL_EMP的DEPTNO设置成维度DEPTNO的显示列,把BI_DIM_DRILL_EMP的JOB设置成维度JOB的显示列,再次点击保存,应该就是会成了。

型和维度终于来好了,已经成80%,革命胜利在通向!

其三、创建钻取分析

签到,切换到管理菜单,点击“重新加载文件和初数据”,以便为刚修改过的RPD生效

图片 24

创立一个解析,从左侧的主题区域里,可以观看刚才创建的各种模型,我们选JOB和SAL_SUM、EMPNO_COUNT这三列,如下图:

图片 25

切换到结果标签,如下图,注意JOB列标题及该列数据,都归因于A链接的花样展现,为了便于以后修改,这里我们先行保存一下,文件命名也SCOTT_EMP_DRILL,同时点击工具栏的略图标(如下图),预览下于仪表盘中之力量

图片 26

当时是仪表盘中的见效果,可以于JOB标题上点击一下

图片 27

此地,BIEE会根据维度的层次关系,自动“下研究”到下一个维度(即DEPTNO),如下图:

图片 28

DEPTNO维度下,还有无限底部维度EMPNO,还得延续下钻,如下图(注意一下老是钻取后,SAL_SUM、EMPNO_COUNT这第二排列的值会自动更新)

图片 29

自,维度不止这同样种玩法,还足以直接拿任何维度放到分析结果丁,如下图,如果双击BI_EMP_DIMs把全体维度加入所选列

图片 30

为美观,我们将列名“汉化”一下

图片 31

拿列标题改化“工资”,其它几排也接近处理

图片 32

兹羁押起舒服多了

图片 33

好点击分组数据前之+号展开,这样虽盖其他一样栽恍若树状的方法开展钻取了

图片 34

图片 35

终极,为了为分析结果看起重新fashion一点,给它们加个动态图片。不过开这前面,有一个细节得预处理一下,“人数(EMPNO_COUNT)”是“个位数”级别之(<10),而“工资汇总(SAL_SUM)”是“千员数”级别的,如果二个条形柱显示在相同张图被,"人数"的柱状图高度几乎接近于0,根本看不出来,所以发生必要把“人数”的数值放大一些,以保障跟SAL_SUM接近(至少和一个数据级)

图片 36

管丁放大1000员后,结果看上去还比较满意

图片 37

下是钻取过程中,图表动态变化的几张截图:

图片 38

生研究到DEPTNO维度时的截图

图片 39

下研究到无限底部EMPNO时的截图

图片 40

段了近乎平龙之觊觎,总算写了了,希望于正在攻读oracle BIEE的朋友等享有助

相关文章