关于程序员:大数据架构系列如何理解湖仓一体

59次阅读

共计 2594 个字符,预计需要花费 7 分钟才能阅读完成。

导语 | 本文推选自腾讯云开发者社区 -【技思广益 · 腾讯技术人原创集】专栏。该专栏是腾讯云开发者社区为腾讯技术人与宽泛开发者打造的分享交换窗口。栏目邀约腾讯技术人分享原创的技术积淀,与宽泛开发者互启迪共成长。本文作者是腾讯后盾开发工程师叶强盛。

引言

这十多年大数据技术蓬勃发展,从市场的体现来看基于大数据的数据存储和计算是十分有价值的,其中以云数据仓库为主打业务的公司 Snowflake 市值最高(截止以后 449 亿美元),另一家以湖仓一体为方向公司 Databricks 估值或达 380 亿美元;各大伺机而动的云厂商也纷纷推出本人的数据湖、云数据仓库、湖仓一体产品。

大数据畛域概念(术语)还是十分多的,大多数时候都是先射箭再画靶,先有的需要大家搞了一段时间,而后由一些权威人士提出一些概念(术语)用于形容,所以不能严格用数学的定义形式去框定这些概念(术语)的边界;且很多时候一个术语“形象”比“精确”更易流传,形象意味着易懂,精确意味着信息量微小(参考数学定义)。倡议能够从需要的角度去切入了解这些大数据概念和技术,不要过于谋求精确的定义。\
无论是数据湖还是数据仓库最初还是面向于解决用户的问题,用户要的其实是数据里的信息,依赖于湖和仓的数据摄取、存储、计算能力次要是因为海量多元的数据,如果用户数据小业务简略齐全能够用本地 Excel 导入数据进行各种无效剖析。以下探讨数据湖、数据仓库、湖仓一体都是基于用户的数据是海量且简单多元的。\

数据流程

如上图,在一个简单场景里,数据分析人员须要进行业务建模、数据建模;技术人员须要进行数据架构的设计、开发、保护;用户能够应用业务模型、数据模型后产生业务价值;App 依据算法、模型、用户画像等提供性能和举荐。\

What: 什么是数据湖、数据仓库?

阐明一下,以后支流的数据湖技术对二进制数据(图片、音频等)不敌对,文章上下文说的都是剖析型(结构化、半结构化)数据。

只有业务场景简单数据多元化,无论是你基于任何一个存储框架也得存储各种各样的数据,而后你得有计算引擎能够计算这些数据;同时因为业务要求,你须要对数据进行实时剖析。数据湖技术把上述的过程集成化、标准化了;在数据入湖一开始就对数据依照指定规范进行组织,反对流批一体,不同框架有不同的组织形式(对特定场景有优化),然而目标都差不多;入湖后,提供标准化的数据读取形式,反对各种 MPP 引擎的计算;因为数据提前组织过,所以写入性能降落,查问性能晋升。所以你可能之前始终在用数据湖,只是没用到数据湖技术。

数据仓库在入库之前,个别须要进行数据建模;接着依照表的格局对数据进行标准化和表指定的存储引擎进行数据组织,此时可能会损失掉一些信息;计算层通常都会对存储引擎的数据结构进行优化,以此来取得极致的查问体验。日常咱们在进行大数据架构的设计实现时,个别会做的比数据仓库限定的范畴多,然而咱们还是称为数据仓库,所以还是再次提一下,不要太谋求精确的定义。

湖仓比照

(以上图片来自阿里云)

Why:业界为什么要做湖仓一体?

我来形象地形容一下:汇合两者的劣势,像数据仓库一样治理的数据湖,像数据湖一样凋谢的数据仓库。

从 What 形容中数据湖和数据仓库的形容能够看出,业内罕用的大数据架构基本上就是湖仓一体,即拓宽的数据仓库的性能,也会被动的标准数据的存储和应用。业内目前分享进去的信息来看,次要还是为了替换掉老的 Lambda 和 Kappa 架构,想通过一个绝对简略的架构进行降本提效。

湖仓价值的交点

(以上图片来自阿里云)

How:业界怎么做湖仓一体?

目前业内的湖仓一体的架构个别都叫基于某某数据仓库的湖仓一体架构,用户会把热数据(频繁查问)放在数据仓库中,无论在存储和计算上都有大量的优化,计算速度快、老本高;冷数据放在数据湖中,计算慢、成本低,当用户要查问时,间接通过数据仓库的计算层来近程拜访数据湖格局的数据,许多架构中还会来长期扩容弹性计算节点来计算冷数据,防止热数据的高效查问受影响。

湖仓一体冷热存储架构

如上图,近 N 天的热数据在常驻 MPP 计算层进行查问,数据变冷后转成数据湖存储格局入湖,后续由弹性 MPP 计算层对数据进行计算,个别冷数据次数频率较低。

湖仓一体存算拆散架构

如上图,所有数据异步入湖,数据仓库的元数据会更新,用户查问时会缓存须要扫描的原始数据,通过缓存淘汰机制清理计算频率较低的数据。

实在业务场景可能是同一套架构外面会反对上述两种实现。也有一些湖仓一体的架构中没有数据仓库产品,仅用了 Presto 作为查问减速(火山引擎、Bilibili),不过整体架构大抵也差不多。

以下列举了业界实现的计划:

阿里云 MaxCompute+Hologres

\

阿里云 EMR+Sarrocks

华为云 湖仓一体

字节跳动 基于 Doris 的湖仓一体摸索

字节跳动 - 火山引擎 湖仓一体云服务

bilibili 湖仓一体架构

Google BigLake

Amazon Lake House

Azure Lake House

SnowFlake Data Lake

总结

以后湖仓一体次要面向于解决用户数据量特地大且多元化的场景,仓的作用在于提速,湖的作用在反对海量的数据并发写入和海量存储;且设计者心愿尽量升高架构的复杂度,提高效率。

以下集体评估,仅供参考:

  • SnowFlake 在剖析型数据场景下基本上就是天生的湖仓一体,劣势微小。\
  • Doris/Starrocks 的架构也会往 Snowflake 方向改良,后劲满满。
  • 基于 Spark/Presto 的湖仓一体,查问的效率会低于上述两种,然而能够作为补足上述的局部场景。

参考资料:
1. 多角度解析:数据湖 VS 数据仓库的基本区别

2. 深度比照 Delta、Iceberg 和 Hudi 三大开源数据湖计划

3.2 万字详解数据湖:概念、特色、架构与案例

4. 详解数据湖,概念、特色、架构、计划、场景以及建湖全过程

5.4 万字全面把握数据库、数据仓库、数据集市、数据湖、数据中台

6. 大数据倒退 20 年,“仓湖一体”是终局?

7.B 站基于 Iceberg 的湖仓一体架构实际

8. 亚马逊湖仓一体

9. 构建切实有效的湖仓一体架构

作者简介

叶强盛

腾讯云开发者社区【技思广益·腾讯技术人原创集】作者

腾讯后盾开发工程师,目前负责腾讯苍穹大数据 OLAP 引擎相干研发工作,有着丰盛的大数据框架研发教训。

如果你是腾讯技术内容创作者,腾讯云开发者社区诚邀您退出【腾讯云原创分享打算】,支付礼品,助力职级降职。

正文完
 0