BW 面试问题分类汇总

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基础面试问题:

1.BW扩展星型结构和传统的星型结构相比有哪些优势?

回答:标准星型模型是数据仓库中一种常用的组织信息和数据的多维数据模型。它由中心的一个事实表(Fact Table)和一些围绕它的维度表(Dimensional Table)组成。SAP BW星型模型 SAP在标准星型模型基础上做了一些改进,将维度表中的主数据(Master Data)分离出去,独立建表,并通过SID Table和维度表关联起来。SAP将主数据分为3类:属性(Attributes),文字描述(Text),层级结构(Hierarchy)。这里需要注意的是Master Data 并不是InfoCube 的一部分,因此Master Data可以在多个InfoCube中共享。这是BW将Master Data从维度表分离出来的主要原因之一。我们知道MOLAP数据仓库为了提高Aggregation的效率,需要事先把这些Aggregation的值计算好,而不是在每次请求的时候才计算。这些预先计算好的Aggregation值当然也需要以cube的形式保存起来。如果是用标准星型模型,那么有两种方法来存储:一种是将Aggregation值和facts一起保存在原始cube的事实表中,这样事实表就会更加庞大,查询效率肯定不高。另一种是为不同的Aggregation建立独立的aggregation cube,存在这写新的cube中,但这样会造成维度表的冗余,每个aggregation cube都会重复一份它所需要的维度表中的所有信息。现在BW将Master Data从维度表分离出来使得维度表变成一张简单的关系表,就解决了Master Data的冗余问题。同时由于Master Data不是和维度表绑在一起而是通过SID Table查询得到,使得多语言支持非常方便。可以为每种语言建立独立的主数据表并根据查询时的语言信息动态绑定到不同语言的主数据表。

2.特征值可以使用哪些数据类型?

答复:一般特性有四种:char、number、date,time;特殊的特性:时间特性、单位特性、技术特性;

3.一个信息立方体里面有多少个维度,分别是什么?什么是聚集?

答复:有三个维度是系统定义的:时间维度、单位维度、技术特性维度;最少一个自定义维度、做多16个维度;

聚集:聚集是数据仓库经常使用的一个方法。聚集是对信息立方体中的数据(基本事实表,F-Fact表)按照指定的一个子集进行数据汇总,汇总的数据存在不同的独立的事实表(聚集事实表,E-Fact 表)中。根据常用的查询的种类,一个基本事实表可以设置多个聚集事实表。

·根据CUBE中几个或者一个维度信息对象创建的Mini Cube,可以提高数据的访问效率当查询访问CUBE时,若聚集中的维度能满足查询条件则只需访问聚集而非CUBE ·新生成一张事实表外加一些对应的维度表。

·用空间换时间、数据是冗余的。

·聚集可以建立在特征值、导航属性、层级上。

在报表运行中,系统自动根据报表的查询维度找到最合适,也就是数据量最少的聚集事实表中读取数据。由于数据量的减少,降低了报表运行时间。也就是说,聚集的设置对最终用户是透明的,用户没有必要关心是否找到合适的聚集,系统自动会找出相应的聚集表。

聚集在是基本的事实表上设置的。聚集可以按照特性建立,可以按照导航属性建立,也可以按照层次建立。

其中对于聚集中维度数据和事实表数据的更新,如果是导航属性生成的维度表,则通过信息对象的change run(在“管理”下面)可以同步聚集维度表数据,而事实表数据通过ROLL UP可以更新。

聚集的适用范围

聚集是基于多维分析模型的基础上设定多维分析模型的子集,同时又是具有真实的物理数据存储的,因而聚集的创建不适合信息集和多信息提供者,以及虚拟信息提供者(虚拟信息立方体)这些不具有物理数据存储的数据对象,也不适用于DS。这样的二维的数据存储对象。

4.BW报表查询中,什么是计算指标,什么是限制指标,什么是条件?

计算指标:是针对query的数据源,根据现有的特定指标通过计算或者公式定义出需要的指标;

限制指标:是针对query的数据源,根据现有的特定特性和指标的组合选择出一个新的特定指标;

条件:在query中根据指标做过滤的条件;

中级面试问题:

1.属性有哪些类型,分别是什么?怎么区分这些类型?举个例子

答复:属性分显示属性、导航属性;显示属性在query中不能单独存在,导航属性可以脱离主数据而独立存在;

2.什么是复合特性(compounding),举例说明。

答复:是把两个特性,合并成一个特性,比如item不能确认一条数据,需要和head连接一起

3.信息立方体有多少张表,分别是什么,cube压缩的实质?

答复:一张实时表和最多16张维表,最少4张维表组成;

Cube压缩的实质:前几天的数据测试无误,做压缩,压缩就是把request id 去掉,相同维度的做add,提高性能;压缩的缺点:不能根据request区分和删除数据;如果选择了with zero ,把数据里真的是0的数据压缩没了;压缩可以设置到处理链中(compression of the cube);

4.怎么设计出一个好的立方体维度出来,举例说明?

答复:创建维度就是多角度多层次全方位的去分析数据。

1 如果维度表列和事实表中的连接太多时,可以采用行项目维。也就是去掉维度表,

把sid表直接放在事实表中。通常有销售订单,发票号。

2 如果维度数据是事实数据20%,可以采用基数高度,对生成cube自动优化,采

取合适索引。

维度设计原则:

1倾向于更多的列和更少的行;尽可能有意义

2 设计一个占空间尽可能小的主键;带来更小索引,主要是提高效率

3 不建议特别的规范化,也可以有冗余。规范化后可能使结构更加复杂

4维度表中属性尽可能是文本或离散的。通常是查询的条件

合理的维度数量,不宜太多,影响性能,用户使用起来也没有太大意义;维度的组合和顺序也要合理;把相近的有关系的维度放在一个维表中。

比如可以从Outline的组合顺序、Sparse/Dense的设置、计算脚本的运用、Partition优化、DataLoad File优化等等,其中outline的组织顺序有一定的规则,类似沙漏型。总言之,可以通过这些方法找到一种平衡。

但我想说的是:这么多的维度合不合适?实际上是上面问题的出发点。作为主题,是相对比较独立且很明确的数据,不是大而全。换句话说,每一个主题的背后隐含着1..n个故事场景。

相关文档
最新文档