【系统架构设计师】二十五、大数据架构设计理论与实践②

news2025/1/4 16:55:55

目录

四、 Kappa架构

4.1 Kappa架构介绍

4.2 Kappa架构的优缺点

4.3 常见Kappa 架构变形

4.3.1 Kappa+ 架构

4.3.2 混合分析系统的Kappa 架构 

五、Lambda 架构与 Kappa 架构的对比和设计选择

5.1 Lambda架构与Kappa 架构的特性对比

5.2 Lambda架构与Kappa 架构的设计选择

往期推荐


四、 Kappa架构

4.1 Kappa架构介绍

        Kappa 架构的原理就是:在Lambda 的基础上进行了优化,删除了 Batch Layer的架构,将数据通道以消息队列进行替代。因此对于Kappa 架构来说,依旧以流处理为主,但是数据却在数据湖层面进行了存储,当需要进行离线分析或者再次计算的时候,则将数据湖的数据再次经过消息队列重播一次则可。 Kappa 数据处理架构如下图所示:

        如上图所示,输入数据直接由实时层的实时数据处理引擎对源源不断的源数据进行处理,再由服务层的服务后端进一步处理以提供上层的业务查询。而中间结果的数据都是需要存储的,这些数据包括历史数据与结果数据,统一存储在存储介质中。 

        从使用场景上来看, Kappa 架构与Lambda 相比,主要有两点区别:

        (1)Kappa不是 Lambda 的替代架构,而是其简化版本Kappa 放弃了对批处理的支持,更擅长业务本身为增量数据写入场景的分析需求
        (2)Lambda直接支持批处理,因此更适合对历史数据分析查询的场景

4.2 Kappa架构的优缺点

        Kappa 架构的优点在于将实时和离线代码统一起来,方便维护而且统一了数据口径的问题,避免了 Lambda 架构中与离线数据合并的问题,查询历史数据的时候只需要重放存储的历史数据即可

        Kappa 的缺点也很明显:

        (1)消息中间件缓存的数据量和回溯数据有性能瓶颈。通常算法需要过去180天的数据,如果都存在消息中间件,无疑有非常大的压力。同时,一次性回溯订正180天级别的数据,对实时计算的资源消耗也非常大。
        (2)在实时数据处理时,遇到大量不同的实时流进行关联时,非常依赖实时计算系统的能力,很可能因为数据流先后顺序问题,导致数据丢失。
        (3)Kappa在抛弃了离线数据处理模块的时候,同时抛弃了离线计算更加稳定可靠的特点。Lambda 虽然保证了离线计算的稳定性,但双系统的维护成本高且两套代码带来后期运维困难。

4.3 常见Kappa 架构变形

4.3.1 Kappa+ 架构

        Kappa+ 是 Uber提出流式数据处理架构,它的核心思想是让流计算框架直接读 HDFS 里的数据仓库数据,一并实现实时计算和历史数据backfll计算,不需要为 backfll作业长期保存日
志或者把数据拷贝回消息队列。事实上, Uber开发了 Apache hudi框架来存储数据仓库数据, hudi支持更新、删除已有parquet数据,也支持增量消费数据更新部分,从而系统性解决了问题2存储的问题。        

        上图是完整的Uber大数据处理平台,其中 Hadoop→ Spark →用户查询的流程涵盖了Kappa+ 数据处理架构。 

4.3.2 混合分析系统的Kappa 架构 

        Lambda 和 Kappa 架构都还有展示层的困难点,结果视图如何支持热点数据查询分析,一个
解决方案是在 Kappa 基础上衍生数据分析流程

        如上图所示,在基于使用Kafka +Flink构建Kappa 流计算数据架构,针对Kappa 架构分析能力不足的问题,再利用 Kafka对接组合Elastic- Search实时分析引擎,部分弥补其数据分析能力。但是ElasticSearch也只适合对合理数据量级的热点数据进行索引,无法覆盖所有批处理相关的分析需求,这种混合架构某种意义上属于 Kappa 和 Lambda 间的折中方案。

五、Lambda 架构与 Kappa 架构的对比和设计选择

5.1 Lambda架构与Kappa 架构的特性对比

对比内容Lambda 架构Kappa 架构
复杂度与开发维护成本维护两套系统(引擎)
复杂度高,成本高
维护一套系统(引擎)
复杂度低,成本低
计算开销周期性批处理计算,持续实时计算
计算开销大
必要时进行全量计算
计算开销相对较小
实时性满足实时性满足实时性
历史数据处理能力批式全量处理,吞吐量大
历史数据处理能力强
批视图与实时视图存在冲突可能
流式全量处理,吞吐量相对较低
历史数据处理能力相对较弱

