操作讲解.docx

上传人:b****9 文档编号:23405373 上传时间:2023-05-16 格式:DOCX 页数:16 大小:28.56KB
下载 相关 举报
操作讲解.docx_第1页
第1页 / 共16页
操作讲解.docx_第2页
第2页 / 共16页
操作讲解.docx_第3页
第3页 / 共16页
操作讲解.docx_第4页
第4页 / 共16页
操作讲解.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

操作讲解.docx

《操作讲解.docx》由会员分享,可在线阅读,更多相关《操作讲解.docx(16页珍藏版)》请在冰豆网上搜索。

操作讲解.docx

操作讲解

Essbase操作讲解

Essbase操作讲解2010-04-2815:

158.1实现一个多维模型在这一节我们描述如何使用DB2OLAP或HyperionEssbase来实现一个基本的多维模型。

首先我们用OutlineEditor手动定义这个模型,然后展现如何通过外部的输入文件或表和所谓的数据加载规则来建立模型。

在定义模型后,我们通过加载和计算的程序来引导。

8.1.1TBC销售模型简介例子是假设的饮料行业中的一个公司。

这个公司的主要产品是各种类型的饮料(例如:

果汁饮料,乳酪苏打和乳液)。

这些产品出售到美国市场,根据城市、州进行区域分类。

我们的模型将用来分析财务据,例如所售商品的销售和费用。

这些数据每月收集,一年或者是一季度汇总。

初始的维度模型如下图所示。

TBC销售的初始模型创建和加载在上图中表示的模型的DB2OLAP(或者Essbase)立方图,有三个主要的步骤:

1.定义模型可用两种不同的方法实现:

●手动●由外部数据源驱动自动产生2.加载数据3.计算数据

8.1.2手动创建数据库outline在这部分我们介绍怎样手动创建简单的TBC销售模型,按照以下几步:

1.启动DB2OLAP服务器2.打开DB2OLAP服务器应用程序管理器3.连接DB2OLAP服务器4.创建一个新的应用程序5.创建一个新的数据库6.创建维7.创建每个维的成员8.定义名称及成员9.存盘通过打开命令窗口并键入:

Essbase,启动DB2OLAP服务器接着输入DB2OLAP服务器密码,并按回车或者在WindowsNT开始菜单选择Program=EssbaseApplicationManager。

(提示:

DB2服务器可以作为一个WindowsNT服务自动启动)从WindowsNT开始菜单中依次选择Programs=DB2OLAPServer=EssbaseApplicationManger打开DB2OLAP管理窗口,并通过选择Server=Connect来连接DB2OLAP服务器(见下图)。

连接到服务器

依次点击应用程序管理器窗口中的File=New=Application…在服务器上创建一个叫做TBC的应用(见下面两图)。

创建新的应用程序

注意到位置选择标识DB2OLAP服务器将应用程序的系统控制文件放在什么地方。

在Essbase目录中,每个应用程序都有自己的子目录。

注意,在DB2中没有创建立方图的关系表。

创建TBC应用程序之后,我们必须在TBC中创建一个simple数据库。

这将在服务器上创建数据库系统控制文件。

注意到我们正在创建一个常规的数据库,而不是一个流通数据库。

流通数据库能够转换各国货币。

在应用程序管理器(ApplicationManager)窗口点击File=New=Datebase…,在服务器端创建一个simple数据库(如下面两图所示)。

创建数据库

已经创建了数据库,现在可以创建outline了。

DB2OLAP将立方图的结构称为outline。

它包含各个维度、各个维的成员以及事实。

选择ApplicationTBC=Datebasesimple来创建主要的维,选择"DatabaseOutlines"图标然后点击Open。

在OutlineEditor的上面是一系列图标,它们的含义在ApplicationManager窗口的底部显示出来。

选择"Addachildtotheselectedmember"图标,如下图光标位置显示,然后输入product作为第一个维度名。

图创建维

按回车,就可以在同一层次添加其他的维度,输入Market、Year、Measures三个其它的维度。

这些就是我们立方图的主要维度。

默认地,在DB2OLAP服务器端,维度的结构和操作能力也做同样的处理。

但是,DB2LOAP服务器有两个常用的具体维度类型。

一个是Time维,用于时间序列的计算,一个是Account维,用于数字事实。

通过在第二行图标加亮选择year=TimeDimensionType,可以将Year指定为基于时间的维度。

通过在第二行图标加亮选择Measures=AccountDimensionType,可以将Measure作为基于account的度量维。

