湖仓一体架构解析:数仓架构选择(第48天)

news/2024/9/20 1:15:29/ 标签: 架构, 大数据, flink

系列文章目录

1、Lambda 架构
2、Kappa 架构
3、混合架构
4、架构选择
5、实时数仓现状
6、湖仓一体架构
7、流批一体架构


文章目录


前言

本文解析了Lambda 架构,Kappa 架构,湖仓一体架构,流批一体架构,以及在大数据场景中,如何选择架构

1、Lambda 架构

在Lambda架构中,为了计算一些实时指标,就在原来的离线数仓基础之上增加了一个实时处理的链路,并对数据源做流式改造:把消息发送到消息队列中(大数据中常用Kafka),实时计算去消费消息队列中的数据,完成实时指标计算,推送到下游的数据服务中去,由数据服务层完成离线与实时结果的合并。

在这里插入图片描述

Lambda架构总结
优点: Lambda架构使开发人员能够构建大规模分布式数据处理系统,它具备很好的灵活性和可扩展性。也对硬件故障和人为失误有很好的容错性缺点:1- Lambda架构最大的问题是需要维护两套计算链路,开发和维护成本2- 计算资源占用增多,服务器存储大

2、Kappa 架构

Kappa 架构可以认为是 Lambda 架构的简化版(只要移除 lambda 架构中的批处理部分即可)。

Kappa架构的核心思想是通过改进流计算系统来解决数据全量处理的问题,使得实时计算和批处理过程使用同一套代码

在这里插入图片描述

Kappa 架构的重新处理过程:

(1)选择一个具有重放功能的、能够保存历史数据并支持多消费者的消息队列,根据需求设置历史数据保存的时长,比如 Kafka,可以保存全部历史数据。

(2)当某个或某些指标有重新处理的需求时,按照新逻辑写一个新作业,然后从上游消息队列的最开始重新消费,把结果写到一个新的下游表中。

(3)当新作业赶上进度后,应用切换结果表,读取 2 中产生的新结果表。

(4)停止老的作业,删除老的结果表。

在这里插入图片描述

Kappa架构总结
优点: 使用一条计算链路完成离线计算和实时计算,节约成本缺点:1- Kappa架构最大的问题是需要重新处理历史数据,程序处理数据的吞吐量会降低2- 数据可能丢失3- 不适用于离线计算和实时计算代码逻辑不一致的情况。举例: 全局去重4- 消息中间件临时存储的数据量和回溯的数据量有性能瓶颈5- 无法复用目前已经非常成熟的基于离线计算的数据质量管理体系(数据治理)

3、混合架构

Lambda 架构与 Kappa 架构的对比:

在这里插入图片描述

4、架构选择

5、实时数仓现状

在这里插入图片描述

在这里插入图片描述

总结:
1- Lambda架构的最大缺点是需要维护两条链路,维护和计算成本高
2- Kappa架构最大的缺点是数据处理的吞吐量低
3- Kappa架构可以称之为真正的实时数仓,目前企业中实时数仓最常使用的计算框架Flink

6、湖仓一体架构

在这里插入图片描述

湖仓一体架构总结
优点:1- 可以存储海量数据2- 可以对中间结果进行查询3- 可以复用离线计算中形成的数据质量管理体系(数据治理)4- 数据可以进行update更新操作缺点:1- 相对Flink实时数仓来说,数据湖对数据的处理延迟相对比较高。数据的分析查询耗时基本在10秒及以上2- 如果基于数据湖搭建Lambda架构,这也是相当于需要维护两条线路

7、流批一体架构

在这里插入图片描述

理念:使用同一套API、同一套开发范式来实现大数据的流式计算和批量计算,进而保证处理过程和结果数据的一致性。

  1. 数据集成流批一体:离线与实时是否使用统一数据采集方式;如统一通过 CDC 或者 OGG 将数据实时捕获推送到 kafka,批与流在从 kafka 中消费数据,载入明细层。
  2. 数据存储流批一体:离线与实时数据是否统一分层、统一存储;兼容数据的一致性和实时性。
  3. 处理逻辑流批一体:流与批处理是否使用统一 SQL 语法或者 ETL 组件,再通过底层分别适配流与批计算引擎,保证数据口径的一致性。
  4. 计算引擎流批一体:流与批使用同一套计算引擎,从根本上避免同一个处理逻辑流批两套代码 问题。
  5. 元数据流批一体:流与批使用同一套元数据管理系统,一方面方便管理,另一方面可以相互访问。

http://www.ppmy.cn/news/1504436.html

相关文章

JAVA游戏源码:泡泡堂|大学生练手项目

学习java朋友们,福利来了,今天小编给大家带来了一款泡泡堂源码。此源码仅供学习使用!! 视频演示 源码搭建和讲解 代码简介 包名称类描述com.whh.frameMyJFrame.java显示窗体、绑定监听、启动线程com.whh.frameMyJPanel.java不断读取人物信息com.whh.m…

PCB设计经验——布线原则

1.连线精简——避免直角布线 导线也应看作一种元器件,有自己的电阻,电感,电容 PCB走线在直角转弯的地方,信号前后部分相互影响,导致分布电容增加,对信号上升沿和下降沿有延缓影响。从阻抗的角度来说&#…

Java 并发编程:Java 线程池的介绍与使用

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 024 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…

前端自定义组件+自建npm缓存服务器

自建 npm 缓存服务 安装 verdaccio npm install -global verdaccio启动 verdaccio verdaccio默认情况下,会在本地启动一个服务 http://localhost:4873/ 开发公共组件 在你的工程目录下执行 npm init -y ,相关配置自己定义index.ts 中开发组件逻辑 …

