多维数据结构是数据仓库普遍使用的数据建模方式,而标准信息立方体就是多维数据结构的SAP BW实现。通过它,我们可以构建出相对高效的多维数据结构,而不需要关心太多的多维数据结构的细节。标准信息立方体就是一种星系结构,不过SAP BW对它做了一定的扩展,也就是所谓的扩展星形结构。而且信息立方体通过使用SID (SURROGATE ID)来关联维度和主数据,这样可以提高数据的访问效率。
如图所示,一个信息立方体包括两个事实表:一个用来存储压缩数据(E表),一个用来存储未压缩数据(F表)。另外一个信息立方体还以最多有16个维度表,这16个维度中的3个是系统自动产生的:PACKAGE维度,TIME维度,还有UNIT维度(戏称PTU)。其他的维度是开发顾问构建的。
信息立方体的事实表包含两部分的信息:一是所谓的事实信息,比如数量,收入,折扣等。还有就是对维度表数据的引用,也就是维度ID(DIMID)。维度ID是数据导入的时候自动产生并写入到事实表和各个维度表中的。通过DIMID,事实表的数据可以和各个维度表的数据关联起来。信息立方体的维度表,一方面用来减少事实表中的字段,因为多个特征值可以被组合到一个维度中;另一方面,维度表可以减少一些高关联度的特征值组合的存储冗余问题。
信息立方体维度的一个特例是LINE ITEM维度,它主要用于那些高基数(HIGH CARDINALITY)的特征值。典型的例子就是DOCUMENT NUMBER;对于那些终端用户量非常大的行业来说,CUSTOMER NUMBER也可以是LINE ITEM维度,比如电信、银行、保险等。对于LINE ITEM维度来说,系统其实并没有产生一个维度表,而是直接把主数据SID表中的SID作为DIMID写入到事实表中。也就是说事实表和主数据表直接关联,中间不产生维度表这一层。
当你设计完信息立方体的结构并激活它的时候,系统会自动生成上诉这些数据库表,不需要我们的手工干预。而且,这些数据库表是有一定的命名规范的:SAP定义的信息立方体的数据库表以/BI<数字>/开头,而用户自定义的数据库表以/BIC/开头。
/BI 例子: 信息立方体 0SD_C01 表名 描述
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/119153/viewspace-626084/
,如需转载,请注明出处,否则将追究法律责任。
Digit = SAP定义的信息立方体: D = 维度表
E = 事实表(压缩了的数据请求)
F = 事实表(未压缩的数据请求)
P = Package 维度
U = Unit 维度
T = Time 维度
0−9, A, B, C = 用户定义的维度表
/BI0/D0SD_C011 Business Content−defined dimension table
/BI0/D0SD_C012 Business Content−defined dimension table
/BI0/D0SD_C013 Business Content−defined dimension table
/BI0/D0SD_C014 Business Content−defined dimension table
/BI0/D0SD_C015 Business Content−defined dimension table
/BI0/D0SD_C01P Package dimension table
/BI0/D0SD_C01U Unit dimension table
/BI0/D0SD_C01T Time dimension table
/BI0/E0SD_C01 Compressed fact table
/BI0/F0SD_C01 Uncompressed fact table