数据湖浅析

一、什么是数据湖?

ODS(operational data store, staging area)存储来自各业务系统(生产系统)的原始数据,即为数据湖。
CDM(common dimension model)为经过整合、清洗的数据。其中的DWS汇总层,为面向主题的数据仓库(狭义),用于BI报表出数。
简单来说,数据湖的定义就是原始数据保存区。虽然这个概念国内谈的少,但绝大部分互联网公司都已经有了。国内一般把整个HDFS叫做数仓(广义),即存放所有数据的地方。

二、数据湖与数仓有什么区别?为什么要做数据湖?

数据湖和数仓,就是原始数据和数仓模型的区别。因为数仓(狭义)中的表,主要是事实表-维度表,主要用于BI、出报表,和原始数据是不一样的。

为什么要做数据湖呢?

真正的原因在于,data science和machine learning进入主流了,需要用原始数据做分析,而数仓的维度模型则通常用于聚合;另一方面,机器学习用到的数据,也不止于结构化数据。用户的评论、图像这些非结构化数据,也都可以应用到机器学习中。

但数据湖背后其实还有更大的区别

- 传统数仓的工作方式是集中式的:业务人员给需求到数据团队,数据团队根据要求加工、开发成维度表,供业务团队通过BI报表工具查询
- 数据湖是开放、自助式的(self-service):开放数据给所有人使用,数据团队更多是提供工具、环境供各业务团队使用(不过集中式的维度表建设还是需要的),业务团队进行开发、分析。

也就是组织架构和分工的差别 —— 传统企业的数据团队可能被当做IT,整天要求提数,而在新型的互联网/科技团队,数据团队负责提供简单易用的工具,业务部门直接进行数据的使用;人人具备数据分析能力。
因此,数据湖最大的意义,在于帮团队做组织架构调整,鼓励所有人了解、分析数据,降低出数类等"IT"型工作。当然,对传统企业而言,也是引入机器学习、用户画像的必须基础设施。

三、挑战

从传统集中式的数仓转为开放式的数据湖,并不简单,会碰到许多问题

- 数据发现:如何帮助用户发现数据、了解有哪些数据?
- 数据安全:如果管理数据的权限和安全?因为一些数据是敏感的、或者不应直接开放给所有人的(比如电话号码、地址等)
- 数据管理:多个团队使用数据,如何共享数据成果(比如画像、特征、指标),避免重复开发

这也是目前各大互联网公司都在改进的方向。

比如,对于数据发现,目前的解决方案就是Data catalog, 典型的比如IBM Watson catalog (算是对传统元数据管理的改进)。 对于机器学习方面的数据管理,可以看Airbnb的机器学习平台Bighead中的实践。

后记:

参考原文:https://book.douban.com/review/10072449/
数据湖对我最大的意义,是让我明白了为什么我get不到数仓的点。因为我偏机器学习、偏业务线,更倾向于拿原始数据分析,而不是用加工好的数据看指标。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章