在2014年夏天,LinkedIn的Jay Kreps发表了一篇文章描述了Kappa架构,解决了一些Lambda架构的陷阱。 Kappa架构并不是Lambda架构的替代,因为有些Lambda架构并不适合迁移到Kappa架构上去。 2 kappa架构 ? 创建kappa架构的一个最重要的动机是避免维护batch和speed层两份独立的代码。一个核心的思想就是用一个单独的流处理引擎处理实时的计算和连续不断的数据的重复计算。 结果kappa架构的组成只有两个部分:stream processing和serving。流处理层运行流处理任务。运行一个流处理作业以启用实时数据处理。
当然,那就是Kappa架构。 Kappa架构 Kappa架构是真正意义上的流批一体的处理方式。它是随着流处理引擎的逐步完善后,由LinkedIn公司提出的一种实时数仓架构。 ? 但Kappa统一了数据处理架构,减少了计算资源的浪费,降低了运维成本。而且使得代码只需要编写和维护一次,但Kappa无法解决流处理和批处理在部分处理逻辑不一致的情况。 技术选型 Kappa架构在选型上,消息队列常选择Kafka,因为它具有历史数据保存、重放的功能,并支持多消费者。 Kappa架构和Lambda架构,并没有优劣之分,只是适用场景不同而已。 流式数据模型 架构设计 数据模型设计是贯穿数据处理过程的,在实时流式数据处理中也一样。
架构中资源的分配和调度 HDFS:分布式文件系统,用于数据的存储 Zookeeper:协调服务,用于Kappa架构中各系统的协调 所以,Kappa架构典型的技术框架主要是: 流式计算:Flink、Spark Kafka作为消息队列,是整个Kappa架构中最为核心的技术,用于收集和传输实时数据流。 所以Kappa架构的关键技术真可以总结为:流计算框架 + Kafka 总结 Lambda架构:批处理+流处理,实时与历史数据结合 Kappa架构:全流式处理,低延迟实时计算,历史数据处理弱 适用场景: 需要历史数据,选择Lambda架构 实时性要求高,选择Kappa架构 案例: 电商推荐系统:Lambda架构,利用用户历史行为推荐 网络攻击检测:Kappa架构,低延迟实时检测异常 小结 面试可能会问到两种架构的优缺点 而Kappa架构以流处理为主,实现低延迟的实时计算,但对历史数据的处理相对较弱。
三部分: Batch Layer:批处理层 Speed Layer:流处理层 Serving Layer:服务层 A2 Kappa架构 ? 在lambda的基础上删去了批处理层。 A4 相关资料 详细可看以下博文(都不错大家耐心阅读): lambda架构 kappa架构 IOTA架构
基于自己的理解,Jay 提出了基于Kafka的用实时完全实现数据处理的系统,他把它命名为Kappa。 Kappa 的架构: ?
Lambda架构与Kappa架构是大数据处理领域的两种核心架构模式,主要差异体现在数据处理逻辑、系统复杂度和适用场景等方面。 Batch Layer)、加速层(Speed Layer)、服务层(Serving Layer) 批流混合处理:历史数据通过批处理层离线计算,实时数据通过加速层流式计算,结果合并后提供服务 Kappa Kappa架构适用场景 以实时处理为主的业务场景,如广告点击分析、实时监控; 事件型数据源为主的系统(如日志流、消息队列),需简化架构并降低维护成本; 优先选择Kappa架构:若实时性要求极高、数据源以事件流为主,且需简化系统架构以减少运维成本。
kappa系数是用来衡量两个变量一致性的指标,如果将两个变量换为分类结果和验证样本,就可以用来评价分类精度了。 计算公式如下: kappa=(Po-Pe)/(1-Pe) 其中,Po是总体精度,Pe是偶然一致性误差 即使是两个完全独立的变量,一致性也不会为0,仍存在偶然现象,使两个变量存在一致的情况,所以仍要提取偶然一致性
从一篇论文——融合注意力机制和高效网络的糖尿病视网膜病变识别与分类,看到人家除了特异性、敏感性、准确率、混淆矩阵以外,还用了加权kappa系数,所以了解一下kapp系数的知识,加权kappa还没找到更好的资料 资料来源于百度百科词条——kappa系数 Kappa系数用于一致性检验,也可以用于衡量分类精度,但kappa系数的计算是基于混淆矩阵的. kappa系数是一种衡量分类精度的指标。 ,bC %在百度词条里的图中,真实样本数就是按列求值,预测出来的样本就是按行求值 %这里按照kappa系数百度词条里的图来计算,但是我一般用的混淆矩阵图是反过来的。。。这里不管了。。。 kappa来说,他们都错了,错的程度一样,这显然不符合常识,而加权kappa可以说明A预测的错误更大,这样更符合常识,博客中也说了对于一些有序关系的级别得分,可见加权kappa适用于有序的关系,并不是说加权 kappa和普通kappa就一定有哪个比较好。
1.2 Kappa架构的提出Kappa架构由LinkedIn的前首席工程师杰伊·克雷普斯(Jay Kreps)提出,作为Lambda架构的改进方案。 二、Kappa架构的业务场景Kappa架构广泛应用于需要实时处理和分析数据的场景,包括但不限于:金融服务:实时交易监控、欺诈检测和风险管理。电子商务:实时推荐系统、库存管理和客户行为分析。 三、Kappa架构的功能点3.1 数据流处理Kappa架构所有数据都是以事件流的形式处理的,没有批处理的概念。数据流是连续的、实时的,不需要区分历史数据和实时数据。 五、Kappa架构解决的问题Kappa架构通过统一的流处理框架,解决了传统Lambda架构中批处理和实时处理的复杂性,实现了实时和批量数据的统一处理。 六、Kappa架构的底层原理6.1 数据流在Kappa架构中,数据流是连续的、实时的,从各种数据源(如传感器、日志、交易系统等)产生,并通过消息队列(如Apache Kafka)传输到流处理引擎。
在本文中,我们将深入研究 Lambda 和 Kappa 架构,研究它们的主要特征、优点和注意事项。 Kappa 架构:简化实时处理 Kappa 架构通过专注于流处理,提供了 Lambda 架构的简化替代方案。它包含不可变数据流的概念,无需维护单独的批处理层。 在 Kappa 架构中,所有数据都作为无限的事件流引入和处理。数据流经系统并进行实时处理,从而实现近乎即时的洞察力。 选择正确的架构:要考虑的因素 在 Lambda 和 Kappa 架构之间做出决定时,应考虑以下几个因素: 数据特征:考虑数据的性质和处理要求。 另一方面,如果主要关注实时处理和低延迟见解,那么 Kappa 架构可能更合适。 系统复杂性:评估与在 Lambda 架构中管理多个处理管道相关的复杂性与 Kappa 架构中单个流处理管道的简单性。
sig4*(5-3*kappa+(9*kappa-1)*sigma-6*kappa*sig2)*yold(1)... +sig4*(-3+3*kappa -(1+9*kappa)*sigma+6*kappa*sig2)*yold(2)+... sig4*(-1+kappa + (1-3*kappa)*sigma +2*kappa*sig2)*... +sig4*(-3+3*kappa -(1+9*kappa)*sigma+6*kappa*sig2)*yold(j)+... +sig4*(-3+3*kappa -(1+9*kappa)*sigma+6*kappa*sig2)*yold(J)+...
所以这次也是借这个机会重新梳理Lambda架构与后续由Jay Kreps提出改进的Kappa架构,结合个人对于数据系统的思考,展开聊一聊分布式计算系统的一些设计思路。 Lambda架构 而Kappa架构尝试通过一个流处理系统来处理上述两种逻辑,我们来看看Kappa架构是怎么样去设计的: ? Kappa架构 Kappa架构通过流处理系统的并行机制,来提高并行以实现重复处理。但是很多人会觉得流式处理对于历史数据的高吞吐量会力不从心,这里Kreps给出的解决方案是:仅仅重复处理的完整日志数据。 同样的,笔者上文举的例子,同样也能通过Kappa架构来实现购物的广告展示。Kappa架构最为核心的是通过一个范式解决需要共同解决的问题。同时不需要引入额外计算系统进行运维。 而Kappa架构简化了这个模型,但是对于数据处理总归很难拿出重型的批处理做一个完整数据计算,所以计算结果的准确性是有所限缩的。
流处理引擎经历了从Storm到Spark Streaming再到Flink的三代的技术迭代,大数据处理也随之经历了从Lambda架构到Kappa架构的演进。 即下图所示的Kappa架构。 Kappa架构 Kappa架构的兴起主要有两个原因: Kafka不仅起到消息队列的作用,也可以保存更长时间的历史数据,以替代Lambda架构中批处理层数据仓库部分。 Kappa架构相对更简单,实时性更好,所需的计算资源远小于Lambda架构,随着实时处理的需求在不断增长,更多的企业开始使用Kappa架构。 Kappa架构适用于一些逻辑固定的数据预处理流程,如统计一个时间段内商品的曝光和购买次数、某些关键词的搜索次数等。
在介绍Lambda和Kappa架构之前,我们先回顾一下数据仓库的发展历程: 传送门-数据仓库发展历程 写在前面 咳,随着数据量的暴增和数据实时性要求越来越高,以及大数据技术的发展驱动企业不断升级迭代,数据仓库架构方面也在不断演进 ,分别经历了以下过程:早期经典数仓架构 > 离线大数据架构 > Lambda > Kappa > 混合架构。 Kappa Kappa架构原理 Kappa架构的核心思想包括以下三点: 用Kafka或者类似的分布式队列系统保存数据,你需要几天的数据量就保存几天。 在Kappa架构下,只有在有必要的时候才会对历史数据进行重复计算,并且实时计算和批处理过程使用的是同一份代码。 Kappa 两个流协作输出,queries每次使用最新一个流处理结果 小编有话 目前很多准实时增量批处理方案也能满足实时性需求,从稳定性和运维成本上也表现更佳。
不久前,潮流运动品牌Kappa母公司中国动向发布2018中期二次财报,截至2018年12月31日,集团营业收入17.06亿元,同比增长17.3%;Kappa品牌中国分部的销售额为11.75亿元,同比增长 无论如何,与业绩增长对应的是,那个曾经以“背靠背”火遍大街小巷的潮流运动品牌Kappa,在经历低迷期后,又开始回到人们的视线。 Kappa进入了崛起的快轨。 问题在于,作为曾经有收缩风险的鞋服品牌,Kappa究竟如何重整旗鼓? 答案或就在Kappa“潮流运动”的变革升级。 从Kappa财报细节,看鞋服新消费市场的打开方式 除了增长率等数字直观表达出Kappa转型成果,财报中披露的经营细节,或也能反映出Kappa走年轻化、潮流化道路时的几个玩法,这对都在面向新消费市场的行业来说 财报中提到Kappa赞助“中国足球小将”系列活动,这当然可以看作与Kappa童装配合的圈层营销,而为中国足球积攒未来力量,产生了不一样的消费者心智协同价值。
架构对决:Lambda与Kappa的原理与优劣 在数据仓库架构的演进过程中,Lambda和Kappa架构作为两种主流的实时数据处理方案,各自展现出独特的设计理念和实现路径。 Kappa架构:纯流处理的革新理念 作为对Lambda架构的改进,Kappa架构由Jay Kreps在2014年提出。 Kappa架构认为,通过合理设计流处理系统,完全可以替代批处理的功能。 在Kappa架构中,所有数据都被视为流数据,通过消息队列如Kafka进行接收和存储。 相比之下,Kappa架构只需要维护一套流处理系统,大大降低了系统的复杂度和维护成本。 实时性表现上,Kappa架构具有明显优势。 Kappa架构则更适合对实时性要求极高,且数据处理逻辑相对简单的场景。在物联网设备监控、实时风险控制、实时推荐系统等领域,Kappa架构展现出了显著优势。
“别再纠结了:Lambda还是Kappa?流批统一这件事,真没你想得那么玄乎”很多人一聊到流-批统一架构,第一反应就是一句话:“Lambda太复杂,Kappa才是未来。”听起来很有道理,对吧? 一、先说人话:Lambda和Kappa到底在干嘛?Lambda架构一句话版“我既要实时快,又要离线准,那我就干脆写两套。” 三、那Kappa为啥看起来这么香?Kappa的诱惑点,说白了就三条。 ✅3.工程师幸福感更高这个我说句实在的:Kappa是“写给工程师的架构”,Lambda是“写给论文的架构”。四、但现实很残酷:Kappa不是银弹说重点了啊,下面这些坑,不踩过你永远体会不到。 如果你团队偏流式→Kappa很香如果你团队离线强、业务复杂→Lambda没那么不堪别被“过时”“先进”这种词绑架。
MPP、Lambda、Kappa、Lakehouse四大架构,作为当前企业落地最广泛的方案,各有优劣、各有适配场景,而数据存储作为架构的“基石”,直接决定了架构落地的效率与性价比。 Kappa架构:批流合一,用单一流处理引擎搞定所有数据,适合高实时、简化架构的场景,存储需支持高并发写入与回溯。 比如中小型企业做离线报表,MPP架构性价比最高;互联网企业做实时推荐,Kappa或Lakehouse更合适;金融企业兼顾离线风控与实时监控,Lambda架构更稳妥。 2.3Kappa架构:批流合一,简化架构的“实时优选”2.3.1核心原理Kappa架构是为解决Lambda架构“复杂度高、运维成本高”的问题而诞生的,核心思路是“批流合一”——用单一的流处理引擎(如Flink 简单理解:Kappa就像“一条万能生产线”,无论是最新的实时数据,还是过去的历史数据,都通过同一条生产线处理,无需分开维护,既保证了实时性,又降低了架构复杂度。
(j)/2)*x + (1+kappa(j))/4; % Characteristic of kappa-scheme subplot(2,3,j), hold on plot(x,y,'--' scheme subplot(2,3,j), hold on, title(['kappa = ',num2str(kappa(j))]) xx = 0.0:0.01:0.5; y = 2*xx +(kappa(j)-1)*xx.^2 - 2*kappa(j)*xx.^3; plot(xx,y) xx = 0.5:0.01:1.0; z = xx - ones(1,length(xx) ); if kappa(j) >= 0 y = ones(1,length(xx)) + 0.5*kappa(j)*z + (kappa(j)-1)*z.^2; else y = ); if kappa(j) >= 0 y = ones(1,length(xx)) + 0.5*kappa(j)*z + (kappa(j)-1)*z.^2; else y =
、Lambda架构 1.Lambda架构 2.Lambda架构进一步了解 3.Lambda架构典型案例 4.Lambda架构典型案例(有赞广告团,基于Druid) 5.Lambda架构存在的问题 2、Kappa 架构 1.Kappa架构典型案例 2.Kappa架构典型案例(一Kylin为例) 3.Kappa架构的重新处理过程 3、Lambda架构 vs Kappa架构的对比 4、实时数仓 vs 离线数仓 5、实际业务中如何选择呢 Lambda架构 1.Lambda架构 2.Lambda架构进一步了解 3.Lambda架构典型案例 4.Lambda架构典型案例(有赞广告团,基于Druid) 5.Lambda架构存在的问题 2、Kappa 架构 1.Kappa架构典型案例 2.Kappa架构典型案例(一Kylin为例) 3.Kappa架构的重新处理过程 3、Lambda架构 vs Kappa架构的对比 4、实时数仓 vs 离线数仓