KDT#16 热交换维度
热交换维度指在数据仓库中,一个维度有两个或更多个可供选择的版本。也就是说,对于不同的用户,我们不想让他们看到该维度的全部信息,所以我们可以定制该维度的不同版本,而在用户查询时根据当时的需要给用户选择一个适合他的版本。
下面是是一个使用热交换维度的例子:
一个制造业的企业想把自己的发货事实表提供给他的交易伙伴访问,但是需要对交易伙伴屏蔽掉其他交易伙伴的订单信息。处理的方式是,为每一个伙伴建立一个“交易伙伴维度表”。每个交易伙伴访问自己的维度表,其中可以看到自己的信息,而其他企业的信息都显示为“其他”。更进一步,我们可以在维度表中添加一个权重,本企业信息的记录设置为1,其他企业的设置为0。在事实表的查询中,将该权重字段乘到事实表的所有事实数据上,这样一个发货事实表就可以实现对多个合作伙伴的安全访问。
热交换维度在关系数据库系统中实现起来比较容易,只要在查询时改变要连接的表即可。考虑到数据库中的参照完整性,每个维度的版本都应该包含所有的维度记录,这时,对于被限制的维度我们需要将它们置成空值。