最大区别:
数据仓库是提前设计好模式(schema)的,存储的都是结构化数据。(写时模式write-schema)
数据湖中是可以存储结构化和非结构化的数据,是无法预先定义好结构的。(读时模式read-schema直到有用户要访问、使用数据才会建立schema)
进一步对比的区别:
- 存储位置:
数据仓库:基于关系型数据模型,存储在MySQL、Oracle、DB2、Hive等主流关系型数据库中。
数据湖:通常位于分布式存储系统,例如Hadoop、S3等分布式文件系统。
- 数据源
数据仓库:数据来源最多是来自OLTP业务应用的结构化数据库中摄取的
数据湖:数据来源可以是结构化的、也可以是非结构化的,例如:业务系统数据库、 IOT设备、社交媒体、移动APP等。
- 用户不同
数据仓库:主要是业务系统的大量业务数据进行统计分析,所以会应用数据分析的部门是数据仓库的主要用户,例如:销售部、市场部、运营部、总裁办等等。
数据湖:需要一个大型的存储系统将内外部多源异构数据应收尽收,当前没有明确的数据应用用户或者是目标,将来想要使用这些数据的人可以在使用时开始设计架构,此时,数据湖更适合。但数据湖中的数据都是原始数据,是未经整理的,这对于普通的用户几乎是不可用的。数据湖更适合数据科学家,因为数据科学家可以应用模型、技术发觉数据中的价值,去解决企业中的业务问题,发掘新的商业业务模式。
- 数据质量
数据仓库:非常重数据质量,数据仓库中的数据都是经过加工处理的
数据湖:数据可靠性是较差的,这些数据可能是任意状态、形态的数据。
- 敏捷扩展性
数据仓库:数据模式schema一旦建立,要重新调整schema,往往代价会很大,牵一发而动全身,所有相关的ETL程序可能都需要调整。
数据湖:非常灵活,因为是读时模式,可以根据需要重新配置结构或者模式。
- 应用
数据仓库一般用于做批处理报告、BI可视化。
数据湖主要用于机器学习、预测分析、数据探索和挖掘分析。数据湖的应用可以敏捷地使用机器学习算法进行智能(算法)中台应用服务的研发。
综上,我们可以了解到,数据湖和数据仓库的应用点是不一样的,虽然两种数据设计模式是独立的,但是在企业中有数据仓库,也可以有数据湖。数据湖并不是要替代数据仓库,而是对企业的数据管理模式进行补充。数据湖可以被下游的数据仓库和机器学习模型更好地利用。