什么是数据湖？现在国内有哪些企业在做？
说一下自己的认识，之前看到的答案有些太啰嗦、故弄玄虚了，于是自己看了一下，原文也见于 https://book.douban.com/review/10072449/ 用架构图能很快说明白，用阿里的数据架构图来说 - ODS（operational data store, staging area）存储来自各业务系统（生产系统）的原始数据，即为数据湖 - CDS为经过整合、清洗的数据。其中的DWS汇总层，为面向主题的数据仓库（狭义），用于BI报表出数 简单来说，数据湖的定义就是原始数据保存区. 虽然这个概念国内谈的少，但绝大部分互联网公司都已经有了。国内一般把整个HDFS叫做数仓（广义），即存放所有数据的地方，而国外一般叫数据湖（data lake） 该定义的出处，可以看AWS的介绍（下面也有）. 国外各公司的实践，也大都如此 数据湖和数仓，就是原始数据和数仓模型的区别。因为数仓（狭义）中的表，主要是事实表-维度表（下图），主要用于BI、出报表，和原始数据是不一样的 为什么要强调数据湖呢？ 真正的原因在于，data science和machine learning进入主流了，需要用原始数据做分析，而数仓的维度模型则通常用于聚合、多维分析 另一方面，机器学习用到的数据，也不止于结构化数据。用户的评论、图像这些非结构化数据，也都可以应用到机器学习中 2者的区别，也就是AWS这张图（https://aws.amazon.com/cn/big-data/datalakes-and-analytics/what-is-a-data-lake/?nc=sn&loc=2） 但数据湖背后还有更大的区别 - 传统数仓的工作方式是集中式的：业务人员给需求到数据团队，数据团队根据要求加工、开发成维度表，供业务团队通过BI报表工具查询 - 数据湖是开放、自助式的（self-service）：开放数据给所有人使用，数据团队更多是提供工具、环境供各业务团队使用（不过集中式的维度表建设还是需要的），业务团队进行开发、分析 也就是组织架构和分工的差别 —— 传统企业的数据团队被当做IT，整天要求提数，而在新型的互联网/科技团队，数据团队提供易用的工具，业务团队使用数据，人人具备数据分析能力 https://infoq.cn/article/the-development-history-of-big-data-platform-internet-age 中的图比较直观 因此，数据湖最大的意义，在于帮团队做组织架构调整，鼓励所有人了解、分析数据，降低出数类IT型工作。当然，对传统企业而言，也是引入机器学习、用户画像的必须基础设施 从传统集中式的数仓转为开放式的数据湖，并不简单，会碰到许多问题 - 数据发现（Data Discovery）：如何帮助用户发现数据、了解有哪些数据？ - 数据安全：如果管理数据的权限和安全？因为一些数据是敏感的、或者不应直接开放给所有人的（比如电话号码、地址等） - 数据管理：多个团队使用数据，如何共享数据成果（比如画像、特征、指标），避免重复开发；企业合并、协作，数据如何有效管理（比如阿里下的微博、饿了么、优酷这种程度的区别） 这也是目前各大公司都在改进的方向，业内称为数据治理与管理（Data Governance and Data Management） 比如，对于数据发现，目前的解决方案是Data catalog, 典型的比如IBM Watson catalog （算对传统元数据管理的改进）. 对于机器学习方面的数据管理，可以看Airbnb的机器学习平台Bighead中的实践 可参考AWS全家桶，及其新出的data lake formation https://aws.amazon.com/cn/big-data/datalakes-and-analytics/ Big Data Analytics Architectural Patterns & Best Practices https://www.youtube.com/watch?v=ovPheIbY7U8 Effective Data Lakes: Challenges and Design Patterns: https://www.youtube.com/watch?v=v5lkNHib7bw Build and Govern Your Data Lakes with AWS Glue: https://www.youtube.com/watch?v=JsNR8uBVSiA