当谈到数据湖的时候,大家都在说,可以把所有数据(结构化/半结构化/非结构化)一股脑都丢进去,进行统一的元数据管理。然后上层计算对接,进行流批计算/OLAP 分析/算法分析。
这个没问题,数据湖确实能承接底层的这部分能力,但是同时出现的问题也是不容忽视的。
本文将关注讨论,利用湖仓架构,统一结构化/半结构化数据的流批计算,和大家聊聊为什么企业需要实时湖仓。非结构化的视频/图片/文本等数据的存储和计算不在本文的讨论范围内。
当前的企业困境
下图是一个经典的 Lambda 架构,虽然这套架构的优点很明显:技术方案成熟、应用实践广泛,适用于企业发展过程中各阶段、各场景下的大数据开发需求
但是,随着业务对数据时效性要求的提高,许多企业的实时任务体量,正在逐步接近存量离线任务。在数据开发和运维资源有限的情况下,这套架构的问题正在逐渐暴露出来:
· 离线开发链路中的数据更新问题,在当前技术环境下显得越来越难以容忍
· 实时开发链路中的数据不落地问题,无法支持历史数据回溯、查询分析等场景
· 多种计算引擎,造成数据开发学习成本和运维管理成本的居高不下
· 多种存储介质,造成数据存储冗余、批/流数据不一致
· ……
解决之道:实时湖仓
下图是一种实时湖仓解决方案,利用湖存储的特性和 Flink 的流批计算能力,统一存储和计算,解决 La