【WPF开发】如何将工程打包成单独的EXE安装包

一、安装NSIS与HM NIS Edit 1、下载和安装NSIS NSIS官网 2、下载和安装HM NIS Edit HM NIS Edit官网 点击下载后等待几秒,就会弹出下载提示 双击下载的安装包,点击“OK” 点击“下一步” 点击“我接受” 更改路径后,点击安装即可 二、打包软…

82.WEB渗透测试-信息收集-框架组件识别利用(6)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:81.WEB渗透测试-信息收集-框架组件识别利用(5) log4j/log4j2&…

测试人生 | 招聘严峻期从面试无力感,到一天2个offer的一些经验分享(内附美团、字节、快手等面试题)

本人是霍格沃兹北京测试开发学社线下3期学员,拥有3年测试工作经验,之前一直在某大厂外包做软件测试,期间主要是以功能测试为主。 经过一个月的高强度找工作奋战,最终拿下了3家公司offer,选择了一家自己很满意的公司。…

③分析胃癌组蛋白脱乙酰酶HDS模型-SeuratHDS细胞比例

目录 文献Seurat处理步骤 ①HDS分析步骤 ②原文献数据处理 加载单细胞Seurat 换算每个样本每种细胞比例 比较两个分组比例 ①比例计算 ②绘图 单种细胞比例亚组间差异 ①添加分组信息 ②循环作图 文献Seurat处理步骤 组蛋白脱乙酰酶介导的胃癌肿瘤微环境特征及协同…

机器学习笔记 - python学习记录三 Python中的矢量化

当我们必须处理大量数据集时,计算上非最优的函数可能会成为算法的巨大瓶颈,最终导致模型运行时间过长。为了确保代码计算效率高,我们将使用矢量化。任何算法执行的时间复杂度都非常重要,决定了应用程序是否可靠。在实时输出应用方面,尽可能在最佳时间内运行大型算法非常重…

【从相邻元素对还原数组】python刷题记录

R3-图篇 饭前一道题 思路: 单向构造 class Solution:def restoreArray(self, adjacentPairs: List[List[int]]) -> List[int]:mnlen(adjacentPairs)#n表示数组元素总数n1#统计dictdefaultdict(int)#存储关系哈希表hashmapdefaultdict(list)for a,b in adjacent…

E25.【C语言】练习:修改二进制序列的指定位

十进制13-->二进制01101 现要求二进制序列的第5位修改为1,再改成0 复习:逻辑运算 非(NOT)(C语言:~) x0,NOT x-->1;x1,NOT x-->0 与(…

day12 多线程

目录 1.概念相关 1.1什么是线程 1.2什么是多线程 2.创建线程 2.1方式一:继承Thread类 2.1.1实现步骤 2.1.2优缺点 2.1.3注意事项 2.2方式二:实现Runnable接口 2.2.1实现步骤 2.2.2优缺点 2.2.3匿名内部类写法 2.3方式三:实现cal…

JAVA游戏源码:仙剑|大学生练手项目

学习java朋友们,福利来了,今天小编给大家带来了一款仙剑源码。注意:此源码仅供学习使用!! 源码搭建和讲解 启动main入口: //************************************************************************ // ************完整源码…

一步步搭建Web自动化测试框架

测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程。另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人。本章和下一张…

jenkins集成jmeter

jenkins 安装插件HTML Publisher startup trigger Groovy 脚本介绍 cd /app/jmeter rm -rf result.jtl jmeter.log report mkdir -p report sh /app/jmeter/apache-jmeter-5.6.3/bin/jmeter.sh -n -t test.jmx -l result.jtl -e -o ./report-n: 表示以非 GUI 模式运行 JMete…

一拖三无线充底座-带给你极致的便利生活

随着科技的不断进步,无线充电技术已经逐渐渗透到我们日常生活的方方面面,一拖三无线充底座作为其中的佼佼者,以其高效、便捷的特点受到广大用户的青睐。本文将从电磁感应原理、多线圈设计、频率匹配、电能传输、功率分配以及充电管理六个方面…

尚硅谷电商实时数仓笔记-《二》数仓建模概述

上一篇: 尚硅谷电商实时数仓笔记-《一》数仓概述-CSDN博客 二、数仓建模概述 2.1 数据仓库建模的意义 如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置; 如果把数据看作城市的建筑,我们希望城市规划布局合理…

javascript的隐式转换和显式转换

javascript隐式转换 其中号两边只要有一个是字符,都会把另外一个转为字符 如果是加号以外的算术运算符,比如-*都会把数据转换为数字类型。 比如12得出结果是字符型12 2-1得出结果是数字型1 23得到结果是数字型23 显式转换,比如说要把一…

基于ThinkPHP开发的校园跑腿社区小程序系统源码,包含前后端代码

基于ThinkPHP开发的校园跑腿社区小程序系统源码,包含前后端代码 最新独立版校园跑腿校园社区小程序系统源码 | 附教程 测试环境:NginxPHP7.2MySQL5.6 多校版本,多模块,适合跑腿,外卖,表白,二…

每日新闻掌握【2024年8月1日 星期四】

2024年8月1日 星期四 农历六月廿七 今天是中国人民解放军建军纪念日 TOP大新闻 男乒运动员王楚钦回应巴黎奥运会爆冷出局 7月31日,巴黎奥运会乒乓球男子单打1/16决赛爆出冷门,头号种子中国选手王楚钦2比4不敌瑞典选手莫雷加德,无缘16强。 …