Oracle BIEE的开发讲解从helloworld开始.docx

上传人:b****5 文档编号:3573302 上传时间:2022-11-24 格式:DOCX 页数:25 大小:715.23KB
下载 相关 举报
Oracle BIEE的开发讲解从helloworld开始.docx_第1页
第1页 / 共25页
Oracle BIEE的开发讲解从helloworld开始.docx_第2页
第2页 / 共25页
Oracle BIEE的开发讲解从helloworld开始.docx_第3页
第3页 / 共25页
Oracle BIEE的开发讲解从helloworld开始.docx_第4页
第4页 / 共25页
Oracle BIEE的开发讲解从helloworld开始.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Oracle BIEE的开发讲解从helloworld开始.docx

《Oracle BIEE的开发讲解从helloworld开始.docx》由会员分享,可在线阅读,更多相关《Oracle BIEE的开发讲解从helloworld开始.docx(25页珍藏版)》请在冰豆网上搜索。

Oracle BIEE的开发讲解从helloworld开始.docx

OracleBIEE的开发讲解从helloworld开始

这篇文章提供了一个HelloWorld式的例子,讲述如何创建一个最简单的BIEE资料库。

本文使用的示例数据可以在从此链接下载:

目录

创建资料库

创建物理模型

创建逻辑模型

创建展现模型

保存资料库

配置OracleBIServer使用新资料库

在OracleAnswer中定义查询

参考

创建资料库

BIEE的资料库(Repository)是一个后缀名为rpd的物理文件,其中存储了三类元数据:

数据源物理模型,逻辑模型,以及展现模型。

OracleBIServer是资料库的使用者:

在前端,BIServer通过ODBC将资料库中的逻辑模型及展现模型提供给OracleBIPresentationServer;在后端,BIServer通过各种适配器访问与资料库中物理模型对应的数据源_Deployment_Guide][1]。

资料库rpd文件存储在$OBIEE_HOME\server\Repository目录里。

首先,我使用BIEEAdministrationTool创建一个名为zw1840的新资料库。

点“保存”按钮后,可以看到AdministrationTool打开了一个空资料库。

资料库的编辑窗口分为三栏,从右至左依次为:

ŸPhysical:

定义数据源的类型和连接方式,还有数据源物理表结构,字段数据类型,物理表的主外键之类的信息。

_Server_Administration][2]

ŸBusinessModelandMapping:

定义逻辑模型,以及逻辑模型与物理模型间的映射关系。

_Server_Administration][3]

ŸPresentation:

定义展现模型。

展现模型中的一个Catalog对应OracleAnswer中的一个SubjectArea。

_Server_Administration][4]

创建物理模型

物理模型可以手工创建,但是最简单的方法是从源数据库中直接导入。

通过菜单File\Import\fromDatabase开始导入。

在“SelectDataSource”对话框中设置导入元数据时使用的数据源连接信息。

在“Import”对话框里可以选择需要导入的数据库对象,此对话框可以根据对象类型筛选树形列出的数据库对象。

我的习惯是为所有数据库表建立视图,使用视图的好处是:

如果数据库发生了变化只需要修改视图定义,BIEE中的修改工作可以减少很多。

因此在“Import”对话框我只选择导入视图对象。

在这个例子中,我首先导入消费记录事实表(V_FINANCE_EXPENSE)和家庭成员维表(V_COMMON_MEMBER)。

在第一次导入物理模型时,还需要设定BIServer进行数据查询时使用的连接信息

注意上面设置了两次连接信息,一次在“SelectDataSource”对话框,此处的连接信息是供AdministrationTool导入元数据用的;另一次在“ConnectionPool”对话框,此处的连接信息是供BIServer进行数据查询时使用的。

如果你的AdministrationTool和BIServer装在不同的机器上则需要在两台机器上分别配置Oracle的TNS。

现在,在“Physical”窗口可以看到刚才导入的物理模型了。

在Database节点(TNS_VZW1840_ORADB10G)上使用右键菜单“PhysicalDiagram\Object(s)andAllJoins”可以查看数据源的物理模型图。

接下来要定义各物理表的主键。

双击V_COMMON_MEMBER表,在“PhysicalTable”对话框的“Keys”页上点“New”按钮,选择MEMBER_ID字段作为主键。

使用同样的方法将V_FINANCE_EXPENSE表的CONSUME_ID字段定义为主键。

最后定义物理表之间的外键。

双击V_FINANCE_EXPENSE表,在“PhysicalTable”窗口的“ForeignKeys”页上点“New”按钮,设定V_COMMON_MEMBER表的MEMBER_ID字段为V_FINANCE_EXPENSE表MEMBER_ID字段的外键。

再次查看物理模型图你会发现两个表之间建立了1..N的引用关系。

创建逻辑模型

将整个PhysicalSchema“ZW1840”拖到“BusinessModelandMapping”窗口。

