数据仓库是一个决策支撑环境,它从不同的数据源得到数据,组织数据,使得数据有效地支持企业决策。
总之,数据仓库是数据管理和数据分析的技术。
数据仓库的最终目的:
是将企业范围内的全体数据集成到一个数据仓库中,用户可以方便地从中进行信息查询、产生报表和进行数据分析等。
数据仓库采集进来的原始数据是杂乱无章的,只有通过构建数据模型,将数据有序的组织和存储起来之后(即模型),才能为上层应用提供高效灵活的支撑,优秀的数据仓库模型对应用的价值主要体现在数据质量、响应速度、成本消耗及健壮水平四个方面:
1、数据质量
通过建模可以准确的理解业务和数据,实现业务和数据的标准映射,从而提升应用的有效性。
比如原始数据对于性别字段的枚举值既有男女,也有01等形式,这种定义的分歧会对上层的应用产生干扰,数据模型应该依据数据标准对原始数据进行标准化,所谓“书同文,车同轨”,数据治理的要求往往要落在具体的数据建模中才能发挥作用。
2、响应速度
通过建模可以提前基于源数据生成应用所需的模型,提升应用响应能力。
宽表就是一种典型的模型,如果没有宽表,应用就要将数据处理的复杂逻辑嵌入在应用中实现,无论是代码的开销、处理的开销及访问的开销都很大,因此往往需要预先生成模型来置换时间,也就是空间换时间。
风险在于应用变化无常,而模型往往后知后觉,现在只管杀不管埋的现象很多了,导致企业中80%的模型没人使用,元数据很大的一个应用场景就是模型生命周期的管理。
3、资源消耗
通过建模可以实现公共数据的共享,提升复用能力。
比如发现某些应用共同需要某个计算字段,则可以将这个计算字段预先生成(即沉淀成模型),这样有新的应用需要时可以直接使用,从而在资源和时间节省上一举两得。
这个角度讲,OLAP的CUBE其实就是一种建模,当然应用(上层模型也可以看成应用)如果不够多,复用无从谈起,建模也就失去了价值,很多时候感觉数据仓库的模型没啥卵用,大多时候是复用的效益不够明显所致。
4、健壮水平
通过建模可以实现应用与源数据的解耦,降低源数据变动对应用的影响,提升应用的健壮性。
比如有100个应用直接依赖某个源数据,如果这个源数据发生变动,则需要对100个应用都进行适配改造,代价非常大。
而如果100个应用都是基于模型支撑的,则可以在保证模型北向应用接口不动的情况下,仅改造模型和源数据的南向接口就可以了,不仅改动的工作量大幅减少(比如原来改100次现在只需要改一次),同时保证了应用的连续性。
仓库根据供应需求而产生的。
就是你那一个数据仓库,你如何创造开发的所有全部历程。