使用BIEE的第一步是使用admintool去建立一个多维数据模型,而建立多维数据模型的第一步则是建立物理层,请注意因为BIEE本身并不存 储数据,所以所谓BIEE物理层的意义是需要在BIEE里建立各个源系统的描述:

·         如源系统的类型(各种关系数据库或各种多维数据库)

·         源系统的连接方式(指定所对应的源系统的连接信息,如用户名,密码,端口等)

·         以及导入源系统的数据的定义(源系统里表的结构,主外键关系等)

  定义物理层的方式是从file-》import。。。-》from database然后通过向导选择正确的数据库类型并输入连接信息。在最简单的时候,这样就可以完成整个物理层的定义了,接着可以继续进行逻辑层的定义工 作,但是其实物理层还是有一些额外的配置值得交代。

  物理层的额外配置

  数据源额外的物理层配置的第一个地方就是关于数据源的属性,因为BIEE被设计用于连 接各种各样的数据源,而每个数据源的特性都是不一样的,比如哪怕同样是关系数据库,Oracle和DB2的很多特性就不一样,为了能够充分发挥一个特定的 数据源的能力,BIEE的物理层数据源里允许人为配置数据源所支持的各种额外特性,如下图: 窗体顶端 窗体底端通过这样的配置,BI Server将可以充分使用不同数据源的各种能力,生产数据源所支持的特性的SQL来提高处理效率,但是对于配置这些属性还是要小心,因为如果配置了数据 源不能支持的属性,则在针对该数据源查询的时候将会返回错误!

  连接池物理层第二个需要说明的是:在import的时候,源系统的大部分数据结构和主外键信 息都会自动地输入到Repository里,而物理层通过一个连接池的定义来和源系统连接,BI Server使用连接池的定义和源系统进行连接,这个“连接池”和一般的应用服务器的连接池定义有相似之处,除了同样可以:

·         定义最大连接数

·         连接idle时间

·         交易隔离类型(如脏读,序列化等)

  还有一个有意思的地方是,可以定义连接数据源所需要执行的额外脚本,或者在执行查询之前和查询之后都可以定义需要额外执 行的SQL语句,如下图(点击查看大图): 窗体顶端 窗体底端

  这样就可以在每次查询之前或之后去执行一些特定的SQL语句,从而提供了更多的可能性。

  物理层的表物理层的第三个需要说明的地方是关于物理层表的 定义:物理层表的定义对应着数据源的真正的表,除了可以把源系统的表的各种定义属性导入到物理层,BIEE也提供了在物理层定义源系统所不存在的各种关系 的重新定义,如定义源系统所不存在的主外键关系来为星型模型做准备,还有一个特性是直接和BI Server的缓冲区直接相关,就是BI Server可以定义缓冲区,当第一次查询的时候数据可以缓冲中BI Server的缓冲区里,第二次查询将不再把查询发到数据源,而是可以直接使用缓冲区的数据,这样将能够有效地减少对于数据源的查询压力和提高查询性能, 特别是对一些更新没这么快的数据源而言是一个非常好的选择,如下图: 窗体顶端 窗体底端

  从这里你可以看到,其实BIEE的设计有很多地方还是非常好的!另外,也可以定义一个表使用SQL或者存储过程来生成,而不一定非要是一个实际存 在的物理表。最后需要对物理层进行说明的是关于表和表之间的关系:  我们都知道为了构建星型模型,在事实表和维表之间存在主外键关系是必要的,所以首先需要检查我们需要分析的源系统里的维表是否有主键(如果没有可以在物 理层里定义),然后还要通过物理关系图定义他们之间的外键关系来构建一个星型模型,如下图: 窗体顶端 窗体底端这个定义主要是通过一个类似画板的东西上进行划线来形成,这样就完成了物理层的定义。

BIEE入门(二)物理层的定义的更多相关文章

  1. Swift语法基础入门二(数组, 字典, 字符串)

    Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变 ...

  2. Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)

    原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问 ...

  3. css入门二-常用样式

    css入门二-常用样式总结 基本标签样式 背景色background-color 高度height; 宽度width; 边框对齐以及详细设定举例 width/*宽度*/: 80%; height/*高 ...

  4. IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)

    1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...

  5. C#中的特性 (Attribute) 入门 (二)

    C#中的特性 (Attribute) 入门 (二) 接下来我们要自己定义我们自己的特性,通过我们自己定义的特性来描述我们的代码. 自定义特性 所有的自定义特性都应该继承或者间接的继承自Attribut ...

  6. Netty入门二:开发第一个Netty应用程序

    Netty入门二:开发第一个Netty应用程序 时间 2014-05-07 18:25:43  CSDN博客 原文  http://blog.csdn.net/suifeng3051/article/ ...

  7. C#基础入门 二

    C#基础入门 二 循环语句 与C语言中用法相同. continue:结束本次循环(continue)后面的代码不再执行,进入下次循环(通常与if连用). 数组 一维数组定义:int[] intArra ...

  8. BIEE入门(一)架构

    BIEE作为Oracle的新的商业智能平台企业版,起源于Oracle所收购的Siebel公司,BIEE原来叫做Siebel Analytic,但是Siebel也不是它的发明者,它是Siebel在200 ...

  9. MySQL概述及入门(二)

    MySql概述及入门(二) MySQL架构 逻辑架构图: 执行流程图: MySQL的存储引擎 查询数据库支持的存储引擎 执行: show engines: 多存储引擎是mysql有别于其他数据库的一大 ...

随机推荐

  1. Windows10 下安装配置IIS + MySQL5.7.19 + nginx1.12.1 + php7.1.7

    环境: VMWare Workstation Player12 Windows10 Pro x64 一.安装系统 vmware 会采用 fast install 方式很快装完,无需配置什么. 二.配置 ...

  2. PHP sprintf() 函数

    PHP sprintf() 函数 先说下为什么要写这个函数的前言,这个是我在微信二次开发的一个token验证文档也就是示例文档看到的一个函数,当时非常不理解,于是查了百度,但是很多结果都很笼统,结果也 ...

  3. 解决Android SDK Manager 更新下载慢以及待安装包列表不显示

    问题描述: Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示 解决方法: 第一步:修改hosts文件 修改后的hosts 文件内容为: 127.0.0.1 ...

  4. python中变量,常量

    1.变量 变量的作用:一个变化的值 把程序运算的中间结果临时存到内存里,以备后面的代码继续调用,这几个名字的学名就叫做“变量“ 查看变量在内存中的位置用id(name) 变量定义规则: 变量名只能是 ...

  5. Tesorflow-自动编码器(AutoEncoder)

    直接附上代码: import numpy as np import sklearn.preprocessing as prep import tensorflow as tf from tensorf ...

  6. jquery将日期转换成指定格式的字符串

    引用jquery文件,如<script type="text/javascript" src="jquery-1.8.3.min.js"></ ...

  7. PIXI AnimatedSprite 及打字爆炸动画(5)

    效果 : 消除字母 当前位置出现爆炸效果 这里使用到了AnimatedSprite 动画  Members An AnimatedSprite is a simple way to display a ...

  8. oracle 备份恢复篇(三)---rman spfile的丢失

    一,环境准备 1, 拥有全备 数据 2, 查看spfile文件位置 SQL> SQL> SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER ...

  9. shell 函数与内置变量

    1,特殊shell变量 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数 $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的ID号 $@ 与$*相同,但是使用时加引 ...

  10. [转]win7 如何升级PowerShell

    本文转自:http://www.cnblogs.com/wenBlog/p/6198354.html 背景: 开发的PowerShell 脚本需要使用Invoke-RestMethod命令,发现在老的 ...