数据湖回顾
在之前的文章《什么是数据湖》中提到数据湖遇到的几个挑战:
- 不支持事务,缺乏对数据质量和治理的约束,缺乏性能优化的手段。
- 缺乏对数据质量和治理的约束,数据存在可靠性的问题
- 元数据存储的扩展性差,随着数据湖的数据越来越多,查询性能变得越来越慢
湖仓是如何解决这些挑战的
如何解决数据湖面临的挑战?在数据湖的基础之上引入事务层,把数据湖和数据仓库的优点有机结合在一起,形成了一个可以同时支持数据分析、数据科学、机器学习运行的系统。
什么是湖仓
湖仓的主要特性:
- 事务支持:一个企业级的湖仓会有同时多个数据流并发的读和写。ACID事务的支持可以保证并发读写数据时的一致性。
- BI支持:支持通过BI工具直接访问数据,以降低延迟、并且降低了成本(一份数据不需要同时在数据湖和数据仓库中存储两个拷贝)。存算分离:存储和计算分开在不同集群,方便扩展以支持存储更多的数据和支持更多的并发访问。
- 开放:存储格式开放,如Parquet; 提供标准化的访问API以支持各种不同的工具和引擎高效地操作数据。
支持各种不同的数据类型,非结构化到结构化:湖仓支持各种应用程序存储、修改、分析、访问像图像、视频、音频、半结构化数据和文本。 - 支持不同的工作负载:包括数据科学、机器学习、SQL和分析。
- 端到端的流:实时报表是企业中常见的应用。对流的支持,使得企业不需要再额外搭建一套系统来服务实时的应用。
以上都是湖仓的主要特性。当然,企业级的应用还需要其他额外的特性,如数据安全、访问控制,审计、生命周期、血缘等数据治理方面的能力,以及数据目录、数据指标等。
数据仓库 vs 数据湖 vs 湖仓
对比项 | 传统数据仓库 | 数据湖 | 湖仓 |
---|
成本 | ¥¥¥ | ¥ | ¥ | 存储格式 | 专有格式 | 开放 | 开放 | 可扩展性 | 扩展成本高昂、指数级增长 | 扩展成本低 | 扩展成本低 | 面向的用户 | 数据分析师 | 数据科学家 | 数据分析师、数据科学家、机器学习工程师 | 可靠性 | 数据质量高,高可靠 | 数据质量低、可能成为数据沼泽 | 数据质量高、高可靠 | 易用程度 | 简单 | 困难,数据缺乏组织和管理, | 简单 | 性能 | 高 | 低 | 高 |
当前主流的湖仓方案
DeltaLake, Hudi , Iceberg, 具体可见文章《湖仓方案DeltaLake、Hudi、Iceberg功能对比》
|