大数据架构系列:如何理解湖仓一体?

news2024/12/26 9:32:53

转载:如有侵权,告知即删除

                                                                        引言

这十多年大数据技术蓬勃发展,从市场的表现来看基于大数据的数据存储和计算是非常有价值的,其中以云数据仓库为主打业务的公司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.构建切实有效的湖仓一体架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring Cloud】演进与应用的分布式系统开发利器(文末赠书三本)

🌸作者简介:花想云,目前大二在读 ,C/C领域新星创作者、运维领域新星创作者、CSDN2023新星计划导师、CSDN内容合伙人、阿里云专家博主、华为云云享专家 🌸专栏推荐:C语言初阶系列 、C语言进阶系列 、C系列、…

亚马逊测评养号系统是怎么操作的?

亚马逊鲲鹏测评养号系统可以注册亚马逊买家号、智能一键养号、批量绑定收货地址及支付卡、自动点击广告、货比三家后自动下单、自动留评、QA等,功能非常齐全,基本上是一款从注册到下单于一体的自动化软件。 具体操作流程是先准备好一批账号(没…

《SIMD instruction considered harmful》SIMD指令被认为是有害的

作者:大卫帕特森 (David Patterson) 和安德鲁沃特曼 (Andrew Waterman),2017 年 9 月 18 日 原文链接:SIMD Instructions Considered Harmful | SIGARCH 在撰写 《RISC-V 手册》的过程中,我们将 RISC-V 向量代码与 SIMD 进行了比…

创建一个 vue2.0 的项目(从0到1)的过程

1、首先:下载前端编码工具(如:VSCode) 2、其次:下载 node 与 npm 环境和管理: // 此时就说明成功安装 node 环境与 npm 管理工具: 3、然后:创建全局的 vue (如:vue2.0.8) 和 vue-cli 脚手架; …

Wiki.js 安装 linux(图解)

wiki.js是个开源的知识库系统,官方的docker安装总是出现各种问题, 官方也有给windows的安装包 wiki.js github 一、基础环境 1.nodejs环境 注意,wikijs2.0版本最高支持nodejs16 wikijs3.0支持nodejs18 参考这篇:nodejs编译安装…

Java爬虫通用模板它来了

Java 爬虫在实际应用中有很多场景,例如:数据挖掘和分析、搜索引擎、电商平台、数据更新、监控与预测等行业都需要爬虫借入,那么在实际爬虫中需要注意什么?又该怎么样快速实现爬虫?下面的文章值得看一看。 单线程java爬…

精准监测 智慧气象数据可视化大屏监测系统

前言 风云变幻,气象先行。天气、气候和水对公众的福祉、健康和粮食安全至关重要。 建设背景 市场背景 在全球气候变暖背景下,我国极端天气气候事件明显增多、强度明显增强,气候复杂多变,台风、暴雨、冰雹等灾害多发。常给人民…

网易NDH基于Impala的高性能SQL引擎建设实践

导读:本文将从四个方面来进行介绍。首先是分析在网易NDH中使用 Impala 过程遇到的一些痛点;第二个部分是基于这些痛点问题,我们提出了建设高性能SQL引擎的方案,以及这些方案是基于什么原则来创建的;第三个是基于这些原…

Qt使用第三方库openssl进行RSA加密解密操作详解

一、openssl库的编译,可以参考文档: https://blog.csdn.net/liang19890820/article/details/51658574/ 因为我这里使用的是windows操作系统,可以直接下载exe格式的安装文件,直接安装即可,就包含了我们需要的头文件和库文件,省去了编译操作。exe安装文件下载地址: htt…

Matlab中求解线性方程组——高斯消元法、LU分解法、QR分解法、SVD分解法、迭代法等

系列文章目录 MATLAB迭代的三种方式以及相关案例举例 MATLAB矩阵的分解函数与案例举例 MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍 MATLAB语句实现方阵性质的验证 MATLAB绘图函数的相关介绍——海底测量、二维与三维图形绘制 MATLAB求函数极限的简…

文件系统考古2:1984 - BSD Fast Filing System

今天继续与大家分享系列文章《50 years in filesystems》,由 KRISTIAN KHNTOPP 撰写。 我们将进入文件系统的第二个十年,即1984年,计算机由微型计算机发展到了桌面和机柜工作站, BSD Fast Filing System 登场。 回看第一篇&…

浅谈开源与闭源

开源指的是那些源代码或源设计可以被大众使用、修改发行的软件或设计体,闭源就是不开放源代码。 Linux 无疑是开源软件里最最成功的一个,不管是从它目前的生态建设角度,还是从业界评价来看,包括今天云计算的基础也都倚赖Linux的贡…

【SQL Server】数据库开发指南(九)详细讲解 MS-SQL 触发器的基础概念与应用场景

本系列博文还在更新中,收录在专栏:#MS-SQL Server 专栏中。 本系列文章列表如下: 【SQL Server】 Linux 运维下对 SQL Server 进行安装、升级、回滚、卸载操作 【SQL Server】数据库开发指南(一)数据库设计的核心概念…

WIN10:Cognos10.2_x32安装运行问题总结(二)

一、Cognos安装Congfiguration启动服务异常解决方法 1、用管理员权限启动IBM Cognos Configuration、关闭本机安全软件、关闭防火墙; 2、不卸载本机JDK不删除本机JDK环境,指定c10\bin目录,cogconfig -java:local 命令CMD启动Cognos。 测试…

JavaSE07_static和final

JavaSE-07 【static-final】 第一章 static关键字 1.1 静态static关键字概述 static关键字 一个类的不同对象有些共享的数据,这样我们就可以使用static来修饰 。一旦使用了static关键字,那么这样的内容不再属于对象,而是属于类的&#xff…

通过python封装接口seller_nick获取阿里巴巴店铺所有商品数据,阿里巴巴店铺所有商品数据接口,阿里巴巴API接口

今天给大家分享一个大体的思路和代码示例。请确保采集过程遵循相关网站的使用规则和政策。 使用阿里巴巴开放平台提供的API接口文档,找到seller_nick接口的具体参数及请求方式。使用ython中的requests库发送请求,获取接口返回的数据。对返回的数据进行处…

深度解读新档案法①:企业如何提高档案管理规范性?

上一次,我们列举了关于档案管理需要遵守的法律法规清单,想要了解详情的,可点击添加链接描述。关于如何依法进行档案管理,许多朋友仍有疑问。为此,我们开设了一个专栏,结合企业实践案例,详细解读…

7.5寸_Wifi标签功耗电流计算-单面屏幕-1.8V的Flash测试

7.5寸黑白屏幕Wifi标签不工作的时候电流的消耗主要来自两部分: 待机时,醒来监听时。经过测量,7.5寸黑白屏幕Wifi标签的待机电流是7.04uA , 醒来监听的峰值电流是80.1 mA。7.5寸黑白屏幕Wifi标签系统设定每间隔1秒醒来一次监听是否有唤醒数据…

PPT制作能力在职场中真的重要吗?一定要美术功底才能学好PPT吗?

前言 年轻时手握技术实力这把剑,我觉得闯荡江湖到处可以“仗义出剑”。实际做到一定级别后特别是我做到了架构师后发觉当不具备PPT能力后,我这条路反而越走越坚难了。 2009年时因为工作关系被企业推送了TOGAF培训,培训后以优秀的成绩拿到了…

vite+Vue3 createWebHistory 路由前缀配置

vue 作为前端最火的前端框架之一,大家在使用的过程中必不可少需要使用router(路由)。 路由有hash 和 history 两种,本期主要针对history模式下 路由前缀 使用和配置,进行简单介绍。 env变量 在根目录下,创建开发、测试、灰度、…