AdministratorTool提供了一个偷懒的工具,可以自动地修改逻辑表和逻辑字段的名称,完成去掉下划线、首字母大写之类的工作,不过这个功能对于国内项目意义不大。

感兴趣的话可以试试“Tools\Utilities”中的“RenameWizard”。

我用这个工具修改了逻辑模型、逻辑表及字段的名称。

AdministratorTool将按照物理模型的结构原样创建逻辑模型,自动将物理表的主键作为逻辑表的主键,同时创建逻辑表中的逻辑连接(LogicalJoin)。

ServerAdministrationGuide文档建议在逻辑模型中不要建立逻辑外键(LogicalForeignKey),而应使用逻辑连接_Server_Administration][5]。

在BusinessModel节点(Finance)上使用右键菜单“BusinessModelDiagram\WholeModel”可以查看逻辑模型图。

注意AdministratorTool自动创建的逻辑连接,双击可以打开“LogicalJoin”对话框查看逻辑连接的详细情况。

我感觉AdministratorTool自动创建的逻辑连接(Relationship_2004:

3161206517091)中,连接方式“Inner”还有“MemberDim”表的Cardinality“0,1”不正确,修改为“LeftOuter”和“1”。

ServerAdministrationGuide文档建议逻辑模型中不要设置Driving选项_Server_Administration][6]。

对于逻辑事实表的度量字段,需要设定其默认的聚合方法。

“ExpenseFact”表的“Amount”字段为度量值,双击此字段,在“LogicalColumn”对话框的“Aggregation”页将其默认聚合方法设置为“SUM”。

_Server_Administration][7]

再看逻辑模型,“Amount”字段的图标发生了变化。

为了实现钻取功能,需要在逻辑模型内创建维度。

BIEE中的维度(Dimension)与Oracle数据库中的DIMENSION对象概念类似,其中包含层级(Level)以及由各层级构成的层次结构(Hierarchy)。

维度所包含的逻辑列必须来自同一个逻辑表_Server_Administration][8]。

我对示例数据的分析需求是:

要按家庭成员维度汇总消费金额,还要从家庭成员下钻到消费明细描述。

由于消费明细描述位于消费事实表(V_FINANCE_EXPENSE)中,因此我需要改造逻辑表MemberDim,在其中添加消费明细字段。

将物理模型V_FINANCE_EXPENSE表的CONSUME_ID和DESCR列拖到逻辑模型的MemberDim表下。

此时逻辑表MemberDim有两个逻辑表来源(LogicalTableSource),MemberId和MemberName来自V_FINANCE_EXPENSE,ConsumeId和Descr来自V_COMMON_MEMBER。

双击逻辑表来源可以打开“LogicalTableSource”对话框,在“ColumnMapping”页可以查看逻辑列与物理表的映射关系。

从物理模型向逻辑模型拖放字段时,逻辑表来源是根据物理字段所在的物理表自动地建立的。

按我的理解,MemberId/MemberName以及ConsumeId/Descr来自同一物理数据源的两张物理表,可以使用同一个逻辑表来源。

我需要在逻辑表来源中设定物理表间的关联关系,并重新映射逻辑字段。

删除逻辑表来源V_FINANCE_EXPENS,双击V_COMMON_MEMBER开始编辑MemberDim的逻辑表来源。

首先设定MemberDim内逻辑字段所需的物理表,以及表间的关联关系。

(我不确定是否一定要这样做,物理表间的关联在物理模型中已经设置了,为什么这里还要做一遍?

之后定义逻辑字段与物理字段间的映射关系。

由于将ConsumeId加入了逻辑表MemberDim,因此MemberDim的逻辑主键不再是MemberId,应改为ConsumeId。

删除原来的逻辑主键,使用ConsumeId创建新的逻辑主键。

经过重新整理的MemberDim是酱子的:

现在可以依据逻辑表MemberDim创建维度了。

首先定义Member维度的层次结构,由上至下依次为MemberTotal,Member,Detail。

之后将逻辑字段放入相应的层次。

与维度对应的逻辑表的主键必须放在最低层(Detail)_Server_Administration][9];GrandTotal层(MemberTotal)内不添加逻辑字段_Server_Administration][10]。

Member维度的结构如下:

我还需要对每个层次进行设置,包括层次的元素数,以及层次的层键。

关于元素数的规则有:

GrandTotal层的元素数这只能为1;其他层次的元素数先设定一个大于1的数吧(具体规则还没搞清楚)。

层键为逻辑层元素的唯一组合,层键确定了钻取时的查询路径。

层键的属性中可以设定此层键是否用于下钻,选择了“Usefordrilldown”后此层键在OracleAnswer中才可用于下钻。

_Server_Administration][11]

Member层的层键设置如下:

Detail层的设置与Member层类似。

创建展现模型