可以看到,在Year和Measures各自的旁边分别有红色的Time和Accounts(见下图)。

现在需要在每个维度中输入各个成员。

这能有效地在维度中建立层次。

加亮选择Product,点击如下图显示的"Addachildtotheselectedmember"图标。

输入100,200,300和400这些产品组作为Product维度的成员(见下图)。

图创建新的成员

然后在产品组100下创建下一个层次,选择产品组100然后点击"Addachildtotheselectedmember"图标。

用同样的方式输入产品类100-12,100-20和100-30作为产品组100的孩子节点。

另外构造Measures维度的层次结构,输入QuantitySold并在一层中输入Profits,Sales和CoGs(所售商品的成本),如下图所示。

注意,当向立方图加载数据时,数据是加载到Measures维中,效果等同于一个星型事实表中的度量。

注意,在我们添加成员时,默认的情况下。

它们统一作为层次中的添加对象。

因此,此时我们可以定义Profit为Sales+CoGs(这从业务角度来看是错误的)。

随后我们将修改。

创建度量

目前我们输入建立的只是一个非常简单的模型。

在这样的模型里,一个层次所有成员的值聚合为其上层成员的总数。

但是,我们还需输入其它一些属性,例如产品组和产品类的名称。

对于企业中的不同的用户,别名是获取信息的有用属性,使得模型具有更好的可理解性和可读性。

尽管某一部门的用户可能习惯用产品数量,例如100和100-20,但这对于其它部门来说可能并不好理解。

可以通过选择"Definetheattributesfortheselectedmembers"图标来指定成员的属性。

在OutlineEditor中,选择产品组100,并点击"Definetheattributesfortheselectedmembers"图标

图定义别名并存储数据

如上图所示,有多种属性定义。

输入Colas作为产品组100的别名。

在这个面板里,有一些常用到的属性设置:

合并、添加、减、忽略、数据存储器、存储数据、动态计算和存储、动态计算、仅标识、共享成员。

这些属性随后讨论:

●添加--在同层其它成员先前执行的计算结果中添加成员。

●减--乘以-1,添加到同层其它成员先前执行的计算结果的总和中。

●忽略--合并中不考虑该成员。

●存储数据--存储成员的数据值。

●动态计算--当用户要求时才计算数据,显示完结果后释放。

●动态计算及存储--当用户要求时才计算数据,然后存储。

●仅标识--只创建导航成员,即成员不含有数值。

●成员共享--在成员间共享数值,这使得成员能在多个不同的层次上合并。

现在我们可以修改CoGs的属性,把加合并改为减合并,则Profit现在就成为Sales-CoGs。

注意,上图显示的面板也提供了一种通过AddSibling和AddChild按钮及Prev和Next按钮,手动输入维成员的快速方法。

在outline中定义的维的结果如下图所示。

图所生成的维

当创建一个新的维度时,默认情况下,维度定义为密集的(dense)。

在这个简单模型,也是这样。

现讨论,如何根据设计需求,进行维度的密疏设置。

如下图所示,在Essbase应用程序管理器窗口依次选择Settings=DataStroage。

图默认的密集维度

在弹出的数据存储窗口上,我们可以选择Recommend按钮来查看可能的最佳建议。

这给我们提供了可能的块和字节,及每块在维度定义中密疏的不同配置(见下图)。

注意,DB2OLAP服务器仅知道outline,并不知道将加载的输入数据或那些数据的特性。

因此提供的推荐和等级都不应该仅看表面值。

在设计立方体中,应该执行一个全面的需求和设计过程,并且它是立方体疏密设计的基础。

图密集(Dense)和稀疏(Sparse)的配置

选择应用程序管理器窗口中的File=SaveAs,在服务器端存储outline,如下图所示。

就是在这个阶段,创建DB2中的关系表,各个维度有各自独立的表。

成员名称和属性,连同它们的相应属性如别名,以及它们是否加减合并等,一起都插入到这些表中。

图保存Outline

如所见,手动输入outline的过程费时且易发生类型错误,因此不适宜具有很多成员的大量维度的情况。

DB2OLAP服务器可从外部数据源(如数据库表或文件)加载维度。

例如,当我们考虑表示产品、市场或客户的维度时,它们可能有数以千万的成员,手动创建就不再可取。

并且,这些维度的结构和层次可能会发生变化,例如引入了新产品或者定义了新的产品组。

因此有必要动态地建立和维护outline。

