0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Lambda数据架构和Kappa数据架构——构建现代数据架构

虹科网络可视化技术 2023-11-26 08:04 次阅读

如何更好地构建我们的数据处理架构,如何对IT系统中的遗留问题进行现代化改造并将其转变为现代数据架构?该怎么为你的需求匹配最适合的架构设计呢,本文将分析两种最流行的基于速度的数据架构,为你提供一些思路。

文章速览:

什么是数据架构?

基于速度的数据架构

Lambda数据架构

Kappa数据架构

探索数据流模型

结语

一、什么是数据架构?

数据架构是企业架构中的一个元素,继承了企业架构的主要属性:流程、策略、变更管理和评估权衡。根据Open Group架构框架,数据架构是对“企业主要数据类型、来源、逻辑数据资产、物理数据资产和数据管理资源的结构和交互” 的描述。

根据数据管理知识体系,数据架构是“识别企业的数据需求(无论结构如何)并设计和维护核心蓝图以满足这些需求”的过程。它使用核心蓝图来指导数据集成、控制数据资产并使数据投资与业务战略保持一致。

然而,糟糕的数据架构是僵化且过度集中的。它使用了错误的工具来完成工作,这阻碍了开发和变更管理。

二、基于速度的数据架构

数据速度是指数据生成的速度、数据移动的速度以及将其处理为可用指导的速度。

根据处理数据的速度,数据架构通常分为两类:Lambda和Kappa。

Lambda数据架构✦

1.什么是Lambda

Lambda数据架构由Apache Storm的创建者Nathan Marz于 2011 年开发,旨在解决大规模实时数据处理的挑战。术语 Lambda 源自lambda演算 (λ),描述了在多个节点上并行运行分布式计算的函数。Lambda数据架构提供了一个可扩展、容错且灵活的系统来处理大量数据。它允许以混合方式访问批处理和流处理方法。

2.Lambda架构的使用场景

1)当您有各种工作负载和速度要求时,Lambda架构是理想的选择。由于它可以处理大量数据并提供低延迟查询结果,因此适合仪表板和报告等实时分析应用程序。Lambda架构对于批处理(清理、转换、数据聚合)、流处理任务(事件处理、开发机器学习模型、异常检测、欺诈预防)以及构建集中存储库(称为“数据湖”)非常有用。

2)Lambda架构的关键区别在于,它使用两个独立的处理系统来处理不同类型的数据处理工作负载。第一个是批处理系统,它将结果存储在集中式数据存储(例如数据仓库或数据湖)中。第二个系统是流处理系统,它在数据到达时实时处理数据并将结果存储在分布式数据存储中。

3.Lambda架构的组成

Lambda架构由摄取层、批处理层、速度层(或流层)和服务层组成。

·批处理层:批处理层处理大量历史数据并将结果存储在集中式数据存储中,例如数据仓库或分布式文件系统。该层使用Hadoop或Spark等框架进行高效的数据处理,使其能够提供所有可用数据的总体视图。

·速度层:速度层处理高速数据流,并使用Apache Flink或Apache Storm等事件处理引擎提供最新信息视图。该层处理传入的实时数据并将结果存储在分布式数据存储中,例如消息队列或NoSQL数据库。

·服务层:无论底层处理系统如何,Lambda架构服务层对于为用户提供一致的数据访问体验至关重要。它在支持需要快速访问当前信息(例如仪表板和分析)的实时应用程序方面发挥着重要作用。

4.Lambda架构的使用场景

Lambda架构解决了计算任意函数的问题,系统必须评估任何给定输入的数据处理函数(无论是慢动作还是实时)。此外,它还提供容错功能,确保在一个系统出现故障或不可用时,任一系统的结果都可以用作另一个系统的输入。在高吞吐量、低延迟和近实时应用程序中,这种架构的效率是很明显的。

69ded9a4-8bef-11ee-9788-92fbcf53809c.png

Lambda架构示意图

5、Lambda架构的缺点

Lambda架构提供了许多优势,例如可扩展性、容错性以及处理各种数据处理工作负载(批处理和流)的灵活性。但它也有缺点:

·Lambda架构很复杂,它使用多种技术堆栈来处理和存储数据。

·设置和维护可能具有挑战性,尤其是在资源有限的组织中。

·每个阶段的批处理和速度层中都会重复底层逻辑。这种重复有一个代价:数据差异。因为尽管具有相同的逻辑,但一层与另一层的实现不同。因此,错误/错误的概率较高,并且您可能会遇到批处理层和速度层的不同结果。

Kappa数据架构✦

2014年,Jay Kreps指出了Lambda架构的一些缺点。这次讨论使大数据社区找到了一种使用更少代码资源的替代方案——Kappa数据架构。

1、什么是Kappa数据架构

Kappa(以希腊字母 ϰ 命名,在数学中用于表示循环)背后的主要思想是单个技术堆栈可用于实时和批量数据处理。该名称反映了该体系结构对连续数据处理或再处理的重视,而不是基于批处理的方法。

