OBIEE 11.1.1.7 Lab VM and Tutorial

来源:互联网 发布:淘宝店铺装修费用 编辑:程序博客网 时间:2024/05/20 20:04
上周下载安装Oracle提供的OBIEE appliance VM V305,并照着Tutorial做了一遍。
Appliance VM: http://www.oracle.com/technetwork/middleware/bi-foundation/obiee-samples-167534.html
Tutorial: http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/bi/bi11115/biadmin11g_02/biadmin11g.htm

基本理解了怎么完成下列工作:
1. 创建到Oracle Database的连接。注意点:
1)Connection Pool配置页面中,Data Source Name可以填TNS Entry Name也可以填整个TNS Entry。我在实验中发现填了与OBIEE Server一致的TNS Entry Name还是不能工作,换成TNS Entry 就好了。
2) 官方提供的例子里,Data Source Name 写成VALUEOF(NQ_SESSION.DSN)。查官方文档得知NQ_Session是系统预定于的Session变量。目前还不知道如何设置该变量。在实际工作中,这种方式有利于部署。

2. 导入Database Metadata,主要是表结构。并创建Alias。通常,我们会为每一个导入的表创建一个Alias。因表名是面向数据库开发/DBA,对于Repository Builder来说不是很友好。创建Alias是个Best Practice.

3. 如何创建BMM(Business Model and Mapping)。这里很多工作可以通过Drag and Drop方式完成。另外,善用Utitlity ---< Rename Wizard可以完成将表中列名改成用户友好的Logical Column Name.

4. 如何创建Presentation Layer。同样,Drag and Drop 很有用。

5. 部署到BIEE Server。有两种方式:
1) 离线编辑,EM中在deployment-<repository 页面里上传RPD文件,并重启BIEE Server. 这种方式发布较慢,需要重启服务器,可能影响到其他人工作。
2)在线编辑,在AdminTool中Check in. 这种方式发布较快。但碰到transactional Update failed问题时,大部分情况下可以用Global Consistency Check并修正找到的错误的方式来解决问题;也会碰到Global Consistency Check通过后还是无法Check in。这时用第一种方式Check in. 或者重启BIEE Server然后在线Check in.

6. 配置Measure的默认聚合方式。比如Revenue用Sum。配置完成后,OBIEE的报表会根据用户定义的聚合方式自动做聚合,而不需要在报表段写函数/代码做聚合。

7. 创建Hierarchy. OBIEE中称之为Dimension with level-based Hierarchies。其思想与Oracle Database中的Dimension/Hierarchy类似。主要用于Drill in and Drill out。注意点:
1) 必须指定每个层级(level)的primary key,OBIEE用该primary key确定用物理表中哪个列来找到相对应行及其内容。
2) Time Dimension,Time Dimension是所有BI应用都需要的。OBIEE为方便开发,自带了很多Time Dimension功能。需要在创建Hierarchy时,勾选“Time Dimension”。之后,Ago, ToDate, PeriodRolling函数才能正确工作。
3) 若表中有些数据带有层级数据,有些又没有。称之为Ragged Hierarchy。 在创建Hierarchy时务必选择Ragged, Skipped Level两个选项。

8.创建基于层级的Measure(Level based Measure)。例如:某个年度的收入,某个月度的销售量。在Logical Column属性的Level页,选择某个Hierarchy的某个层级。这个功能非常常用,在实际工作中经常用到。

9.创建Parent-Child Hierarchy。例子;scott.emp表中的员工-上级关系。在以往,要生成一个完整的组织上下级关系时,需要写复杂的SQL,用到With, Connect by level 语句。OBIEE提供了这个功能,简化了开发工作。他需要一个表有:Ancester(员工的大老板), emp(员工), is_leaf(是最底层员工吗?), Distance(员工到大老板的层级数)列。并在Hierarchy相应配置好。

10. Initialization block 和variable。分为两种Repository 级别和Session级别。作用与Java的构造函数类似。图形界面操作,很傻瓜化。例子:执行SQL Query取得一个单行结果集,OBIEE会按照顺序将结果赋值给用户定义的变量中。注意:此处只有一行,多行的不知道怎么设置。

11. 时间相关函数Ago, ToDate, PeriodRolling。需要事先配置一个时间类型的Hierarchy,即在一个Logical dimension with level based hierarchy的属性界面上,Structure选择Time。下面是几个例子:

PeriodRolling("Sample Sales"."F1 Revenue"."Revenue" , -2, 0) 
假如在报表里选择季度作为维度,那么我们得到过去三个月的销售额。

ToDate("Sample Sales"."F1 Revenue"."Revenue" ,  "Sample Sales"."H1 Time"."Year") 
假如在报表里选择年份为2013,那么我们得到2013到目前为止的销售额。

Ago("Sample Sales"."F1 Revenue"."Revenue" ,  "Sample Sales"."H1 Time"."Month" , 1) 
上一个月的销售额。

这些都可以用SQL分析函数实现。

0 0
原创粉丝点击