在这部分,我们将说明怎样在VisualWarehouseBusinessViews的帮助下和通过使用"DataLoadRules"的平面文件动态创建一个OLAP服务器数据库outline。

外部的表和文件包含定义每个维度结构所需的信息。

维度的每个成员与它在层次中的相应位置有关。

这种映射可以通过三种不同的机制实现。

●输入的数据集中的每列与所在维度层次中对应的层次级别相关联;从底向上,从0开始的最细节的那一层(或者是叶子层)自下至上计算,直到最高的集聚层,如下图所示。

这种参照方法称作层次参照。

图层次参照

●输入的数据集的每列与所在层次中对应的生成数相关联;从1开始的最聚集的那一层数据自上而下计算,直到最细节的那一层数据,如下图所示。

这种参照称作生成参照。

图生成参照

●输入文件的记录包括两列直接的父/子描述参照,如下图所示。

图父/子参照

也可以用这种技术来定义维度的描述和属性。

理想的情况下,模型的每个维度只有一个输入数据集(文件或表)。

通过"DataLoadRules"可以建立列和对应的参照间的映射。

它们可由"DataPrepEditor"维护。

8.1.3.1创建产品维度(使用层次参照)在这个例子中,假定outline已经包含Porduct维度的一个实体。

因此,我们需要把初始表中的数据与outline中的维度联系起来。

我们用一个SQL表,在我们数据集市的关系存储范围内定义为一个VisualWarehouseBusinessView(业务视图),作为Product维度的初始表。

这个SQL表叫IWH.PRODUCTS,是一种产品主表,其中每个产品一行(见下图)。

在113页5.3"TBC销售模型事务观察"对和ALL_PRODUCTS表相关的事务观察有所描述。

图所有产品的业务视图(样本内容)

为Product维度创建数据加载规则(DataLoadRules):

1.连接服务器2.选择数据库和应用程序3.点击DataLoadRules按钮4.在服务器窗口上,点击New按钮。

打开DataPrep编辑器5.在应用程序管理器窗口上,点击File,选择OpenSQL实体6.在选择的服务器,应用程序和数据库窗口上,验证正确的实体,单击OK(见下图)

图Essbase应用程序管理器

7.用DefineSQL窗口来定义数据库,从Product维度的初始表中选择检索相关列的语句从ALL_PORODUCTS表选出的每行对应于outline中Product维度的一个成员。

为了避免重复行,这些行在创建维度时将被舍弃,在我们的SQL语句中应包括Distinct子句(见下图)。

图定义SQL语句

当点击OK/Retrieve按钮,将看到SQLConnect窗口。

如果已经录入正确的用户ID和密码,点击OK即可。

否则,输入正确的用户ID和密码然后点击OK。

此时,DataPrep编辑器里有查询的结果(见下图).

图DataPrep编辑器中的结果

注意:

当连接到数据库,但是SQL语句的定义错误时,可能会返回一个错误信息(参见下图)。

检查DB2OLAP服务器应用程序日志文件调查错误的原因。

图SQL存取错误信息

检索完Product维度的设计,接下来定义将数据加载进outline的规则。

首先我们必须使一个outline与我们的数据加载规则关联。

在DataPrep编辑器中,点击AssociateOutline图标(见下图),从列表框中选择正确的服务器,应用和数据库,双击将返回DataPrep编辑器。

图DataPrep编辑器图标

在这一步,确保已单击过"ViewDimensionBuildingFields"按钮。

接下来我们需要将字段属性和输入文件相关联。

也就是把SQL结果列与outline中维度定义的相应结构关联起来。

我们前面讲到的层次参照。

0层往往是层次中的最底层或叶子层;也是进行加载操作时数据加载层。

在立方体建立过程的计算期间,更高层的数据被聚集。

在我们的例子的Product层次中,PROD_CLASS_CODE(例如100-10)作为最低层,PROD_GRP_CODE(例如100)作为下一个稍高的层次。

单击DefineAttributes图标(见上图),打开FieldAttributes窗口(见下图)。

图维度构建属性

在我们这种情况下,GlobalAttributes可以用默认设置。

对于输入表中的每个列,单击DimensionBuildingAttributes标签定义类型和对应的维,确保从outline中选择出正确的维。

每层或每个元素的别名(描述)可以用相同层的参照数来关联。

由于没有定义字段的合并属性,在维度计算期间,默认属性+用来为当前总数添加度量。

现在用对话框"DimensionBuildingsettings"来设置选项,应用到我们动态建立的所有维上。

