网站设计开发建设公司,广州调查公司,百度竞价外包,小微企业注册流程及费用在介绍Lambda和Kappa架构之前#xff0c;我们先回顾一下数据仓库的发展历程#xff1a; 传送门-数据仓库发展历程
写在前面
咳#xff0c;随着数据量的暴增和数据实时性要求越来越高#xff0c;以及大数据技术的发展驱动企业不断升级迭代#xff0c;数据仓库架构方面也在…在介绍Lambda和Kappa架构之前我们先回顾一下数据仓库的发展历程 传送门-数据仓库发展历程
写在前面
咳随着数据量的暴增和数据实时性要求越来越高以及大数据技术的发展驱动企业不断升级迭代数据仓库架构方面也在不断演进分别经历了以下过程早期经典数仓架构 离线大数据架构 Lambda Kappa 混合架构。
架构组成特点经典数仓架构关系型数据库mysql、oracle为主数据量小实时性要求低离线大数据架构hivespark为主数据量大实时性要求低Lambdahivespark负责存量strom/Flink负责实时计算数据量大实时性要求高Kappakafka、strom、Flink多业务多数据源事件型数据源混合架构
ps.表中举例若有不当欢迎指正
Lambda
Lambda架构原理
Lambda架构的核心思想是把大数据系统拆分成三层Batch LayerSpeed Layer和Serving Layer。其中Batch Layer负责数据集存储以及全量数据集的预查询。Speed Layer主要负责对增量数据进行计算生成Realtime Views。Serving Layer用于响应用户的查询请求它将Batch Views和Realtime Views的结果进行合并得到最后的结果返回给用户如下图
Lambda架构的缺点
Lambda架构解决了大数据量下实时计算的问题但架构本身也存在一定缺点。
实时与批量计算结果不一致引起的数据口径问题因为批量和实时计算走的是两个计算框架和计算程序算出的结果往往不同经常看到一个数字当天看是一个数据第二天看昨天的数据反而发生了变化。批量计算在计算窗口内无法完成在IOT时代数据量级越来越大经常发现夜间只有4、5个小时的时间窗口已经无法完成白天20多个小时累计的数据保证早上上班前准时出数据已成为每个大数据团队头疼的问题。开发和维护的复杂性问题Lambda 架构需要在两个不同的 APIapplication programming interface应用程序编程接口中对同样的业务逻辑进行两次编程一次为批量计算的ETL系统一次为流式计算的Streaming系统。针对同一个业务问题产生了两个代码库各有不同的漏洞。这种系统实际上非常难维护服务器存储大数据仓库的典型设计会产生大量的中间结果表造成数据急速膨胀加大服务器存储压力。
Kappa
Kappa架构原理
Kappa架构的核心思想包括以下三点
用Kafka或者类似的分布式队列系统保存数据你需要几天的数据量就保存几天。当需要全量重新计算时重新起一个流计算实例从头开始读取数据进行处理并输出到一个新的结果存储中。当新的实例做完后停止老的流计算实例并把老的一些结果删除。 在Kappa架构下只有在有必要的时候才会对历史数据进行重复计算并且实时计算和批处理过程使用的是同一份代码。
Lambda架构和Kappa架构优缺点对比
项目LambdaKappa数据处理能力可以处理超大规模的历史数据历史数据处理的能力有限机器开销批处理和实时计算需一直运行机器开销大必要时进行全量计算机器开销相对较小存储开销只需要保存一份查询结果存储开销较小需要存储新老实例结果存储开销相对较大开发、测试难度实现两套代码开发、测试难度较大只需面对一个框架开发、测试难度相对较小运维成本维护两套系统运维成本大只需维护一个框架运维成本小
小结
Lambda 将全量历史数据和实时增量数据合并输出。Kappa 两个流协作输出queries每次使用最新一个流处理结果
小编有话
目前很多准实时增量批处理方案也能满足实时性需求从稳定性和运维成本上也表现更佳。 比如kudu存储impala计算准实时方案可以实现千万级数据的增量更新和olap查询性能优异。
数仓系列传送门https://blog.csdn.net/weixin_39032019/category_8871528.html