Kappa 的核心依赖于流式架构。传入数据首先存储在事件流日志中。然后,它由流处理引擎(例如 Kafka)连续实时处理或摄取到另一个分析数据库或业务应用程序中。这样做需要使用各种通信范例,例如实时、近实时、批处理、微批处理和请求响应等。

2、Kappa数据架构的组成

数据重新处理是 Kappa的一项关键要求,使源端的任何更改对结果的影响可见。因此,Kappa 架构仅由两层组成:流处理层和服务层。

在Kappa架构中,只有一层处理层:流处理层。该层负责采集、处理和存储直播数据。这种方法消除了对批处理系统的需要。相反,它使用先进的流处理引擎(例如 Apache Flink、Apache Storm、Apache Kafka 或 Apache Kinesis)来处理大量数据流并提供对查询结果的快速、可靠的访问。

流处理层有两个组件:

·摄取组件:该层从各种来源收集传入数据,例如日志、数据库事务、传感器和 API。数据被实时摄取并存储在分布式数据存储中,例如消息队列或NoSQL数据库。

·处理组件:该组件处理大量数据流并提供对查询结果的快速可靠的访问。它使用事件处理引擎(例如 Apache Flink 或 Apache Storm)来实时处理传入数据和历史数据(来自存储区域),然后将信息存储到分布式数据存储中。

对于几乎所有用例,实时数据都胜过非实时数据。尽管如此,Kappa架构不应该被视为 Lambda 架构的替代品。反之,在不需要批处理层的高性能来满足标准服务质量的情况下,您应该考虑 Kappa架构。

3、Kappa架构的优势

Kappa架构旨在提供可扩展、容错且灵活的系统,用于实时处理大量数据。它使用单一技术堆栈来处理实时和历史工作负载,并将所有内容视为流。Kappa 架构的主要动机是避免为批处理层和速度层维护两个独立的代码库(管道)。这使得它能够提供更加精简的数据处理管道,同时仍然提供对查询结果的快速可靠访问。

69ff2240-8bef-11ee-9788-92fbcf53809c.png

Kappa架构示意图

4、Kappa架构的缺点

Kappa架构承诺可扩展性、容错性和简化的管理。然而,它也有缺点。

· Kappa架构理论上比 Lambda更简单,但对于不熟悉流处理框架的企业来说,技术上仍然可能很复杂。

· 扩展事件流平台时的基础设施成本。在事件流平台中存储大量数据可能成本高昂,并会引发其他可扩展性问题,尤其是当数据量达到TB或PB级时。

· 事件时间和处理时间之间的滞后不可避免地会产生数据延迟。因此,Kappa 架构需要一套机制来解决这个问题,例如水印、状态管理、重新处理或回填。

探索数据流模型✦

1、为什么会出现数据流模型

Lambda和Kappa试图通过集成本质上不兼容的复杂工具来克服2010年代Hadoop生态系统的缺点。这两种方法都难以解决协调批处理和流数据的根本挑战。然而,Lambda和Kappa 为进一步的改进提供了灵感和基础。

统一多个代码路径是管理批处理和流处理的一项重大挑战。即使有了Kappa架构的统一队列和存储层,开发人员也需要使用不同的工具来收集实时统计数据并运行批量聚合作业。今天,他们正在努力应对这一挑战。

2、什么是数据流模型

数据流模型的基本前提是将所有数据视为事件并在不同类型的窗口上执行聚合。实时事件流是无界数据,而批量数据是具有自然窗口的有界事件流。

6a148bf8-8bef-11ee-9788-92fbcf53809c.png

窗口模式示意图

数据工程师可以选择不同的窗口,例如滑动窗口或会话窗口,以进行实时聚合。数据流模型允许使用几乎相同的代码在同一系统内进行实时和批处理。

“批处理作为流处理的一个特例”的想法已经变得越来越普遍,Flink和Spark等框架也采用了类似的方法。

结语

当然,关于速度模型的数据架构讨论还有另一个用处:适合物联网 (IoT) 的设计选择,在本篇文章中,我们就不再赘述。如何最好地构建我们处理数据的架构,如何对僵化且缓慢的IT遗留系统,进行现代化改造并将其转变为现代数据架构,显然,关于这个问题还尚未有定论。欢迎与我们共同探讨。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6512

    浏览量

    87601
  • 架构
    +关注

    关注

    1

    文章

    484

    浏览量

    25200
  • 虹科电子
    +关注

    关注

    0

    文章

    542

    浏览量

    14051
