大数据三分钟不入门之三:海纳百川Data Warehouse 与 Data Lake

96
北美枫叶
2017.12.11 12:07* 字数 859

前两篇聊到了大数据的编程语言python和计算框架Apache Spark,有了它们就可以写程序跑应用了,当然花点时间入门是必须的。如果你已经读完前两篇的话,那么不妨再继续聊聊数据仓库(Data Warehouse)和数据湖(Data Lake)。

有一个严肃的问题,大数据存储和计算分析是为了啥? 只是为了单纯的炫技? 就如同个人电脑处理器的更新换代厂商总是不厌其烦的鼓吹“史上最快的CPU”。显然不是。这里得提一下商业智能(Business Intelligence),它是一套完整的解决方案,用来有效的整合企业数据,快速准确地提供报表并提出决策依据,帮助企业做出明智的业务经营决策。如何有效的整合企业数据? 粗糙点说,就是把企业相关的数据塞到同一个地方,结构化的,非结构化的,那么它就叫Data Lake。 如果数据存放前已经经过清洗,聚合,标准化等等操作,那么它就是Data Warehouse。用时髦点的一句话来描述Data Warehouse: Single version of the truth。

毫不夸张的说,Data Warehouse里的数据往往是公司非常重要的核心资产,也是黑客们垂涎已久的地方。得数据者,得天下;失数据者,必失业。自1990年Data Warehouse之父W.H.Inmon提出这个概念以来,Data Warehouse已经走过了近30年的历史,大量的商业公司不余其力在这个领域耕耘,因为这里的钱实在是太好挣了,IBM, Oracle, Sybase, Microsoft etc。当然每个公司运营管理这些Data Warehouse的Database Administrator(DBA)薪水也相当不错,地位也很高,算是个不错的职业。

但随着数据量的越来越大,传统的Data Warehouse已经满足不了企业的商业智能需求。试想一下,CEO开会询问某新爆款游戏的用户使用情况,商业智能和数据仓库部门不得不如实回答还没开始在Data Warehouse里定义dimesions和fact,也就是还没开始收集和清洗数据呢。。。这样是不是挺尴尬。这时Data Lake的概念就派上用场了。来吧,什么乱七八糟的数据先发给我,我这儿是分布式存储HDFS(Hadoop的存储组件), 结构化的,非结构化的,来者不拒。有用的,没用的,先存着。以后需要了,再用ETL(Extract, Transform, Load)流程挖掘出来,然后存入Data Warehouse,Data Mart等等供后续分析。这样我们就能看出他俩流程上的一个明显不同,Data Warehouse是ETL,先清洗聚合在存储, 而Data Lake是ELT,先存储在清洗聚合。事实上,Data Lake在大数据的商业智能领域加速了整个流程,而且更加灵活,被越来越多的公司逐步采用。

海纳百川,有容乃大。在大数据领域,如果Data Warehouse是海,那么Data Lake就是洋。


图片发自简书App
日记本
Web note ad 1