数据仓库(集市)之间共享维度表
2009-09-19 00:00:00 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

经常有朋友问到一个问题:事实表和维度表是不是一定要在一个数据库里面呢?
为什么会有这样的问题呢?因为我们讲到,如果数据仓库足够大的话,可能会拆分为所谓的数据集市。而通常会按照所谓的业务模块的不同划分,例如人事管理的,销售管理,财务管理的等等。
这样做看起来不错,但随之而来又有一个问题了:这些数据库之间其实有点信息是共享的,例如员工信息。那么是不是每个数据集市中都要单独保存一份呢?
我想绝大部分情况下,如果每个数据集市都单独保存一份,这不是一个好的设计。一来数据是重复的,同时也带来了同步更新的问题。
那么,我们该如何跨数据库设计事实表和维度表的关系呢?事实上,只要你动手开始做,(而不仅仅是想),就会发现它并不是那么难
1. 下面的图,我展示了两个不同的数据。作为演示目的,我就是在HR数据库中建立了一个维度表DimEmployees,而在Sales数据库中建立了一个事实表FactSales。
图片看不清楚?请点击这里查看原图(大图)。
很显然,我们不可能为他们在数据库内部设计好关系。但这又有什么问题呢?没有。数据仓库(或者数据集市)只是存数据,至于数据完整性的保证,我们还有其他很多方式(例如SSIS)来做。
2. 我们在设计Analysis Service项目的时候,需要添加两个数据源
3.同时,我们据此创建一个数据源视图
很多朋友都诧异地说,在这个对话框,我们显然是只能选择一个数据源的。是的,你没有看错。你在这个向导中,只需要选择任意一个数据源即可。我们要做的是,先把这个数据源视图创建起来。
然后,就可以在数据源视图的空白处,点击右键,选择“添加/删除表…”
你会发现这里可以选择不同的数据源
图片看不清楚?请点击这里查看原图(大图)。
4. 为这两个表创建关系,最终看到的效果如下
图片看不清楚?请点击这里查看原图(大图)。
5. 创建Cube,设计维度,部署,处理,浏览
最后看到的效果如下
图片看不清楚?请点击这里查看原图(大图)。
更多精彩
赞助商链接