BIEE入门(一)架构
BIEE作为Oracle的新的商业智能平台企业版,起源于Oracle所收购的Siebel公司,BIEE原来叫做Siebel Analytic,但是Siebel也不是它的发明者,它是Siebel在2001年收购的另一个公司叫nQuire software的产品,这个从它的配置文件的名称就可以看出来(NQSConfig,还一直保留着nQuire software的痕迹)。但是这个产品无论是在Siebel还是在Oracle都得到了发扬光大,我的理解是,也许它不一定是最好的BI工具,但是却是一个非常有创造力的工具,它对于物理层,逻辑层,展现层的理解和定义创造了一个非常简洁而清晰的数据模型,使用这个数据模型可以完整地连接企业内各个异构数据源和前台的业务使用人员,使商业智能真正能够在企业范围内得到大规模部署和使用:就是报表的“开发”以一种非常容易的方式交还给业务人员,他们就可以随时产生自己所需要的智能数据报表,而不是把需求再提交给开发人员,而开发人员,在定义好了商业智能的元数据之后,就可以避免对业务人员的连续不断的需求疲于应付了!请注意,这个并不是广告语,如果你真正理解了BIEE的架构和部署,你也会有相同的感觉的,所以,觉得BIEE前台报表开发过于简单的人也许并不理解这才是BIEE的真正优势! BIEE architecture BIEE的架构非常简单,如下图: 窗体顶端 窗体底端 窗体顶端 窗体底端 窗体顶端 窗体底端我觉得这这个架构里,最重要的最核心的应该是BI Server和由BI Server所操作的Repository。一般的数据仓库或者商业智能关心的一个核心问题是特定领域的分析数据模型的建模,这个建模的过程在BIEE里主要是通过BI admintool来进行,而整个建模的成果则是称之为repository的一个文件。BI admintool是一个图形工具,主要用于建立和维护repository,BIEE的repository相当于BIEE的元数据层,而且从很多信息来看很可能将会被作为未来Oracle的商业智能解决方案的中心元数据层,在Repository里主要包含了:
· 数据源的定义
· 多维数据模型的定义
· 业务展现层的定义
而整个元数据的定义可以清楚地看到数据如何从源头被一步一步地转换最终以业务人员能够理解的方式方式展现给最终用户,BIEE的repository设计得非常简洁和合理,分别对应于以上的大三个部分分为三个层次的定义:
· 物理层:对应于数据源的定义,可以建立多个不同系统的数据源,比如一个数据源时essbase,一个数据源是Oracle数据库,而另一个数据源时DB2。
· 逻辑层:从多个物理数据源里抽象出来的多维数据模型,主要为了业务需求服务,一般是一个星型模型或雪花模型,在逻辑层可以从多个物理数据源形成一个统一的单个多维模型。
· 表现层:把多维模型以业务的术语展现给最终报表建立的用户,从展现层的定义中我们不难发现,其实BIEE的开发主要集中于元数据层的开发,而最终报表和展现甚至可以让最终的业务用户自己来完成,这个也说明了BIEE的展现层开发是相当容易的!
BI Server(BI服务器)由admintool建立的Repository最终由BI Server来使用,BI Server运行的时候会打开Repository文件,分析服务通过配置文件NQSConfig.ini中的 Star=RPD文件名文件名来找到该数据模型定义文件。物理层和数据源作为一个BI服务器,BIEE的BI Server和传统意义上的Essbase或Oracle OLAP的地位并不相同,最大的差别是无论是Essbase或者是Oracle OLAP,本身都包含了数据的建模,存储,处理等服务,但是BIEE BI Server本身却并不存储数据,而只是“指向数据”,用户的分析请求会自动的由分析服务组织成合适的SQL发送到定义在物理层的数据源,由数据源执行,当然BI Server本身还可以对多个数据源返回的结果重新组织和“装配”,最后把组织装配后的结果返回展现层。作为源数据的提供者可以是普通数据库数据,关系型数据,OLAP服务,文本文件,excel文件,XML文件或者符合XMLA规范的数据源等等,当在物理模型里定义多个和多种类型的数据源的时候,数据源的多样性完全可以由逻辑层进行掩藏,从而最终的商业智能报表开发者或者使用者可以完全不知道最终的信息来源于多种不同的系统。当从关系数据库来导入数据模型的时候,一般而言事实表和维度表之间都存在着主外键的关系,在BIEE里创建物理层的时候可以通过导入的方式来把这些事实表和维度表之间的关系直接导入到物理层里,这样BIEE就可以在创建逻层的时候自动地认识到哪些是事实表,哪些是维度。但是维度的层次关系一般而言还是需要自己去定义;而从Essbase或者Oracle OLAP导入数据模型的时候就要容易一些,因为导入会把维度的层次关系直接从Essbase里抓出来,就不需要额外去建立维度的层次关系就可以直接使用Essbase里的设计了!
BI Presentation Service(BI展现层服务) BIEE的BI展现层是Web服务器的一个扩展模块,就如Siebel应用里的SWSE一样,BI展现层接收BI服务器的数据然后把把数据组织称HTML或者图表展现给最终用户,BI展现层也需要操作一个文件(catalog文件,以.webcat结尾),这个文件存储了用户通过管理界面定义的应用的dashboard,通过BI Anwsers定义出来的各种报表,以及这些仪表盘,报表和用户或者组的权限对应关系。
BIEE入门(一)架构的更多相关文章
- BIEE入门(三)业务模型层
正如它的名字所示(Business Model and Mapping Layer),业务逻辑层需要把物理层的数据源以一种业务用户的视角来重新组织物理层的各个数据源(所谓的Mapping),同时在业务 ...
- 入门MySQL——架构篇
前言: 上篇文章我们介绍了入门MySQL的基本概念,看完上篇文章,相信你应该了解MySQL的前世今生了吧.本篇文章将带你从架构体系来学习MySQL.我认为学习MySQL架构体系应该是入门阶段必须的, ...
- 从零入门 Serverless | 架构的演进
作者 | 许晓斌 阿里云高级技术专家 本文整理自<Serverless 技术公开课>,关注"Serverless"公众号,回复 入门 ,即可获取 Serverless ...
- Kafka(一)【概述、入门、架构原理】
目录 一.Kafka概述 1.1 定义 二.Kafka快速入门 2.1 安装部署 2.2 配置文件解析 2.3Kafka群起脚本 2.4 topic(增删改查) 2.5 生产和消费者命令行操作 三.K ...
- BIEE入门(二)物理层的定义
使用BIEE的第一步是使用admintool去建立一个多维数据模型,而建立多维数据模型的第一步则是建立物理层,请注意因为BIEE本身并不存 储数据,所以所谓BIEE物理层的意义是需要在BIEE里建立各 ...
- BIEE入门(四)展现层
BIEE里最终面向最终用户(业务界面使用者的)叫做BIEE的Presentation Layer也即展现层,展现层的定义将是最终用户Web报表开发界面里能够看见的完全一样的样子,所以展现层一般将是以最 ...
- Mybatis框架基础入门(二)--架构简介
mybatis配置 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息. mapper.xml文件即sql映射文件,文件中配置了操作数据库的 ...
- IBM总架构师寇文东谈程序员的职业规划
有些年轻的程序员向我咨询,将来的路该怎么走?俗话说,条条大路通罗马.不同的路都能走向成功,到底选择哪条路,取决于自己的兴趣.可能有程序员会问:如果还没有找到自己的兴趣怎么办?我的建议是多尝试,努力做, ...
- IBM 总架构师:话说程序员的职业生涯
作者:IBM 软件集团大中华区总架构师 寇卫东 有一些年轻的程序员向我咨询,将来的路应该怎么走?俗话说,条条大路通罗马.不同的路都能走向成功.到底选哪条路,取决于自己的兴趣.可能有程序员会问:如果还没 ...
随机推荐
- PHP 生成 MySql 数据库字典
项目说明 通过配置 MySql 数据库信息,使用 PHP 生成数据表字典可以输出在当前页面,可以生成文件保存在指定位置,也可以下载格式支持网页HTML格式.CSV格式(Excel 读取).ZIP压缩格 ...
- PHP 实时生成并下载超大数据量的 Excel 文件
//另外由于excel数据是从数据库里逐步读出然后写入输出流的所以需要将PHP的执行时间设长一点 //(默认30秒)set_time_limit(0)不对PHP执行时间做限制. set_time_li ...
- abp框架angular 项目docker 手动部署到Linux环境中
1.https://aspnetboilerplate.com/Templates 2.后端项目发布,在publish中abp默认已经存在DockerFile文件 3.修改后端文件中的DockerFi ...
- 江西理工大学南昌校区排名赛 B: 单身狗的数字游戏
题目描述 萌樱花是一只单身狗. 萌樱花今天初始化了N个数字,使它们都为0 0 0 0... 萌樱花决定选取某一个位置,分别增加1到N(如果到达数组末尾就从头开始). 比如: 0 0 0(选择第二个位置 ...
- 在python3.5中pip安装scrapy,遇到 error: Microsoft Visual C++ 14.0 is required
本来在python3.5中安装scrapy一路顺畅(pip install scrapy),中间遇到一个 error: Microsoft Visual C++ 14.0 is required. x ...
- C++中namespace的使用
命名空间(namespace)是一种描述逻辑分组的机制,可以将按某些标准在逻辑上属于同一个任务中的所有类声明放在同一个命名空间中.标准C++库(不包括标准C库)中所包含的所有内容(包括常量.变量.结构 ...
- 解决nginx文件服务器访问403
2018-10-24 nginx配置文件目录服务器 修改/etc/nginx/conf.d/default.conf或者在/etc/nginx/conf.d/目录下添加一配置文件,如下 server ...
- 论文阅读 | STDN: Scale-Transferrable Object Detection
论文地址:http://openaccess.thecvf.com/content_cvpr_2018/papers/Zhou_Scale-Transferrable_Object_Detection ...
- mysql PXC集群方案总结
同时写集群内的所有机器 写性能依赖最慢的那个机器 读性能提高X倍
- 转 LIST INCARNATION OF DATABASE
incarnation在英文中是“化身”的意思. 那么在oracle中,它又是什么意思呢?有什么作用呢? 我们看一些基本概念 Current Incarnation(当前化身):数据库当前正在使用的化 ...