Essbase 基本概念
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Essbase Classic Edition基础讲解
EssBase 组件:
1.服务器端
∙Essbase Analytic Services:Essbase 的核心引擎和计算内核;
∙Essbase Administration Services:Essbase 系统管理员界面,用于构建Essbase 数据模型(Outline)、装载和计算数据,并用于数据库调优;同时包括MaxL 和
EssCmd 脚本工具,用于采用命令行脚本或自动化执行管理任务;
∙Essbase Deployment Services:部署服务(不包括高并发选件-HighConcurrency Option)
∙Essbase API
2.客户端包括
∙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) 处理。
5.Essbase 启动
∙命令行方式
进入Command 模式,然后输入Essbase,系统提示输入口令,输入正确口令即可。
∙通过控制面板=>服务
启动Essbase Service 服务。
只需在Command 方式下键入Essbase –Service install 即可将服务添加至“控制面板―》服务”中,这样就可以避免每次启动Essbase 输入密码;通过Essbase–service remove 可以将服务从“控制面板―》服务”中删除。
----------------------------------------------------------------------------------------------------------------------EssBase 基础
1.基本概念
维(Dimension):在数据库轮廓结构(Essbase Outline)中,维是最高级别的归并级。
数据库轮廓将其成员以书写上的凹进方式逐级列出构成树型结构,用以表达某种归并关系。
Essbase具有两种维:标准维和属性维。
标准维表达的是商业计划的核心组件,常常是和部门的业务功能有关。
其中,时间,账号,产品线,市场以及部门等,都是标准维的实例。
维在大多数数据库中是静态的;数据库的维,很少有随着应用的不同经历而有变化的情形。
属性维是一种特别类型的维,通常是和标准维联系在一起的。
通过属性维,可以对标准维的成员进行组合与分析。
这种分析是根据成员的属性(即特征)进行。
例如,你可以对同一产品的不同包装的赢利加以比较。
属性维必须与标准维有关联。
Hyperion Essbase 并不存储关于属性维的数据,不分配内存,而仅仅在用户需要时才动态地计算这些数据,属性维总是离散且与标准的sparse关联。
成员是维度的一个具体的成分,例如,Product A, Product B,和Product C 就可以是Product维的成员。
每个成员具有唯一的成员名。
每个维可以拥有无限多个成员。
Hyperion Essbase可以存储与某个成员相关的数据(这类数据称之为存储成员),或者只是在使用者需要时才动态地计算出所需要的数据。
所有的分析数据库开发都从创建数据库大纲开始,数据库大纲主要是定义成员间的结构关系,组织数据库中的数据,定义各部分的归并和数学关系。
2.Dense 维与Sparse 维
数据是以包含数值的单元格形式存储在多维数据库中。
标准维根据数据的分布,可分为Dense维(密集维)和Sparse维(稀疏维),以用最小的内存和磁盘来加速数据获取。
∙Dense维主要是通过数据块的形式统一存储,会占用相对较多的存储空间,因此当该维数据比较密集、分布比较均匀时,方才用dense维。
∙Sparse维主要通过索引的形式来找到较为分散存储,这样就不会使太多的空块占用宝贵的存储空间,一般是数据较少,分布较不均匀的为sparse维。
大部分多维数据库都是sparse的,Because not every product is sold in every market,Market and Product are chosen as sparse dimensions。
A sparse dimension is a dimension with a low percentage of available data positions filled。
A dense dimension is a dimension with a high probability that one or more data
points is occupied in every combination of dimensions。
3.维度成员间关系
Generation:鉴别成员的分支。
Generation用一种特殊的观点描述了成员的在Outline 中的层次定位。
代的数字定义了成员与它的维的距离分支。
Generation从维的顶端至下开始递加, number至少为2;
Level:定义成员的分支。
level 从维的叶子开始至Root 递加,Root Level值的不同依赖于分支的深度。
Number从0开始,叶子为level0;
4.OutLine 中的维度
量度维:用于识别OLAP 量度,一个outline 中一般只设置一个量度维,量度维下面可以有多个量度,其标识是Accounts;
时间维:用于标识时间维度,一个outline 中一般只设置一个时间维度,用于计算一些跟时间相关的量度,其标识是 Time;
属性维:以标准维为基础来汇报和合计数据,不占存储空间,其标识是Attribute;标记该维的几点注意:
(1)应标记一个稀疏维作为attribute维;
(2)在存储outline 以前,必须要将每个attribute 维与标准维联系;
(3)attribute维在outline中必须是最后一个维;
(4)attribute维可以设置类型(boolean、numeric、text、date)。
5.存储相关概念
Block:各维度作为边所组成的一个立方体就是block块,而其中的每个小块称之为cell; Dense维中成员的数量决定了block块中cell 的数量,Sparse维中成员的数量决定了block的数量,他们共同组成了一个多维库。
6.两种存储模式
Aggregate storage is the Essbase database storage model that supports large-scale,sparsely distributed data that is categorized into many,potentially large dimensions。
Selected data values are aggregated and stored,typically with improvements in aggregation time。
Aggregate storage is an alternative to block storage (dense-sparse configuration)。
Aggregate Storage
●支持快速聚合,针对多维和离散数据进行优化
●每个应用只支持一个DataBase
●成员只支持+~操作符,没有公式
●不支持计算脚本
●不支持Data mining、unicode 等
Block Storage
由DenseSparse 维构造块,针对金融应用优化支持多个DataBase
分析服务应用2 种内部结构来存取数据:数据块和索引系统。
------------------------------------------------------------------------------------------------------------------ Essbase 数据库开发
一、基本步骤
Hyperion Essbase 数据库的开发,都是以创建数据库轮廓结构(Outline)为主。
其开发主要步骤如下:
∙创建Essbase应用(ASO或BSO),建立数据库;
∙创建Outline,定义各成员在Hyperion数据库中的结构关系;
∙定义各个维成员之间的归并关系和数学关系;
∙建立Rule文件进行Member Loading和Data Loading;
∙建立计算脚本,执行计算;
∙预览Cube数据,根据情况调整Memory分配
Hyperion Essbase利用成员概念表达数据的层系。
每个维由一个或多个成员构成。
成员又可以拥有自己的成员。
在生成某个维时,要告诉Hyperion Essbase 应如何归并它的成员的值。
在数据库轮廓的树形结构中,归并(consolidation)是在树的某个分支上进行,其结果是该分支的一组成员。
例如,很多商业活动都是按月统计数据,再根据月数据得到季度统计,最后得到全年统计数据。
很多商业活动也常常是先按邮正编码,再按城市,最后按省(州)汇总数据。
任何维都可以用于归并数据,以产生所需要的报告。
例如,在随同Hyperion-Essbase 数据库系统而配发的样本BASIC 数据库中,年(Year)维就由5 个成员构成:四个季度(Qtr1,Qtr2,Qtr3,Qtr4)数据外加一个全年总计数据。
而Qtr1又由四个成员构成:一至三月(Jan,Feb,Mar)的月数据外加整个一季度的总计数据。
类似地,Qtr2,Qtr3,Qtr4 也具有同样的成员结构。
创建Essbase 应用
启动Administration Console
登录连接Essbase Server,默认用户名admin,密码为password,输入启动Administration Service 的机器名或IP。
创建应用及数据库
建立数据模型(Outline)
创建Rule 文件
维度数据加载完成,接下来 data loading。
因为指标的统计是对最细节的数据作计算,所以我们所写 sql 语句,只需包含最底层的数据即可。
member 装载与 data 装载的相同点都是从数据源(关系数据库)中取得数据,但是 member 装载后的数据表现出来就是一个outline的组织,也就是保存在*.otl 文件中。
而 data 装载后,将会以 fact 的方式存进 cell 里,也就是保存在*.pag 文件中。
关于 cell 的概念,简单的理解是通过各个维所能确定的最终的数据的集合,也就是各个 dense 维的不同 member 的组合数便是 cell 的个数,计算公式为:假设有n个 dense维,先求得每个维的每层的member 数目的乘积,再把这n 个维各自求得的乘积相乘,所得数目就是cell的个数。
另外相对的是sparse维的计算,各个不同的sparse维的不同 member的组合数便是block的个数,每个block里面会对应着数个cell,而block是存在*.ind文件中的。
我们可理解成从block 名作为index连接到对应的cell中,这样就可以取得我们所要的最小的数据-fact。
也就是说我们可以这样理解:.pag 文件中包含许多 block,而 block里存放着若干个cell,cell就是最小数据fact的最小存放单元。
进行指标维的设计时,我们因为不需要从源数据中取得 member 值,所以在指标维对应的 rule 文件中,不必设genernation来对指标维进行member的装载。
数据的装载:没有进行数据的装载,则 outline 里只是存储着维的设计框架,并没有形
成 cell,也就不会有具体的 fact。
数据装载将先把数据存放在内存中,所以要消耗较大的资源。
验证并装载
二、权限控制
通过用户和组实现权限控制,可控制到达各个application的dabase,通过Database filters,可以控制到特定的成员的 cell值。
没有必要创建为每个用户创建同样权限级别的过滤器,一旦创建了一个过滤器,就可将其分配到多个用户或用户组中。
然而,每一个数据库只能有一个过滤器分配到用户或者用户组。
没有定义cell权限的,将继承其数据库的存取级别。
过滤器可由一个或多个控制条件组成,这样即可确定成员的权限。
所有的安全信息,包括用户、组、密码、权限、过滤、应用、数据库及其相应的存储目录都存放在ARBORPATHbin essbase.sec文件中。
三、Essbase 调度
当我们建立Application 和Database并加载了成员和数据后,对于后续的Database 更新或 Cube的部署,就需要建立自动调度生成建立cube的机制。
实现该过程主要有两种方法:
●用 Essbase 命令行[ESSCMD]进行调度
Essbase分析服务包括MaxL和 ESSCMD,二者都是交互或批处理执行的命令行接口。
MaxL比ESSCMD 改进的地方是它是多维存取语言[multi-dimensional access language]。
●用 EssbaseAPI 进行调度
四、ESSBASE 优化方法
1.完善数据源
1) 合并重复记录(Consolidation)
2) 尽可能提供Upper Level 数据(Summary)
3) 若需在维度中建立层次结构(Level),应确保该维度中不出现相同成员(member)。
4) 确保在整个轮廓(Outline)中无相同成员(member)。
在数据库大纲中的纬度的位置和存储属性影响2 个方面的性能:计算的运行速度和获取数据的时间。
2.调整轮廓(Outline)
深入理解Dense 和Sparse 维
维可以设置成 Dense 或者 Sparse 属性。
Sparse 维之间的有数据的组合将生成一个数据块(Block),而在块内是所有Dense维的数据组合。
Block存放在Ess*.pag文件中,Block块间的信息组成index, index存放在Ess*. ind文件中。
想要真正准确的对各个维设置 Dense或者 Sparse,必须通过仔细分析数据的特点。
因此,最好的办法是做以系列试验,验证各种维的Dense和Sparse的组合情况,可以在每次试验后记录块密度和块数,得到(块密度)/(块数),比较后取出比值最大的组
合理选择DENSE 维可参照如下步骤进行:
1) 在充分了解数据的基础上,确定DENSE维,比如在我们的项目中一般日期维和地
市维设置为Dense维,成员数比较多的设置为Sparse维。
用部分真实样本数据进行数据装载(LOAD DATA)测试。
查看数据库信息,根据
Block size、Block DENSITY、load data time 等信息重新设置DENSE维。
通常情况下,BLOCK Size在 8-64K间(100K)较好。
相同成员的情况下,维度
设置成dense维的结果是,block size 大,block num 少,反之,block size 小,
block num 多。
2) 原则上,块密度/块数的值越大越好。
3) 仅从存储角度看,平面维比层次维更优。
3.调整维度次序
DENSE维在前,SPARSE维在后。
DENSE维中,按ACCOUNT、TIME、OTHER 次序排列。
在 SPARSE 维中,按维度成员数多少升序排列。
在DENSE维中,按维度成员数多少降序排列。
4.调整Flat Dimension
Flat Dimension:指那种有很多member,但是很少层次关系,Hierarchy的结构是一个很扁平的结构。
这种结构对Performance有着负面的影响。
对于这种结构,可以考虑增加他的层次结构,或者在calc script中增加SET CALCHASHTBL命令行利用Hash 表的能力。
∙数据加载优化
有一种提高数据加载性能的方法,即按稀疏维对输入数据进行排序。
这种方法之所以有效,是因为通过在稀疏维之间对数据进行排序,可确保由于加载数据而创建的每个数据块仅被访问一次。
增量加载数据:数据增量加载,从而可以增量的创建数据块,利用Intelligent Calculation,这样不需要每次计算所有数据块,每次只要计算新增加的数据块就可以了。
∙使用动态计算(dynamic calc)
∙调整内存分配
配置索引、数据和物理(文件系统)高速缓存
数据高速缓存是RAM 中的一个扩展的物理块数据页存储库,而物理(文件系统)高速缓存则是 RAM 中的一个压缩物理数据块页存储库。
索引高速缓存是 RAM 中的一个索引地址页存储库。
DB2 OLAP 数据高速缓存中的数据块没有压缩,而物理数据高速缓存(或OS 文件系统高速缓存)中的数据块则是经过压缩的。
如果服务器上运行了很多多维数据库,应该注意所有数据库设置的缓存数的总和不要超过服务器的内存总数(看服务器还是否需要运行其他服务)。
选择合适的数据压缩算法
DB2 OLAP 文档建议,当平均块密度大约或低于 2-3%时,行程长度编码(RLE)压缩比默认位图压缩(Bit-Map)更有效。
磁盘上的块越小,每次磁盘所读取的块就越多,并且可以在RAM 中保留的压缩块也就越多。
调整方法:
1) Allocate 1 MB of memory for the multidimensional database index cache.
2) Allocate 20 percent of the remaining memory for the multidimensional data
cache.
3) Leave the remaining memory as spare memory.
∙系统参数设置(ARBORPATH/BIN/essbase.cfg)
四、ESSBASE 数据备份与恢复
1.数据备份
数据备份是数据维护的关键部分。
ESSBASE 有两种方法:归档备份和导出数据备份。
∙归档是最常用的备份方法,即对数据文件进行精确的复制。
对数据归档,可在你选择的第三方工具中使用 BEGINARCHIVE 和 ENDARCHIVE 命令。
BEGINARCHIVE 命令将数据库锁定为只读模式,并提供用于备份的文件清单。
用户可保持登录状态,但在归档过程中不可修改数据。
注意:如果在备份数据时未使用BEGINARCHIVE命令,请确保在备份期间所有的应用已被关闭,并且所有的用户均已注销。
否则,你将冒破坏数据的危险。
2. 归档数据步骤:
在 ESSCMD 中发布BEGINARCHIVE命令。
BEGINARCHIVE 执行如下操作:
1) 将被修改的数据提交到磁盘。
2) 将数据库转换到只读模式。
3) 以共享和只读模式重新打开数据库文件。
4) 创建一个包含需备份文件清单的文件。
缺省情况下,该文件被命名为archive.lst。
5) 在归档过程中,如果用户试图修改数据,将出现错误信息。
在 ENDARCHIVE 命
令被执行前,没有用户可以更新数据。
即使数据库被关闭或重启,只读模式也要持
续到ENDARCHIVE命令被执行。
手工将需要备份的文件拷贝指定位置,或使用第三方备份工具,将列在
app/database/archive.lst 中的文件备份。
确信备份Hyperion Essbase 使用的每一个磁盘卷上的数据。
通过在ESSCMD 中发布ENDARCHIVE 命令,完成归档处理。
ENDARCHIVE执行以下操作:
1) 将数据库置为读写模式。
2) 以独占、读写模式重新打开数据库文件。
3) 注意:必须执行ENDARCHIVE命令把数据库置回到读写模式,不管是否关闭或
重启过数据库。
ENDARCHIVE命令不重启数据库。
4) 在发布BEGINARCHIVE命令后,试图中止归档时,如果收到“不能中止”的信息,
很可能系统正处在最后阶段,正在向驱动器与项目并且已到达操作不能终止的状态
点。
∙通过导出进行备份。
导出数据到ASCII 文本格式。
可使用导出代替归档备份数据。
导出工具将数据拷贝到指定的 ASCII 文本文件,不压缩数据。
导出的文件仅包含数据,不包括控制、轮廓、安全信息。
导出文件的最大尺寸是
2G。
要导出数据,在Hyperion Essbase Application Manager中选择Database > Export,或在ESSCMD 中发布EXPORT命令。
可使用EXPORT工具指定导出的数据量:
1) 所有数据。
2) 仅Level 0 blocks。
3) 仅装载数据(load data)。
推荐方法:推荐使用归档方法进行备份。
1) 然而,当你遇到如下情形之一时,可以使用导出工具。
跨平台迁移数据。
2) 仅备份数据的某一部分。
例如,level 0 blocks。
3) 创建文本格式的导出文件,而不是二进制格式。
3.数据恢复
∙从归档文件恢复
当介质出现故障时(faulty disk,disk failure,或head crash),需要考虑从归档文件中进行恢复。
注意:不要移动、复制、修改或删除以下任何文: ESSxxxxx.IND, ESSxxxxx.PAG, databasename.IND, databasename.ESM,databasename.TCT。
否则会导致数据破坏。
停止essbase服务,然后将备份的文件拷贝到数据库所在位置。
∙从导出的ASCII数据文件中恢复
用 ESSCMD 命令LOADDATA 或使用菜单DATABASE->LOADDTA 执行数据加载,选
定从数据
4.Es 在利,a b c d e f g h i)j)k
从文件加载方据(level 0 b ssbase 开发在构建Cube 通过过去的a) 一个Ap b) 理论上,时,Ola 理由,建c) 构建Ap d) 构建规则e) 对于日期个 Data f) Dense 成员数很g) 日期维规度作Gro h) Essbase 同层次成维度之间未知、为) 对于“未××其它”名称前加则改“部) Shared more me k) 数据成员方式,然后指locks )恢复发 Cube 建议e 的过程中,的工作,建议pp 对应一个一个App 可p Server 会把建议一个App pp 和Databa 则文件的名称期维,建议每abase ,便于和 Sparse 很多的维度设规则文件需要oup 分组汇总e 中同一 da 成员之间、同间)及别名中是为空、其它。
知、为空、其” 。
其中××为加上该层名称门层”成员名members m embers 。
员[列]接受数定 ASCII 文复后需要重新计议:
如果约定议在构建Cub Database
可以对应多个把Database p 对应一个ase 的命名尽称尽量与维表每个 Databa 于公用。
维的设置。
一设置为Spars 要与事实表相总。
atabase (主同一主题中不是不允许出现
其它”等不同为维度名称。
称。
例如“受理称为“部门-营must be in the 字及其修饰,文件所在的物计算。
一些规范,be 时遵循如下个Database e 所在的整个Database ;尽可能与事实表名相一致,se 对应一个一般情况下日se 维。
相关联过滤日主题)中所有不同维度之间现同名,应注同维度之间的 10. 对于不理渠道维”中“部营业部” ;
e same dime ,不接受空格物理路径即可对以后的开下建议规范:
,但是当我们个App 都装入
实表名称相一并利用编号个日期维,对日期维和地市日期数据,数据有成员名称不。
ESSBASE 注意加前缀。
经的成员重复,不同层之间的部门层”和“受ension 。
D 格、分隔符和可。
注意如果开发和维护工们只看一个D 入内存,很耗一致,便于见来确定其装载
对于其它维度市维设置维 D 据规则文件的不可重复,包E 中所有维度经常出现重复建议改为“××的成员重复,受理单位层”都Data can be s 和#MI and
Cattsof 果备份的只是工作会带来很Database 的耗费资源。
基
见名知意。
载次序。
度,尽可能放Dense 维,的SQL 需要包括同一维度度成员(包括复的成员名称×未知、××为
建议在上层都包含“营业部shared by tw #MISSING ft_Joe.Paine
整是部分很大便信息
基于此放入一
对于
要按维
中不
括不同称有:为空、成员部” ,wo or
G 。
整理。