概述-数据仓库是什么

数据仓库是什么?

我以前一直把数据库和数据仓库弄混,因为我根本无法区别两者之间到底是什么差异,什么关系。尤其是中文名上几乎是相同的含义。 库不就是仓库吗?数据库不就是存放数据的仓库吗?那为什么数据库和数据仓库是两个东西呢?

数据库的英文是database,数据仓库的英文是data warehouse。都是国外传过来的,英文上差异还是不小的,至少不会弄混。 估计中文翻译database的时候讲求神似,翻译成了数据库,非常准确好理解。结果碰到data warehouse只能直译数据仓库了。

后来随着对这块的接触,慢慢理解了两者的差异。 数据库和数据仓库难以区分是正常的,因为我开始是按照形式的不同做得区分。 实际上这两者的形式可以完全一模一样。都可以使用MYSQL,都是库、表、字段、数据,甚至内容都可能一模一样(比如业务极简一年只做一天、数据量极少、不需加工处理的情况下)。

必须用目的来区分。 数据库的目的是支持各种系统正常工作用的,数据仓库的目的是为了对数据进行处理分析,为决策提供支持用的。

因为目的不同,数据库和数据仓库为了能更好的更有效率的达成目的,各自都基于不同的路径演化,形式上的差异也越来越大。 变成现在一说数据库,基本都是mysql,一说数据仓库,基本都是hdfs+hive。

数据仓库的面向主题、集成、相对稳定、反映历史变化的这些特点,不是天然存在的,而是为了更好的处理和分析数据,以能满足决策需要演化而来的。

一提数据仓库,必提Bill Inmon,他给数据仓库下了很多定义。 可我认为,这些定义,实际上是受其历史条件的局限性的影响,以前很有效,所以变得正确。但现在已经不算是最好的解决方案了。

数据仓库理论成型与1990年,1991年苹果的 Macintosh Quadra 700 配置的是25MHz的处理器和8M的内存,售价34000,拿上海当时平均工资10年不吃不喝可以买一台。但这配置能干嘛? 要存储没存储,要计算没计算,硬件性能限制的死死的。应该也没有成熟易用的数据处理软件,导致相关人才门槛高,人力上限制的也死死的。

如果有足够的资源数据仓库解决能解决所有问题是否更好?是否面向主题只取决于是否需要多人分工协作,或一个人工作时是否需要拆分内容方便管理。 如果能有一个代理功能可以连接多系统多存储并转化为统一格式数据,是否还需要将数据整合在一起呢? 如果业务系统数据库足够强大可以在其上直接操作处理,或者数据收集功能足够强大,可以秒级更新数据,稳定的数据存在的必要性是什么呢?难道最新的数据不是更有价值的吗? 需要能反应历史情况?现在mysql数据库可以做到回滚到任意一个时间点上的数据状态,如果数据仓库的技术也能支持且能满足处理和分析的要求,是否比N天甚至N月更新一次的数据更好用?

不过虽然现在硬件、软件、人才比历史增长了不知道多少倍。 可业务的复杂度、问题的时效性、数据的量级、处理的难度也增加了非常多,导致1991年的数据仓库方案的设计,还是有不少适用于当前情况。 但这不是返祖的理由,每一个解决方案都是有其背后特殊的历史情况的。 知其然更要知其所以然,才能基于当前的要求和条件,参考大师们经典解决方案的方式、方法和设计思路,调整优化后形成更好的解决方案。

尽信书不如不读书,生搬硬套经典不如穿越回古代吧。


点击 查看更多


注: 以上所有内容不确保正确准确, 仅是个人思考的结果, 欢迎交流沟通 V1.0 2020年10月11日
经验分享 程序员 微信小程序 职场和发展