应已选中GlobalSettings标签。

由于我们没有用一个别名表为每一个元素名称存储别名,所以可以用默认设置。

如果列表框为空,单击outline按钮把outline与维度构建规则文件相关联。

在DataConfigure选项框中,我们定义是否用我们自己的设置来指定数据的密疏,或者由Essbase选择这些设置。

对于TBCProduct维,我们设置为密。

图维度构建设置

通过维度构建设置(DimensionBuildSettings),我们可指定前面描述的哪些方法用于,在动态维度构建期间,将初始表的列映射到维度层次内的具体的层次。

单击DimensionBuildSettings标签,打开对话框。

如果维列表为空,单击Outline按钮,并把规则文件与outline关联。

Essbase将维列表和outline的维关联。

为Product维选择相应的构建方法(在本例中,用层次参照方法)。

在"已有的成员(ExistingMember)"选择框中,我们可以指定Essbse怎样改变outline中的已有的成员。

在本例中,如果在数据源中指定新的属性,激活AllowAttributesChanges选项框,以便可以改变已有成员的属性。

由于源中数据可能没有被分类排序,并且我们可能会把源和已有的成员合并,因此,我们可以选择升序(元素排序选择框)对成员分类排序。

在"成员更新(MemberUpdate)"选择框中,默认的选择是将新成员和outline中已存在的元素合并。

现在单击"维度定义(DimensionDefinition)"标签。

在这里,我们可以指定某个维是否源于一个已有的outline还是在加载规则中定义。

当创建新的维时,必须在加载规则中定义它们。

本例用的是outline。

数据加载规则定义的下一步也是最后一步,在数据库outline中验证所有参数的正确的设置。

单击Verify按钮打开VerifyOutline对话框。

如果都正确,将返回一个Ok消息,它意味着创建维度outline的所有所需的信息都是可用的,句法上正确的。

如果不是这种情况,列表框列出的成员的项目名称(ItemName)有潜在错误。

错误列表框对所选成员提供一个错误描述或者警告信息。

在验证成功之后,保存加载规则。

现在我们准备加载outline。

在Essbase应用程序管理器窗口选择Datebase=Loaddata。

从"数据加载(DataLoad)"对话框,可以从外部数据源j将数据加载到Essbase数据库outline,或者用外部的数据在已有的outline中创建维。

图数据加载

填写服务器、应用程序和数据库的正确信息。

在类型选择框中选择加载数据源的类型。

在本例中,从SQL加载数据。

如果需要,输入SQL用户名和密码。

当加载SQL数据源时,必须用"数据加载规则(DataLoadRules)"。

Userules选项框提示Essbase用加载规则加载数据源,并激活Find…按钮。

单击Find按钮激活"打开服务器规则对象(OpenServerRulesObject)"窗口。

在我们的Product例子中,可以选择正确的加载规则。

单击OK返回数据加载窗口。

"错误输出文件(ErrorOutputFile)"正文表列出错误日志文件的位置。

可以指定任何文件。

如果正文框为空则是没有捕获到错误。

在组选框检查ModifyOutline。

这提示Essbase用关联的加载规则在加载期间改变outline,通过添加或者改变在outline数据源发现的和在加载规则中描述的元素和成员。

因为我们不想此刻加载数据,LoadData检验栏必须未检验。

当检验了Interactive检验栏,会提示加载失败。

Essbase提示什么数据源加载失败并询问是否继续读取剩余的数据源。

当单击OK按钮,outline同Product加载规则一起加载,VisualWarehouseBusinessView担当起初始表。

正确加载之后,Product维的outline如下图所示。

图加载Product规则后的ProductOutline8.1.3.2创建另一个可选的聚合路径现在已经动态创建了所有产品在一个层次结构上分布的product维。

然而,需要经常分析基于特定产品的不同分组和不同方式聚合的销售数据。

因此,除了已创建的层次外,我们想引入另一个可替代的聚合路径。

这样做的目的是为了利用共享成员。

共享成员可以用来计算多组间的同样成员,也就是说可以在多个聚集中引用单个成员。

在TBC销售分析的例子中,我们想定义一个包括所有Diet饮料的单独的组。

因此我们想把所有在Product维的Diet饮料添加到一个新的产品组,并在这个层次上总计,但是我们不想这个总计扩散到整个Product维上。

我们用叫做DIET_PRODUCTS的VisualWarehouseBusinessView来为共享的Diet元素加载outline。

