什么是数据湖 Data Lake ?
背景:随着近几年机器学习的兴起对数据的需求更加灵活,如果从数据仓库中提数会有一些问题。比如:数据都是结构化的(做算法的经常要理解数仓模型,甚至要深入到做了什么业务处理,很多处理都不是他们想要的);数据是经过处理的可能并不是算法想要的结果;算法同学与数仓开发同学沟通成本较大等。
数据湖定义:
是一个以原始格式(通常是对象块或文件)存储数据的系统或存储库。数据湖通常是所有企业数据的单一存储。用于报告、可视化、高级分析和机器学习等任务。数据湖可以包括来自关系数据库的结构化数据(行和列)、半结构化数据(CSV、日志、XML、JSON)、非结构化数据(电子邮件、文档、pdf)和二进制数据(图像、音频、视频)。
数据湖的特点
1、原始格式
数据仓库里是瓶装的水——清洁的、打包好的、摆放整齐方便取用的;数据湖是原生态的水——它是未经处理的,原汁原味的。
2、单一存储
存储库中会汇总多种数据源,是一个单一库。是由多个数据湖填充而成的水上花园(Water Garden)多个系统的数据进行关联不是数据湖。
3、多用途
用于报告、可视化、高级分析和机器学习。数据湖中的水从源头流入湖中,各种用户都可以来湖里获取、蒸馏提纯这些水(数据)
数据湖的优势
1、轻松地收集数据:Schema On Read
2、从数据中发掘更多价值,更适用于机器学习
3、消除数据孤岛
4、具有更好的扩展性和敏捷性
数据湖和数据仓库的对比
综述:
数据仓库是一个优化的数据库,用于分析来自事务系统和业务线应用程序的关系数据。事先定义数据结构和 Schema 以优化快速 SQL 查询,其中结果通常用于操作报告和分析。数据经过了清理、丰富和转换,因此可以充当用户可信任的“单一信息源”。
数据湖有所不同,因为它存储来自业务线应用程序的关系数据,以及来自移动应用程序、IoT 设备和社交媒体的非关系数据。捕获数据时,未定义数据结构或 Schema。这意味着您可以存储所有数据,而不需要精心设计也无需知道将来您可能需要哪些问题的答案。您可以对数据使用不同类型的分析(如 SQL 查询、大数据分析、全文搜索、实时分析和机器学习)来获得见解。
数据湖并不能替代数据仓库,数据仓库在高效的报表和可视化分析中仍有优势。
说明:图片和文字部分来自亚马逊和网络,由作者整理。