一、发展历程
1. 概述
湖仓一体架构是针对数据存储的一种架构,主要还是针对企业级系统大数据存储及治理的一种架构方案。
2. 演变过程
湖仓一体架构是第三代演变的架构
- 第一代:纯粹的数据仓库。
- 第二代:两层的湖仓一体,数据湖还是数据湖,数据仓还是数据仓,只是简单的融合在一起,运营系统的数据进入数据湖,数据仓从湖中提取数据ETL后,再次存入数据湖,供给业务系统使用。
- 第三代:湖仓一体,湖中建仓,在当前的架构中其实是数仓的功能融合到了数据湖中,让数据湖拥有数仓的功能。
3. 理解一下
湖仓一体(LakeHouse)出现的原因
我们先来回顾数据仓库和数据湖的概念
数据仓库
- 如果做过几年业务系统开发的开发童鞋一定深有体会,随着业务系统访问量和运行时间的增加,数据量级也随之增长,此时如果我们开发一个新的系统需要用到多个业务系统的数据,该如何操作?
- 如果多个业务系统分属不同数据库,甚至不同平台的数据库,比如Mysql/Oracle/MongoDB/PG,怎么才能关联到一起?
这时候就出现了第一代的数据仓库,概念也是很顺理成章,将各个数据库的数据抽取/转化/加载到一个大的数据库不就行了.
这里的一个大的数据库就是数据仓库(Data Warehouse),简称DW
数据抽取/转化/加载的过程就称为ETL
数据湖
- 数据仓库已经解决了大部分的数据问题,为什么还要数据湖?
数据仓库只能存储结构化和半结构化的数据,而我们业务系统中还有很多非结构化数据,比如日志、图片、语音、视频文件等等,这种数据没有办法按照一个结构去存储,可是某些情况下我们还是需要对这些数据进行分析的,比如算法工程师或数据科学家通过非结构化数据分析用户的行为,这个时候数仓就不能满足我们的需求了,,,
我们需要将业务系统的所有数据都存储到一个地方,它可以存储结构化、半结构化、非结构化的数据
这个地方就是数据湖(Data Lake)
数据湖就是我们不管是什么样的数据,不管当前对我们有用没用,先存储进去,万一后面有用呢.
-
数据湖的特点: 能存储任意数据,解决数据孤岛问题,容易出现数据沼泽问题.
- 数据孤岛: 各个业务系统数据并不相通,每个业务系统都自己搞自己的业务数据,即使他们的数据可能存在互通之处,不进行也无法进行交流沟通.
- 某公司有三个业务系统,每个业务系统都存储了一份自己的单位/员工信息,即使这份信息其实是一样,当某一个系统的单位/员工信息修改后,其他系统并不会随之修改,互不影响,就像孤岛一样
- 数据沼泽: 数据湖由于可以存储任意数据,因此所有业务系统都往里面扔数据,但不进行数据治理,导致数据湖的数据越来越多,越来越杂乱,最终形成一个杂乱不堪的数据集,无法从中获取有效数据.
数据湖使用的正确姿势:
可以联想一下我们现实生活中的湖泊,上游有水进入湖泊,湖泊有下游流出,并进入到各个河流
数据湖也是一样的,上游业务系统存储进入数据,数据在数据湖中经过治理处理后,进入到下游的各个业务系统中,然后各个业务系统再形成新的数据存储入数据湖,周而复始,形成良性循环,让数据产生更多的价值
湖仓一体
二者结合可以解决很多问题
- 湖仓一体支持数据在数仓和数据湖之间流动,可以将最近要分析的某类数据从数据湖中提取到数仓中进行更好的分析,也可以将数仓中暂时用不到的数据转入数据湖进行低成本存储,降低成本.
- 并且湖仓一体提供了统一的元数据,减少了第二代双层湖仓一体的ETL工作,也相当于减少系统的复杂度,将系统的稳定性下沉
- 三个系统均有人员信息,当某个系统某个人的岗位发生变动,数据流入湖中,通过ETL加工,流入下游,下游系统使用该数据的时候,岗位状态是最新的,不会产生数据孤岛的问题。
二、为什么要引入湖仓一体?
- 数据复杂多样
- 当企业存在大量
结构化、半结构化和非结构化
数据,并且数据来源众多,如传感器数据、日志文件、交易记录等。传统数据湖或数据仓库难以有效整合这些多源异构数据,湖仓一体可以统一存储和管理。 - 企业内部不同部门的数据需要深度融合,如销售数据和生产数据结合来优化供应链,湖仓一体能打破数据孤岛,实现数据共享和融合。
- 当企业存在大量
- 对数据实时性和灵活性要求高
- 企业有实时数据分析需求,例如金融机构实时交易进行风险预警,互联网公司实时分析用户行为做个性化推荐,湖仓一体支持流处理,满足实时数据需求。
- 数据分析师和科学家需要灵活探索数据,传统数据仓库灵活性差,数据湖管理薄弱,湖仓一体兼备二者优势,能支持敏捷分析。
- 数据管理和治理难
- 数据量庞大且来源复杂,需要统一的元数据管理来明确数据的定义,来源等信息,湖仓一体提供这种集中管理功能,提高数据可追溯性。
- 面对严格的数据安全和隐私法规,需要加强数据治理和合规性管理,湖仓一体的安全机制和访问控制能满足这些要求。
- 考虑成本控制和资源优化
- 传统的数据存储和计算方式可能资源浪费,湖仓一体的存算分离架构能灵活调整资源,降低硬件和运营成本。
- 同时维护数据湖和数据仓库易导致数据重复和冗余,湖仓一体可以避免重复建设,高效共享和利用数据,节省成本。
- 要支持多种工作负载和应用场景
- 企业有多种数据应用场景,如数据科学、机器学习、SQL 查询等,湖仓一体可以在同一平台支持这些不同负载,通用性强。
- 随着人工智能和机器学习应用增多,需要大量数据训练模型,湖仓一体能提供数据资源和计算支持,推动这些技术落地
三、湖仓一体的应用场景
- 阿里云 MaxCompute+Hologres
- 华为云 湖仓一体
- 字节跳动 基于Doris的湖仓一体探索
- bilibili 湖仓一体架构
相关内容
实时数仓新征程
https://blog.csdn.net/weixin_43932609/article/details/144446342
开启数据湖 “宝匣”
https://blog.csdn.net/weixin_43932609/article/details/144406593
数据仓库:智控数据中枢
https://blog.csdn.net/weixin_43932609/article/details/144393368
=========================================================
人生得意须尽欢,莫使金樽空对月!
__一个热爱说唱的程序员。
今日份推荐音乐:KEY.L刘聪/李佳隆《散心》
=========================================================