为此我们需要创建一个新的数据加载规则。

用相同的步骤为标准Product维创建所需的数据加载规则,直到必须定义SQL语句。

下图显示了所使用的SQL语句。

图共享的Diet成员的SQL定义

从DIET_PRODUCTS表检索出数据,需要定义"维构建属性(DimensionBuildingAttributes)"(在字段属性内)。

当在同层创建共享成员,并使用层次参照构造方法时,必须确保存在与根层(例如100)的参照,并且新产品组(例如Diet)在每个输入记录里指定(见下图)。

图DietProduct规则的规则文件编辑器

在DIET_PRODUCTS业务视图中,有一个叫做PROD_GRP_ATTRIB的列。

属性用来指定一个成员的具体行为。

在本例中,这个列包含~符号。

当它创建outline时,这个属性提示Essbase从归并中排除这一层次。

因为我们不希望Diet产品在Product层上被合并两次,我们也需要添加PROD_GRP_ATTRIB字段作为1层成员的属性。

我们只希望Diet产品在它们自己的成员层次上汇总,并非在共享的元素层上。

在运行过SQL查询和定义过维构建属性之后,"规则文件编辑器(OutlineFileEditor)"应该如前图所示,outline结果如下图所示。

图插入Diet产品的Outline8.1.3.3构建市场(Market)维在前面部分我们看到怎样扩展维。

现在我们将从头开始添加matket维。

在outline中,这个维没有任何参照,因此我们首先需要定义新的基本维。

创建Market维,与为Product维创建加载规则的步骤相同:

1.打开Essbase应用程序管理器2.连接服务器3.选择TBC应用程序和Simple数据库4.单击RulesFile图标,单击New,打开DataPrep编辑器5.从Essbase应用程序管理器中选择File=OpenSQL….6.在"选择服务器和数据库(SelectServerandDatabase)"窗口,选定参数,单击OK按钮。

这将打开"定义SQL(DefineSQL)"窗口。

Market维的数据存储在IWH.REGIONS业务视图中。

定义SQL的窗口为加载规则抽取数据,如下图所示。

图Market维的定义SQL窗口

7.为了定义新的Market维,单击DimensionBuildSettings图标,并选择mensionDefinition标签(见下图)。

出现的对话框可定义添加到outline中的新的维,或在一个动态维创建期间改变已存在的维。

在DimensionsFrom下,指定规则文件选项,在名字文本框输入想建的维的名字。

图维度定义

8.单击Add按钮向维表中添加此维。

这个新维名字也出现在outline的下拉菜单上。

9.定义余下的层次和别名的过程与Product层次相同。

因此我们必须定义SQL语句将数据加载到DataPrep编辑器中。

结果如下图所示。

我们还需根据检索到的数据来定义层,并关联outline文件。

图Market维度规则的DataPrep编辑器

为创建Market维,运行加载规则,新的Market维的outline如下图所示。

图TBC销售模型的Market维度的Outline8.1.3.4创建时维(用父/子关联)另有一种创建维的方法是父/子方法。

在数据源中对每个元素一定有一个父/子关系。

这种父/子数据源一定包含至少两列:

父亲列和儿子列。

还可以有其它的描述列,例如别名属性,但是在单个列中包含的关系不能超过一种。

图构建父/子Outline的文件结构

对于TBC销售应用程序的年维度,我们创建了一个叫做TIMEDIM.TXT的文件,包括上图显示的父/子结构。

如果这个文件放在客户端,当单击选择客户端时出现的FileSystem按钮,就可以打开看见它。

定义数据加载规则:

1.在服务器窗口,单击DataLoadRules图标和New按钮2.将与outline相关的数据加载到规则编辑器,在Essbase应用程序管理器窗口中选择File=OpenDateFile,并选择正确的数据文件(见上图)3.选择SetDimension图标,并在"维构建设置"窗口中单击DimensionBuildSettings标签(见下图)。

维列表列出用于选择的维。

如果维列表为空,如果年维已存在于outline中,或者按前面所描述的定义一个新维,则单击Outline按钮。

图Year维度的维度构建设置

4.现在我们在"构建方法(BuildMethod)"选择框中指定"UseParent/childReferences"选项。

5.选择DefineAttributes=FileAttributes=DimensionBuildingAttributes。

"字段数量(FieldNumber)"标签显示当前所选字段数目。

6.在"字段定义(FieldDefinit

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

当前位置:首页 > 小学教育 > 学科竞赛

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

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