将整个BusinessModel“ZW1840”拖到“Presentation”窗口,AdministratorTool将按照逻辑模型的结构原样创建展现模型。

展现模型的目录被称为PresentationCatalog,也就是在OracleAnswer中看到的SubjectArea。

在展现模型中,所有不希望业务用户看到的字段可以删掉,例如所有ID字段。

经过修改后展现模型变成了这个样子:

至此大功告成,HelloBIEE资料库设计完毕。

保存资料库

每次保存资料库文件时你都会看到提示

这是AdministratorTool在检查资料库的完整性,你可以根据提示检查有问题的模型设置。

一个新建的简单资料库不会有太多完整性问题,但第一次保存时你一定会看到这个警告:

新创建的资料库Administrator密码为空,我们可以使用“Manage\Security”菜单打开“SecurityManager”设置密码。

双击Administrator用户设置密码。

在这还可以顺便把“LoggingLevel”设为“2”。

_Server_Administration][12]

配置OracleBIServer使用新资料库

修改OracleBIServer的配置文件$OBIEE_HOME\server\Config\NQSConfig.INI,找到“[REPOSITORY]”部分,指定新建的资料库文件:

[REPOSITORY]

REP_ZW1840=zw1840.rpd,DEFAULT;

现在启动BIEE的三个服务OracleBIJavaHost,OracleBIPresentationServer,OracleBIServer,并启动BIEE的OC4J。

在OracleAnswer中定义查询

登录BIEE,用户/密码为当前NQSConfig.INI文件所使用的资料库中包含的用户/密码。

进入Answer(BIEE的AdHoc工具)就可以在SubjectArea中看到刚才定义的ExpenseAnalysis啦。

选择SubjectArea打开查询界面,单击列名将列添加到查询窗格(SelectionPane),CTRL+单击列名将列添加到过滤器(Filters)。

从MemberName可以下钻到消费明细

能下钻,怎么才能上钻呢?

我还没有找到,向各位请教。

参考[1]DeploymentGuidep11

TheOracleBusinessIntelligenceServerisastand-aloneprocessthatmaintainsthelogicaldatamodelwhichitprovidestoBIPresentationServicesviaODBC.Metadataismaintainedforthedatamodelinalocalproprietaryfilecalledtherepositoryfile(rpd).Ontheback-end,theBIServerconnectstocustomerdatastoresviadatasourceadaptors.

[2]ServerAdministrationGuidep55

ThePhysicallayeroftheAdministrationTooldefinesthedatasourcestowhichtheOracleBIServersubmitsqueriesandtherelationshipsbetweenphysicaldatabasesandotherdatasourcesthatareusedtoprocessmultipledatasourcequeries.

[3]ServerAdministrationGuidep109

TheBusinessModelandMappinglayeroftheAdministrationTooldefinesthebusiness,orlogical,modelofthedataandspecifiesthemappingbetweenthebusinessmodelandthephysicallayerschemas.

[4]ServerAdministrationGuidep143

ThePresentationlayerprovidesawaytopresentcustomizedviewsofabusinessmodeltousers.PresentationCatalogsinthePresentationlayer(calledSubjectAreainOracleAnswers)areseenasbusinessmodelsbyOracleBIPresentationServicesusers.TheyappearascatalogstoclienttoolsthatusetheOracleBIServerasanODBCdatasource.

[5]ServerAdministrationGuidep138

LogicalforeignkeyjoinsmightbeneedediftheOracleBIServeristobeusedasanODBCdatasourceforcertainthird-partyqueryandreportingtools.Typically,youshouldnotcreatelogicalforeignkeys.ThiscapabilityisintheAdministrationTooltoprovidecompatibilitywithpreviousreleases.

[6]ServerAdministrationGuidep140

CAUTION:

Useextremecautionindecidingwhethertospecifyadrivingtable.Drivingtablesareusedforqueryoptimizationonlyunderrarecircumstancesandwhenthedrivingtableisextremelysmall(fewerthan1000rows).Choosingadrivingtableincorrectlycanleadtosevereperformancedegradation.

[7]ServerAdministrationGuidep115

SettingDefaultLevelsofAggregationforMeasureColumns

[8]ServerAdministrationGuidep125

Inabusinessmodel,adimensionrepresentsahierarchicalorganizationoflogicalcolumns(attributes)belongingtoasinglelogicaldimensiontable.

[9]ServerAdministrationGuidep129

NOTE:

Thelogicalcolumn(s)comprisingthelogicalkeyofadimensiontablemustbeassociatedwiththelowestlevelofthedimension.

[10]ServerAdministrationGuidep127

Grandtotallevel

[11]ServerAdministrationGuidep127

Levelkeys

[12]ServerAdministrationGuidep215

SettingaLoggingLevel

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

当前位置:首页 > 小学教育 > 小升初

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

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