从事数据仓库相关工作已经两年了,感觉现在的理解和两年前相比,有些不同,也可以理解为以往的一些误区吧。
现在的IT业,名词太多,一个定义出来,马上会有一大堆的解释,对于数据仓库和数据集市,每人的理解都有不同,从实施的角度来看,一定是需要明确每个名词的具体含义,在各方达成共识,无数先驱都已经下过不同的定义,以下只是个人理解,不敢说对或错。 数据仓库 一提到数据仓库,人们首先想起的肯定是这是一个大数据库,将企业的各种类型的系统、信息进行整合,包含了企业的整体的信息,可以用于以后的分析、统计。更进一步从数据仓库的定义而言,他的四个特征:面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile,有翻译为不可修改的)、反映历史变化(Time Variant)。 这些概念很多地方都有描述,不多做解释。只是感觉有些误导之嫌。这里提到的应该是广义上的数据仓库吧(包括了集市的概念)。对于具体的分析而言,或者说我们做的每个cube,分析,肯定是面向主题的,但是对于数据仓库而言,真的是面向主题的吗?数据仓库中的数据分为原子级别的数据和轻度汇总的数据,既然他应该是包含公司各系统数据,对于原子数据而言,他应该是标准的,针对每个行业和具体公司的一个规范化的数据模型,这应该是一个与主题无关,而不是一个面向主题的数据模型。 另外,一提到数据仓库,很多人都会说,星型模型、雪花模型,其实数据仓库本身,至少从原子数据而言,应该还是规范化的数据模型,这样,才可以保证仓库向外提供的是没有歧义的、一致的、不冗余的数据、具有企业统一标准,比如说我们需要计算保费收入、赔款时,只有一种标准计算方法,不会说从这两个表中能算,通过其他两个表也能算,不论这两个结果是否一致,都是不允许的。当然,如果对于不同的部门有不同的计算方式,这是正常的,但这两种方式计算的结果的名字应该有所区别。 数据集市 数据集市需要是面向主题的,这点无可厚非,只是有一点,我们需要注意的对于数据集市其实也有不同的理解。数据集市是满足部门级或工作组级需求的,而不是具体的每个分析主题。往往我们会混淆这一点,不是说我们做了几个cube就是数据集市了,这只是几个分析主题而已。 到此,我想我应该表述清楚了,数据仓库 -> 数据集市 -> 分析主题(有的时候需要在数据仓库层次前增加一个数据缓冲层,有时称为ODS),我们做项目时未必需要解释清楚每个词到底是什么意思,主要是清楚客户心目中的数据仓库是什么,他们是想做几个cube分析分析而已,还是着重于数据仓库的原子模型的设计。 对于数据仓库的建设途径,不同的企业也有不同的看法,有人认为应该建立一个大而全的仓库,把数据先整合起来,有人认为,目前阶段可能只需要建立几个分析主题就可以了。我想,这里可能会用老外常说的词,it depends ... 关键是看企业的信息化水平了
原文链接: 数据仓库之路