簇表BSEG和透明表BSID/BSAD

先看个链接解释:池表,簇表,透明表

BSEG属于表簇RFBLG。

簇表BSEG和透明表BSID/BSAD_第1张图片

看它的where used 能看到里面有好多簇表。

簇表BSEG和透明表BSID/BSAD_第2张图片

 为啥BSEG是个簇表? 这个俺不知道,听说是因为之前Oracle有限制,只能处理一定列数的表,但是BSEG又是个特别多列的表,所以只能把它在数据库层进行压缩?

簇表是一个特殊的表类型,它的数据不是直接存储的,而是存在表簇里。以压缩的格式存储,压缩和解压都在应用层实现。表簇里有好多类似的表,这样允许冗余数据的高性能存储?(待究)这就导致它不能用OpenSQL的一些join语句了。

在这里能看到簇表的表簇。也就是说簇表BSEG的数据实际存储在表簇RFBLG里。簇表一般都有很多列数据,BSEG有300多列。

簇表BSEG和透明表BSID/BSAD_第3张图片

 簇表BSEG和透明表BSID/BSAD_第4张图片

但是表簇里RFBLG就只有很少的列。 看Key对应的都是5个,但是BSEG是BUZID,表簇里是PAGENO。对于不是Key的列字段呢,都被压缩放进VARDATA里了。

簇表BSEG和透明表BSID/BSAD_第5张图片

 

而作为一个簇表,不能建次级索引,但是又得经常基于它里面的一些字段进行查询,所以建了这些索引表:BSAK, BSIK, BSAS, BSIS, BSAD, BSID

让你能在不知道凭证编号,或者公司代码,只知道总账账号的时候能查询到BSEG的数据。

通过下面这个表关系能看到。这个表关系还是很好的。我就是找不到电子版的了。

簇表BSEG和透明表BSID/BSAD_第6张图片

这个表关系图里面通过看表前缀和后缀,能看出来,BSI表示open items BSA表示cleared items。

后缀是账户类型字段KOART,K表示Kreditor->Vendor, D表示Debtor->Customer , S表示GL。

簇表BSEG和透明表BSID/BSAD_第7张图片

这些索引表是为了为了提供直接访问BSEG的索引,这个BSEG包含了AR,AP,GL的数据,但是如果我们想从公司和供应商编号找数据,那就到BSIK或者BSAK去找。如果知道公司和总账账号,那就去BSIS或者BSAS找。

从BW的角度去看,比如AR的数据源0FI_AR_4。应收账款就是从表BSID和BSAD来的。

簇表BSEG和透明表BSID/BSAD_第8张图片

 簇表BSEG和透明表BSID/BSAD_第9张图片

 但是如果你去fb03,这些都是保存到BSEG的。

簇表BSEG和透明表BSID/BSAD_第10张图片

你可能感兴趣的:(数据仓库)