数据仓库现在大家说的很多,但有一个基本清晰的认识是比较好的。我觉得《数据仓库》一本书给的概念挺好,写出来做个笔记。“数据仓库是一个面向主题的、集成的、非易失的、随时间变化的用来支持管理人员角色的数据集合。”这里在加上一点数据是具有粒度化的。
第一点 面向主题
面向主题其实就是我们要按照一个目的去存储数据,用数据去表现某一个特定的内容。对于一个保险公司来说,主题可能是顾客、保险单、保险费、索赔。对于一个生产厂家来说主题可能是成本、订单、原材料、销售商。
第二点 集成的
数据仓库的数据来源是多种多样的,具体点说可能是报纸、存储在ORACLE中的子应用的数据,存储在部门的一些数据,而它可以使用存储在任何可用的工具中,总之只要是能找到数据地方都是他的来源,对于应用程序来说,每个数据模型的建造者都有自己的设计风格,在设计自己的应用时,不会考虑以后的数据要和其他方面的数据结合在一起,这也是没有必要的,未来的事情谁知道呢。所以这就存在了很多的不一致性。举一个简单的例子。比如存储用户的性别,甲可能用0、1表示,乙可能用m/w表示,但在数据仓库我们要把它变成一致性,不论你用0、1还是m/w,总之你只能用一个。集成处理大多数就是所谓ETL过程。
第三点 非易失
数据仓库的数据当然是非易失的,你认为呢,数据仓库存储的是历史数据,是某一信息各种历史快照,我们无需修改什么,只要把每次的数据的历史快照导入仓库中即可。当然像我涉及到项目中,甲方自己的历史数据就是错的,那就不能按常理出牌了。呵呵。
第四点 随时间变化的
数据仓库里时间关键字很重要,数据仓库存储数据千万不要忘记时间,因为它存储的是信息某一时间的快照,失去了时间元素,数据仓库也就没用了。
第五点 数据具有粒度化
恩,这个其实也很好理解。在仓库中我们可以存储相当详细的数据,但如果详细的数据对于我们来说过于庞大,而且对产品没有用,我们可以做轻微的汇总。