essbase+BIEE__学习笔记
- 格式:ppt
- 大小:5.08 MB
- 文档页数:93
BIEEOracle BIEE(简称BIEE)作为Oracle的新的商业智能平台企业版,起源于Oracle所收购的Siebel公司,BIEE原来叫做Siebel Analytic。
Oracle BIEE是一个非常有创造力的工具,它对于物理层,逻辑层,展现层的理解和定义创造了一个非常简洁而清晰的数据模型,使用这个数据模型可以完整地连接企业内各个异构数据源,从而使商业智能真正能够在企业范围内得到大规模部署和使用。
BIEE:Oracle Business Intelligence Enterprise Edition Oracle 在05年底收购Siebel,取其前端开发工具Siebel Analytics作为Oracle BI的新平台。
区别原Discoverer起见,称为Enterprise Edition,而原来的Discoverer就变成了Standard Edition了。
二者各取部分结合,加个xe,于是又有所谓的Standards Edition One.这就是OBIEE、OBISE和OBISE ONE的简单缘起。
07年Oracle收了Hyperion,于是取Hyperion BI的部分组件,合并升级为现在的OBI EE Plus。
BIEE的数据模型分为3层:1、物理层Physical,用于定义和连接各类异构数据源,如关系型数据库、符合XML规范的源数据、OLAP服务、Essbase、Excel等,具体定义数据源物理表结构、字段数据类型、主外键。
可简单理解为“物理表定义”。
值得一提的是,BIEE只是保存定义,并没有存储数据本身。
物理层通过“连接池”、“缓存查询结果”等技术来提高性能。
2、逻辑层Business Model and Mapping,基于物理层构建的DW多维数据模型如星型模型或雪花模型,以及定义逻辑模型与物理模型间的映射关系。
需要定义事实表和维度表的主外键关系,可以定义维度表的层次和事实表的度量。
Essbase基本概念和使用注意事项一、Essbasee中的相关概念1、block:各维度做为边所组成的一个立方体就是block块,而其中的每个小块称之为cell;2、 Dense维和Sparse维:数据是以包含数值的单元格的形式存储在多维数据库中。
共有两种维度存储方式,dense维(密集维)和sparse 维(稀疏维)。
a.Dense维是主要是通过数据块的形式统一存储,会占用相对较多的存储空间,因此当该维数据比较密集,分布比较均匀时,方才用dense维。
b.sparse维是主要通过索引的形式来找到较为分散存储,这样就不会使太多的空块占用我们宝贵的存储空间,一般是数据较少,分布较不均匀的为sparse维。
3、关于维度有几个注意的概念:a、维度的类型:标准维和属性维时间维:用于标识时间维度,一个outline 中一般只设置一个时间维度,用于计算一些跟时间相关的量度,其标识是 Time;使用该设置的成员是从你的Application中定义的基本流通中分割出本地流通成员;两次计算标识:该member会被计算两次,对属性维该标识无效;b、Generation:鉴别成员的分支。
Generation用一种特殊的观点描述了成员的在Outline 中的层次定位。
代的数字定义了成员与它的维的距离分支。
Generation从维的顶端至下开始递加, number至少为2;c、Duplicate Generation:复制层,定义被设置为DuplicateGeneration的列导入outlines后,在outlines中他下面的成员与和他具有相同number,即与通过Generation导入的列下面的成员一模一样(共享);d、Level:定义成员的分支。
level 从维的叶子开始至Root 递加,Root Level值的不同依赖于分支的深度。
Number从0开始,叶子为level0;e、Alias:定义与它的number相同的某个generation列或level列的成员别名;f、Formula:定义与它的number相同的generation列或level列的成员公式;g、Duplicate Level:同Duplicate Generation,共享列成员;h、Parent和Child:在使用父子关系的成员列中用,一般用在递归表中。
最近boss让做项目,借机学习了一下Hibernate,小有收获。
hiberante是对数据库持久层访问的一种机制,hibernate的应用可以使程序员将重点放到业务逻辑的实现上。
hibernate的原理是将数据库结构封装,使程序员可以像使用普通对象一样调用数据库的相关接口,从实现数据库的相关操作。
由于Exadel基于eclipse集成了Hibernate,并且方便易用所以我选用Exadel+Mysql还需要hibernate3.jar mysql-connector /downloads/在Mysql中新建test数据库(Mysql其实有个空的test数据库),然后新建下面的Tablecreate table user (id int(10) not null auto_increment primary key,name varchar(20) not null,password varchar(20) not null,email varchar(50),address varchar(100))type=innodb;新建Java Project,将Mysql_Driver,Hibernate两个user library添加到该工程的java build path中。
新建与数据表对应的POJO类:User和Contact/*****/package er;/*** @author lzy**/public class User{private Integer id;private String name;private String password;private Contact contact;/*** @return Returns the id.*/public Integer getId() {return id;}/*** @param id The id to set.*/public void setId(Integer id) { this.id = id;}/*** @return Returns the name.*/public String getName() {return name;}/*** @param name The name to set.*/public void setName(String name) { = name;}/*** @return Returns the password.*/public String getPassword() {return password;}/*** @param password The password to set.*/public void setPassword(String password) { this.password = password;}/*** @return Returns the contact.*/public Contact getContact() {return contact;}/*** @param contact The contact to set.*/public void setContact(Contact contact) { this.contact = contact;}}/****/package er;/*** @author lzy**/public class Contact {private String email;private String address;/*** @return Returns the address.*/public String getAddress() {return address;}/*** @param address The address to set.*/public void setAddress(String address) { this.address = address;}/*** @return Returns the email.*/public String getEmail() {return email;}/*** @param email The email to set.*/public void setEmail(String email) {this.email = email;}}添加Hibernate支持,这时系统会要求输入一些信息,按提示即可完成后系统自动生成hibernate.cfg.xml,User.hbm.xml映射文件必须稍作修改。
1 Basis1. Unix操作更改口令passwd eg. passwd orap34看当前路径 pwd 看sap或者oracle的进程e g. ps -ef|grep sap或者 ora看命令的使用方法,相当于DOS中的help命令eg. man xxx更改当前用户su eg. su – orap34查看cluster lssrc –g cluster看文件大小df –k看有哪些用户who看文件内容morevi编辑器vi查看服务器地址netstat –in新建目录mkdir192.167.17.1 db内部地址192.167.17.2 app内部地址192.167.17.3 tsm内部地址进入tsm管理界面dsmadmc(admin : admin)使用orap34 用户运行sapdba,以扩展表空间: su –orap34sapdbac-----a-----……当数据库备份失败,oracle启动不了的时候sapdba----j---a----a----y当sap*用户密码忘记时:sqlplus /nologconnect sapr3/sap 或者connet system/managerdesc r02;delete from r02 where mandt = ‗420‘ and bname = ‗sap*‘;commit;登陆sqlplus :sqlplus /nologconnect /as sysdba在PC机上从app上以二进制方式获取文件:c:ftp 10.124.4.71cd xxxbinget xxx生成错误报告:erppt –a|> xxx.txt将系统面板警告灯熄灭:diag-----task selection-----identify and attention indicat ors-----setsystem attention indicators tonormal回车-----F7使用p34adm用户关停sap ,改系统参数时使用root用户开关h a ,当选择takeover时,ha会自动切换(从db切换到app)当选择graceful时,ha不会自动切换IBM中国24小时服务热线:800-8106677 / 800-8101818-5100AIX 系统命令物理卷命令命令名称说明lsdev 列出ODM中的设备chdev 改变设备的属性mkdev 增加一个设备chpv 改变物理设备的状态lspv 列出卷组中一个物理卷的信息migratepv 将分配好的物理分区从一个物理卷移动到另外一个或多个物理卷中卷组命令命令名称说明mkvg 创建一个新卷组extendvg 将一个物理卷加到一个卷组中reducevg 在一个卷组中删除物理卷chvg 改变一个卷组lsvg 显示一个卷组的信息importvg 安装一个卷组exportvg 删除一个卷组reorgvg 重组织一个卷组syncvg 同步一个卷组varyonvg 使一个卷组可用varyoffvg 使一个卷组不可用逻辑卷命令命令名称说明mklv 创建一个逻辑卷lslv 显示一个逻辑卷的信息rmlv 删除一个逻辑卷extendlv 扩大一个逻辑卷chlv 改变一个逻辑卷mklvcopy 对一个逻辑卷增加拷贝rmlvcopy 对一个逻辑卷删除拷贝文件系统命令命令名称说明chfs 改变一个文件系统的属性crfs 增加一个文件系统lsfs 显示一个文件系统的属性rmfs 删除一个文件系统mount 设置一个可用文件系统fsck 检查和修复文件系统umount 卸载一个可用文件系统、目录或文件df 显示一个文件系统空间使用情况交换空间管理命令名称说明chps 改变一个交换空间的属性lsps 显示一个交换空间的属性mkps 创建一个附加的交换空间rmps 删除一个不活动的交换空间swapon 激活一个交换空间用户管理命令名称说明mkuser 创建一个新用户chuser 改变用户属性(密码除外)lsuser 显示用户属性rmuser 删除一个用户chsec 改变安全属性dtconfig 改变自动启动桌面的特性其他命令名称说明startsrc 启动一个子系统或子系统群或子服务stopsrc 停止一个子系统或子系统群或子服务refresh 告诉一个子系统或子系统群进行自我更新lpstat 显示当前打印机信息qchk 显示当前打印任务或打印队列的状态信息1.1. 小型机开停机操作手册开机:1. 打开主阵列电源开关,间隔三分钟之后打开从阵列电源开关2. 打开扩展磁带机(两台),然后开磁带库3. 先开DB(570),然后开APP(570)4. 最后开TSMSERVER(520)关机:1. 关闭TSMSERVER2. 关闭APP,随后关闭DB3. 关闭磁带库,关闭两台扩展磁带机4. 先关闭从阵列电源开关,间隔三分钟关闭主电源开关启动HACI和DB会随着cluster一块被启动起来:telnet 10.124.4.70smitty clstartlssrc –g clusterAI也会被带起来:telnet 10.124.4.71smitty clstartlssrc –g cluster停止HAtelnet 10.124.4.71smitty clstop 选择gracefulshutdown –Ftelnet 10.124.4.70smitty clstop选择gracefulshutdown –F当db想要切换到app时,app不做任何动作,注意千万不能停cluster,应该直接在db上以takeover的方式停掉db的cluster,则db上的db和ci就会自动切换到app上了,与此同时,ai被杀掉了。
AB—PLC自学笔记一以前断断续续的学了一点,但大多是三天打鱼两天晒网;也参加了一次培训,但是短短的课程、大量的产品介绍和难得的上机实验,很快就忘记了学了点啥。
翻开以前的学习记录,零散而杂乱,不少要点看上去是那么陌生。
也罢,再来一次打鱼又如何?第一步,安装软件。
手上有去年培训的时候从老师那里搞来的16版本的logix5000,以前也安装过,里面有很好的英文语音教学,当时老师开玩笑说,可以锻炼下听力。
安装完logix5000V16,再安装一个模拟器软件:Emulate,安装过程中告诉我需要rslinx,昏,看来安装次序错鸟。
其实在安装logix5000的过程中,最后一些小工具的安装也提示我需要rslinx的,被我忽略了。
于是安装rslinx,再安装emulate。
最后一步,把网上找来的授权导入。
发现用老版授权的话,软件第一次运行会提示你,现在16版本采用所谓的factorytalk管理授权了云云,我不管,反正能用就行。
接下来的问题就是,怎么用这个模拟器?以前用过,但是忘鸟。
只记得要选择一个特殊的硬件,还好有份模拟器的使用手册,简单看了下几个插图就回忆起来了,试了下,ok。
个人觉得ab的emulate有点别扭,因为用惯了西门子的plcsim,那个不需要选择什么特殊的硬件,原工程就可以很仿真的download下去去模拟运行。
而ab的东东,却不能用真正的硬件配置,那么一个实际个工程文件必须修改下controller才能去仿真了???万事具备,就开始学习软件吧,从何入手呢?先找几个自己感兴趣的问题研究研究吧。
先看看变量的定义,ab的独特之处就包括tag是以名称作为关键“索引”,没有西门子那种地址的概念,这样当然简化了开发。
那么如何批量的导入/导出变量呢?我用s7的编程习惯是在excel里面编辑好变量表,再导入到程序里面。
在logix5k软件里面找了下,果然可以,tools菜单下有import和export,试了下,跟西门子的symbol table一样,都是以csv文件保存的,不过也发现了中文注释偶尔会变“乱码”。
Essbase Classic Edition基础讲解EssBase 组件:1.服务器端∙Essbase Analytic Services:Essbase 的核心引擎和计算内核;∙Essbase Administration Services:Essbase 系统管理员界面,用于构建Essbase 数据模型(Outline)、装载和计算数据,并用于数据库调优;同时包括MaxL 和EssCmd 脚本工具,用于采用命令行脚本或自动化执行管理任务;∙Essbase Deployment Services:部署服务(不包括高并发选件-HighConcurrency Option)∙Essbase API2.客户端包括∙Spreadsheet Add-In:用于与MS Excel 整合的插件∙Essbase Runtime Client:客户端运行环境,用于其它第三方工具连接Essbase 数据库3.Essbase Classic Edition常用选件∙Essbase SQL Interface:用于Essbase 直接通过SQL 访问关系型数据库;Essbase Partition:包括Essbase 支持的三种分区模式,复制分区、透明分区∙和链接分区;∙Essbase 混合分析(Essbase Integration Services)混合分析将关系数据库与Essbase 数据库集成,将关系数据的容量和扩展性与多维数据库的抽象分析能力结合在一起。
混合分析不需要在Essbase 中存储低级成员和数据,实际上就排除了框架的容量限制并为大量数据提供了快速分析能力。
4.Essbase 根据请求的类型,采用不同的方式处理:∙管理服务请求,如登录和退出,启动或停止应用和数据库,查看用户安全信息等,由Essbase 代理服务器(ESSBASE)处理。
∙客户端对数据的请求,如数据加载,计算电子表格报表,数据加锁开锁等,由应用服务器(ESSSVR) 处理。
OBIEE 学习总结之提高Company Confidential - For internal use onlyBiee 的变量分几种(库变量,会话变量,介绍变量,请求变量,Biee 内部定义的变量不说了),用起来经常让大家糊涂,再此做个总结,有异议的地方请消息给我·· 欢迎讨论~现在开始吧,Administrator tool -Manage-Variable 下图~这里是模型RPD 定义变量的地方,也就是所定义的变量名都是保存在RPD 模型中,Variable 所定义的变量类型分为两大类,一种是Repository(库变量),另外一种是Session(会话变量)。
其中Repository 分两种变量的类型:Dynamic(动态变量)和Static(静态变量)Session 也分两种变量类型:System(系统变量)和Non-System(非系统变量)现在说一下库变量的用途,库变量的Static(静态变量)经常是作为项目需求中经常用的固定值做为这个静态变量值的,举个例子:如果一个项目中有10个Dashboard ,每个Dashboard 有10个page ,每个page 的下标都需要带上公司的版权注释,当公司被收购了版权需要更改的话怎么办,改一百次版权信息?这里如果用静态变量的话就方便多了,只需修改变量对应的缺省值就可以了。
用法如图:建立一个Static 的Repository Variable变量名为SRV缺省值为222050000,其中要注意一下类型Type,因为是静态的,所以不需要初始化块。
在前端直接就可以调用了命名必须和静态变量的名称相同(不用解释吧)~看一下效果OK ,调用静态的库变量成功。
这里需要注意一下,表达式和筛选调用库变量的时候是可以VALUEOF('SRV')来引用,而其他地方调用的话例如文本:需要这么写@{biServer.variables['SRV']}。
BIEE集成Essbase解决方案(附RPD)经过一段时间的研究,BIEE集成Essbase数据终于有了些结论出来。
最早提出该问题是做Hyperion预算模块时,由于WA的报表无法非常理想的展现预算的要求,所以期待能把WA的报表做到BIEE中来,也就是说用BIEE集成Essbase来展现Essbase的维度和数据。
我们专门咨询过Oracle,他们目前对于BIEE集成Essbase也是一筹莫展,甚至他们告诉我们,也许11g的BIEE或许会有比较好的解决方案出来。
下面将我的研究成果及一些问题的解决方案分享给大家。
做BIEE的同志们都知道,多数情况下BIEE的数据源都是Oracle——关系型数据库。
但是在导入数据源的选项中有Essbase,这就说明BIEE是可以导入Essbase的。
经过测试发现,BIEE10.1.3.3可以导入Essbase9.3.1,对于Essbase9.2.1确是不支持的。
不过据某些朋友说Essbase9.2.1他们是可以导入的,我就不是非常清楚了...好言归正传!1. BIEE集成Essbase解决方法1.1. ESSBASE层次变更问题背景:ESSBASE导入到BIEE中后,维度层级都是自动生成,Level Counts也是固定的;此时如果ESSBASE中某个或多个维度层级发生了变更,比如增加或删除一个或多个层级,那么在BIEE中是没法像展现Oracle那样添加一个Level就会OK的。
经过多次测试,发现手动添加的Level都会存在问题(如前台报表设置筛选器时显示检索数据错误,管理工具中Warning维表未与事实表关联等),虽然报表可以勉强用,但都不能完美的解决添加Level的问题。
删除亦是如此。
解决方案:在导入ESSBASE之前,先估计下各个维度(Scenario除外,原因参见1.2.Account维设置)的最大层级数Max_Level,一定要保证即使需求变更,需要增加层级也不会超过Max_Level(每个维度均会有一个Max_Level),添加后代——TempDescendants直到维度Level Counts到Max_Level将ESSBASE导入到BIEE中,此时BIEE中的各维度Level Counts为对应的Max_Level按照需求做好BI层模型和Presentation层模型删除ESSBASE中TempDescendants此时无论在ESSBASE中添加或删除一层或若干层,在BI Administration Tool中,只需将BI 层中的对应层次字段拖到Presentation层中或将Presentation层中的对应字段删掉即可。
ESSBASE的使用及性能优化计算脚本相关Essbase中,一个指标可以通过计算公式调用自己得到,用@SHIFT函数实现。
如:B C-------B1 C1B2 C2B3 C3…其中,C2=C1+B2;C3=C2+B3 …那么,指标C就可用公式:@SHIFT(C,-1)+B来实现。
数据加载不进的问题,某个维存在空值的情况,或事实表数据没有清洗干净,报错如下:不选时间维的计算公式:IF(@ISGEN("sj",1))#MISSING;ELSEqmqsye-bqxzqs;ENDIF;ESSBASE求百分比指标:number%number->Year->Market->Product->Scenario;求同期值公式:IF(@ISGEN("D_Date",6))(@MDSHIFT(set01, -36,"D_Date",@GENMBRS ("D_Date",6)));ELSEIF(@ISGEN("D_Date",5))(@MDSHIFT(set01, -12,"D_Date",@GENMBRS ("D_Date",5)));ELSEIF(@ISGEN("D_Date",4))(@MDSHIFT(set01, -4, "D_Date",@GENMBRS ("D_Date",4)));ELSEIF(@ISGEN("D_Date",3))(@MDSHIFT(set01, -2, "D_Date",@GENMBRS ("D_Date",3)));ELSEIF(@ISGEN("D_Date",2))(@MDSHIFT(set01, -1, "D_Date",@GENMBRS ("D_Date",2)));ENDIF;求前期值公式:IF(@ISGEN("D_Date",7))@MDSHIFT(set01, -1, "D_Date",@GENMBRS ("D_Date",7));ELSEIF(@ISGEN("D_Date",6))@MDSHIFT(set01, -1, "D_Date",@GENMBRS ("D_Date",6));ELSEIF(@ISGEN("D_Date",5))@MDSHIFT(set01, -1, "D_Date",@GENMBRS ("D_Date",5));ELSEIF(@ISGEN("D_Date",4))@MDSHIFT(set01, -1, "D_Date",@GENMBRS ("D_Date",4));ELSEIF(@ISGEN("D_Date",3))@MDSHIFT(set01, -1, "D_Date",@GENMBRS ("D_Date",3));ELSEIF(@ISGEN("D_Date",2))@MDSHIFT(set01, -1, "D_Date",@GENMBRS ("D_Date",2));ENDIF;国税求同期值公式:IF (@ISGEN ("时间",5)) "去年同期欠缴税额"=@PRIOR ("本期欠缴税额",365,@genmbrs("时间", 5));ELSEIF (@ISGEN ("时间",4)) "去年同期欠缴税额"=@PRIOR("本期欠缴税额",12,@genmbrs("时间", 4));ELSEIF (@ISGEN ("时间",3)) "去年同期欠缴税额"=@PRIOR ("本期欠缴税额", 4,@genmbrs("时间", 3));ELSEIF (@ISGEN ("时间",2)) "去年同期欠缴税额"=@PRIOR ("本期欠缴税额",1,@genmbrs("时间", 2));ENDIF;国税求前期值公式:IF (@ISGEN ("时间",5)) "上期欠缴税额"=@PRIOR ("本期欠缴税额",1,@genmbrs("时间", 5));ELSEIF (@ISGEN ("时间",4)) "上期欠缴税额"=@PRIOR("本期欠缴税额",1,@genmbrs("时间", 4));ELSEIF (@ISGEN ("时间",3)) "上期欠缴税额"=@PRIOR ("本期欠缴税额", 1,@genmbrs("时间", 3));ELSEIF (@ISGEN ("时间",2)) "上期欠缴税额"=@PRIOR ("本期欠缴税额",1,@genmbrs("时间", 2));ENDIF;Unix下后台启动和停止Essbase服务启动命令:nohup ESSBASE password -b &停止方法:手动:交互式,在esscmd中用shutdownserver命令,根据系统提示完成。
Essbase 操作讲解Essbase操作讲解2010-04-28 15:158.1实现一个多维模型在这一节我们描述如何使用DB2 OLAP或Hyperion Essbase来实现一个基本的多维模型。
首先我们用Outline Editor手动定义这个模型,然后展现如何通过外部的输入文件或表和所谓的数据加载规则来建立模型。
在定义模型后,我们通过加载和计算的程序来引导。
8.1.1 TBC销售模型简介例子是假设的饮料行业中的一个公司。
这个公司的主要产品是各种类型的饮料(例如:果汁饮料,乳酪苏打和乳液)。
这些产品出售到美国市场,根据城市、州进行区域分类。
我们的模型将用来分析财务据,例如所售商品的销售和费用。
这些数据每月收集,一年或者是一季度汇总。
初始的维度模型如下图所示。
TBC销售的初始模型创建和加载在上图中表示的模型的DB2 OLAP(或者Essbase)立方图,有三个主要的步骤:1.定义模型可用两种不同的方法实现:●手动●由外部数据源驱动自动产生2.加载数据3.计算数据8.1.2手动创建数据库outline在这部分我们介绍怎样手动创建简单的TBC销售模型,按照以下几步:1.启动DB2 OLAP服务器2.打开DB2 OLAP服务器应用程序管理器3.连接DB2 OLAP服务器4.创建一个新的应用程序5.创建一个新的数据库6.创建维7.创建每个维的成员8.定义名称及成员9.存盘通过打开命令窗口并键入:Essbase,启动DB2 OLAP服务器接着输入DB2 OLAP服务器密码,并按回车或者在Windows NT开始菜单选择Program=Essbase Application Manager。
(提示:DB2服务器可以作为一个Windows NT服务自动启动)从Windows NT开始菜单中依次选择Programs=DB2 OLAP Server=Essbase Application Manger打开DB2 OLAP管理窗口,并通过选择Server=Connect来连接DB2 OLAP服务器(见下图)。
1.关系数据库与Essbase多维数据库导航并传递参数以下将举例介绍如何实现数据来自不同数据库类型的功能,即实现数据的多来源。
1.1.实现费用分析表导航到日记账明细表提示器:专业费用:日记账明细表:其中‘专业费用表’数据来自于ESSBASE数据库,‘日记账明细表’数据来自于Oracle关系型数据库。
实现功能:点击专业费用的实际金额值,导航到日记账明细表,同时传递维度参数‘部门’,‘科目’,‘月份’以及提示器参数‘年份’,‘部门’,‘区间’。
对应模型:专业费用来源:日记账明细来源:日记账数据来源于表ODS_F_DETAIL_V,对应物理层模型如下:可以看到现在在BIEE模型中物理层分别有ESSBASE维度模型和Oracle关系数据库模型,在物理层这两个模型是独立的,为了传递参数我们可以在逻辑层作如下设置:1.把表ODS_F_DETAIL_V拖到逻辑层’alibaba’模型中2.针对‘月份参数’,把’D_PERIOD’表从物理层拖到逻辑层’Period’维度中,可以看到,这时候在’Sources’中就有了’D_PERIOD’表,双击’D_PERIOD’,手动设置‘月份’映射到物理层表’D_’。
3.打开逻辑层映射关系,使用复杂链接关联’Period’维度和’ODS_F_DETAIL_V’事实表。
将所有需要关联的维度做相同的处理,最终的逻辑层结构如下图:这样当请求条件中同时包含Essbase维度和关系数据库维度时,相应的Essbase维度会到关系数据库做查询;当请求条件中仅仅包含Essbase维度时,所有查询语句均来自Essbase数据库。
这样实际上就实现了数据的多来源。
我们在请求中使用月份维度测试:其中第一列是Essbase数据库维度,第二列是关系表’ODS_F_DETAIL_V’的月份字段,结果:BIEE发出的查询代码如下:select distinct as c1,substr(T28040.PERIOD_NAME , 6 , 2) as c2fromD_PERIOD T46533,ODS_F_DETAIL_V T28040where ( T28040.PERIOD = T46533.MEMBERNAME )order by c1, c2可以看出,查询的结果都来自于关系数据库。