5.2 Lambda架构与Kappa 架构的设计选择

        根据两种架构对比分析,将业务需求、技术要求、系统复杂度、开发维护成本和历史数据处理能力作为选择考虑因素。而计算开销虽然存在一定差别,但是相差不是很大,所以不作为考虑因素。

        (1)业务需求与技术要求。用户需要根据自己的业务需求来选择架构,如果业务对于Hadoop、Spark、Strom 等关键技术有强制性依赖,选择 Lambda 架构可能较为合适;如果处理数据偏好于流式计算,又依赖Flink计算引擎,那么选择Kappa 架构可能更为合适。

        (2)复杂度。如果项目中需要频繁地对算法模型参数进行修改,Lambda 架构需要反复修改两套代码,则显然不如 Kappa 架构简单方便。同时,如果算法模型支持同时执行批处理和流式计算,或者希望用一份代码进行数据处理,那么可以选择Kappa 架构。

        (3)开发维护成本Lambda 架构需要有一定程度的开发维护成本,包括两套系统的开发、部署、测试、维护,适合有足够经济、技术和人力资源的开发者。而 Kappa 架构只需要维护一套系统,适合不希望在开发维护上投入过多成本的开发者。

        (4)历史数据处理能力。有些情况下,项目会频繁接触海量数据集进行分析,比如过往十年内的地区降水数据等,这种数据适合批处理系统进行分析,应该选择Lambda 架构。如果始终使用小规模数据集,流处理系统完全可以使用,则应该选择Kappa 架构。

往期推荐

安全架构设计理论与实践①文章浏览阅读944次,点赞15次,收藏15次。在信息系统的整个生命周期中,安全保障应包括技术、管理、人员和工程过程的整体安全,以及相关组织机构的健全等。目前,网络与信息安全风险类别可以分为人为蓄意破坏(被动型攻击,主动型攻击)、灾害性攻击、系统故障、人员无意识行为https://shuaici.blog.csdn.net/article/details/140847010通信系统架构设计理论与实践①文章浏览阅读1.8k次,点赞61次,收藏47次。通信网络主要形式:局域网、广域网、移动通信网。局域网网络架构有 4 种类型:单核心架构、双核心架构、环型架构、层次型架构。广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成。通常,在大型网络构建中,通过广域网将分布在各地域的局域网互连起来,形成一个大的网络。移动通信网为移动互联网提供了强有力的支持,尤其是5G 网络为个人用户、垂直行业等提供了多样化的服务。https://shuaici.blog.csdn.net/article/details/140826449

        

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

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

相关文章

2024最新数据库管理工具 Navicat Premium 简体中文版安装

Navicat Premium 是一款由 PremiumSoft 公司开发的多数据库管理工具。它支持多个数据库系统,包括 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 等,使用户能够在一个平台上管理和操作多种数据库,简化了数据库管理任务…

软考基本介绍

一,基本了解 计算机技术与软件专业技术资格(水平)考试(简称软件考试)为国家级考试。 考试设置了27个专业资格,涵盖5个专业领域, 3个级别层次(初级、中级、高级)。 中国计算机技术职业…

品牌网络维权面临的挑战

在品牌治理渠道的过程中,知识产权的运用至关重要。然而,现实情况却不尽如人意,大量的侵权链接涌现,而下架速度迟缓,致使品牌渠道陷入混乱。店铺侵权背后的利益驱动是低价销售吸引消费者,这不仅损害品牌形象…

【HarmonyOS NEXT星河版开发学习】综合测试案例a-京东登录页面

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面(暂未发布) 前言 该案例有一些难度,将前面所学到的全部知识点做了一个全面的总结,代码量也不是很少。里面的一些细节一定要仔细…

MSR020/MSR040低温漂、低功耗电压基准

MSR020/MSR040 是低温漂、低功耗、高精度 CMOS 电压基准, 具有 0.05% 初始精度和低功耗的特点。 该器件的低输出电压迟滞和低长期输出电压漂移的 特性,可以进一步提高稳定性和系统可靠性。 此外,器 件的小尺寸和低工作电流的特性使其非…

lvs-nat模式原理及部署方法