收藏 人收藏

    评论

    相关推荐

    CXL技术:全面升级数据中心架构

    )将达到 21.2%,并在2022年至2026年期间增加一倍多。而中国的数据规模将从2022年的23.88ZB增长至2027年的76.6ZB,复合年增长率达到26.3%,成为全球生产数据最多的国家。这给当今的现代数据中心带来了更
    发表于 04-17 16:32 82次阅读

    现代处理器的主要指令集架构

    ​ ​现代处理器的主要指令集架构(ISA)包括:x86指令集架构、RISC指令集架构
    的头像 发表于 12-11 09:55 1076次阅读
    <b class='flag-5'>现代</b>处理器的主要指令集<b class='flag-5'>架构</b>

    冯诺依曼架构和哈佛架构有何不同

    冯诺依曼架构是最常见的计算机体系结构之一,最早由冯·诺依曼于1945年提出,又称普林斯顿结构。这种架构中,指令和数据存储在同一个存储器中,使用同一条地址总线和数据总线来传输
    的头像 发表于 12-10 14:10 593次阅读
    冯诺依曼<b class='flag-5'>架构</b>和哈佛<b class='flag-5'>架构</b>有何不同

    springboot三层架构mapper

    Spring Boot 是一种快速开发框架,提供了很多方便的功能,让我们能够更容易地构建企业级应用程序。在构建一个具有良好架构的应用程序时,我们往往会使用三层架构。这篇文章将详细介绍
    的头像 发表于 12-03 15:01 650次阅读

    javaweb三层架构和mvc架构

    JavaWeb三层架构和MVC架构是当前Web开发领域中常用的两种架构模式。 一、JavaWeb三层架构 JavaWeb三层架构是将一个We
    的头像 发表于 11-22 16:41 463次阅读

    Lambda数据架构Kappa数据架构——构建现代数据架构

    如何更好地构建我们的数据处理架构,如何对IT系统中的遗留问题进行现代化改造并将其转变为现代数据架构
    的头像 发表于 11-15 13:32 262次阅读
    <b class='flag-5'>Lambda</b><b class='flag-5'>数据</b><b class='flag-5'>架构</b>和<b class='flag-5'>Kappa</b><b class='flag-5'>数据</b><b class='flag-5'>架构</b>——<b class='flag-5'>构建</b><b class='flag-5'>现代数据</b><b class='flag-5'>架构</b>

    什么是数据架构,如何理解数据架构?

    数据架构是用来描述企业数据源在哪里,哪些数据是可信的,这些数据是如何存储的,以及数据在不同系统中
    的头像 发表于 11-15 09:25 698次阅读
    什么是<b class='flag-5'>数据</b><b class='flag-5'>架构</b>,如何理解<b class='flag-5'>数据</b><b class='flag-5'>架构</b>?

    基于分级安全的OpenHarmony架构设计

    自己的TCB,并且基于分级安全架构,来限制特权应用程序的规模。在现代操作系统鼻祖MULTICS在1965年设计的时候,安全架构的设计初衷是“即使它被间谍渗透控制了,仍然能够保证操作系统的数据
    发表于 08-04 10:39

    湖仓一体:揭秘数据架构现代化之道

    至今已有十多年的历史,为全球一些最大的企业提供了数据分析的支持。然而,也有人认为,绝大多数数据湖部署已经演变成为“数据沼泽”。不论你站在哪一边,现实情况是,这些系统中仍然承载着大量的数据
    的头像 发表于 07-24 19:00 314次阅读
    湖仓一体:揭秘<b class='flag-5'>数据</b>湖<b class='flag-5'>架构</b><b class='flag-5'>现代</b>化之道

    现代数据中心SmartNIC/DPU的演变过程

    随着传统IDC向云数据中心转型,数据中心网络架构开始不断演进,三层架构正过渡到Spine - Leaf架构
    的头像 发表于 07-19 16:11 554次阅读
    <b class='flag-5'>现代数据</b>中心SmartNIC/DPU的演变过程

    湖仓一体:揭秘数据架构现代化之道

    中仍然承载着大量的数据。这些数据规模庞大,使得移动、迁移或对其进行现代化都变得异常困难。 数据湖的巨大挑战:单一
    的头像 发表于 07-17 21:56 355次阅读

    用于亿级实时数据分析Lambda架构分析

    Lambda架构Lambda Architecture)是由Twitter工程师南森·马茨(Nathan Marz)提出的大数据处理架构
    发表于 07-15 12:47 232次阅读
    用于亿级实时<b class='flag-5'>数据</b>分析<b class='flag-5'>Lambda</b><b class='flag-5'>架构</b>分析

    高性能领导力:为下一代数据中心和汽车架构提供动力

    高性能领导力:为下一代数据中心和汽车架构提供动力 演讲ppt分享
    发表于 07-14 17:15 0次下载

    从分层架构到微服务架构介绍(五)

    ,但服务划分的粒度相比微服务要更粗。SBA 与微服务架构一大不同是, 它允许各个服务间共享同一个数据库实例 ,这也使得 SBA 在架构上既有单体架构的特点,也有分布式
    的头像 发表于 05-10 17:02 593次阅读
    从分层<b class='flag-5'>架构</b>到微服务<b class='flag-5'>架构</b>介绍(五)

    数据治理组织架构如何有效运行和落地?_光点科技

    在当今数字化的时代,数据成为了企业重要的资产之一,而数据治理是保证数据质量和有效性的基础。一个有效的数据治理组织架构能够提升企业的
    的头像 发表于 05-06 10:27 471次阅读