一、环境准备 1.准备三台rhel9服务器 服务器名称 主机名 ip地址备注LVS调度服务器lvs.timinglee.org eth0:172.25.254.100(外网) eth1:192.168.0.100(内网) 关闭selinux和防火墙webserver2网站服务器webserver1.timinglee.orgeth0:192.168.…

【竞技宝】奥运会:法国国奥淘汰埃及国奥晋级决赛

法国国奥在巴黎奥运会男足半决赛跟埃及国奥相遇,赛前大部分球迷和媒体,都一边倒看好法国国奥能轻松获胜。首先,法国国奥整体实力高出一个档次。最后,法国国奥坐拥主场作战的优势。所以,法国国奥正常发挥的话&#xff0…

五条关于有效部署和维护MQTT解决方案的最佳实践

节选自论文《Message Queuing Telemetry Transport (MQTT) 在森林产品应用中的分析与概述》(Analysis and Overview of Message Queuing Telemetry Transport (MQTT) as Applied to Forest Products Applications),发表于《IEEE TRANSACTIONS…

使用Cisco进行模拟配置OSPF路由协议

OSPF路由协议 1.实验目的 1)理解OSPF 2)掌握OSPF的配置方法 3)掌握查看OSPF的相关信息 2.实验流程 开始 → 布置拓扑 → 配置IP地址 → 配置OSPF路由并验证PC路由的连通性 → 查看路由器路由信息 → 查看路由协议配置与统计信息 → 查看O…

锡耶纳大学与 NocoBase:教育管理系统的全新篇章

关于锡耶纳大学 锡耶纳大学(意大利语:Universit degli Studi di Siena,简称UNISI)建于 1240 年,是欧洲最古老的大学之一。如今,锡耶纳大学以其法学院和医学院闻名。这所著名的大学坐落在意大利托斯卡纳的中…

Redis和数据库一致性如何保证

三种经典的缓存模式 Cache-Aside Pattern(旁路缓存模式)Read-Through/Write-through(读写穿透:和1类似)Write-behind (异步批量从缓存写数据库) 旁路缓存模式 读流程 读的时候,先…

HTML5+CSS3笔记(Xmind格式):第四天

Xmind鸟瞰图: 简单文字总结: HTML5CSS3知识总结: 媒体查询: 1.媒体查询格式:media 设备类型 and 设备特性 2.screen:设置屏幕 3.max-width(最大宽度),min-width(最小宽度) 4.可以通过媒体…

阿里国际推出首个专业版AI Search,为什么它会是下一个B2B谷歌?

点击访问我的技术博客https://ai.weoknow.comhttps://ai.weoknow.com 经历过「千模大战」的喧嚣,一年半之后,生成式 AI 的应用层创新终于步入爆发期。 年初的 Sora 激起一阵 AI 视频生成的浪潮。涟漪未散,OpenAI 新的 SearchGPT 又燃起了 A…

CSP-J 复赛模拟题4 解析

需要注意的是&#xff0c;每次操作询问之后都不会对原序列进行修改&#xff0c;即每次操作都是在原序列上直接进行的。 就是说把到l到r之间的所有数用cnt每次加p就行了 根据解析写代码1&#xff1a; #include <bits/stdc.h> #define LL long long using namespace std;…

极狐GitLab安全版本:16.10.1、16.9.3、16.8.5

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

在Linux中,什么叫做线程

在Linux中&#xff0c;什么叫做线程&#xff1f; CPU调度的基本单位。 在Linux中&#xff0c;什么叫做进程&#xff1f; 内核视角&#xff1a; 承担分配系统资源的基本实体。 一个进程内部可以有多个执行流。 task_struct可以理解为轻量级进程。 线程是进程内部的一个分支…

Java15.0标准之重要特性及用法实例(二十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列…

WEB中间件TomCat详解

Java虚拟机详解 一、JVM 虚拟机常识 1、什么是JAVA虚拟机 所谓虚拟机&#xff0c;就是一台虚拟的计算机。在计算机系统上模拟运行一个完整的计算机系统的技术&#xff0c;他是一款软件&#xff0c;用来执行一系列虚拟计算机指令。大体上&#xff0c;虚拟机可以分为系统虚拟机…

鸿蒙第三方应用.hap打包、安装流程。

最近在华为手表上安装第三方应用&#xff08;源码打包构建应用&#xff0c;需要签名&#xff09;。网上看了教程&#xff0c;在此记录下。 准备工作&#xff1a;先安装DevEco Studio开发工具。 进入华为 appgallery connect网站&#xff08;注册、开发者实名认证&#xff09; …