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

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

3天内不再提示

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

广州虹科电子 来源:广州虹科电子 作者:广州虹科电子 2023-11-15 13:32 次阅读

文章来源:虹科云科技 虹科干货丨Lambda数据架构和Kappa数据架构——构建现代数据架构

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

image.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 架构的主要动机是避免为批处理层和速度层维护两个独立的代码库(管道)。这使得它能够提供更加精简的数据处理管道,同时仍然提供对查询结果的快速可靠访问。

image.png

Kappa架构示意图

4、Kappa架构的缺点

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

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

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

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

探索数据流模型✦

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

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

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

2、什么是数据流模型

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

image.png

窗口模式示意图

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

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

结语

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

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

    关注

    7

    文章

    3855

    浏览量

    64796
  • 大数据
    +关注

    关注

    64

    文章

    8912

    浏览量

    137896
  • Lambda
    +关注

    关注

    0

    文章

    30

    浏览量

    9923
收藏 人收藏

    评论

    相关推荐

    构建数据库解决方案,基于华为云 Flexus X 实例容器化 MySQL 主从同步架构

    前言**** 华为云 Flexus X 实例,融合柔性算力与智能调度,为数据库解决方案带来全新突破。采用容器化 MySQL 主从同步架构,实现数据高效备份与读写分离,保障业务连续性与数据
    的头像 发表于 01-07 17:22 218次阅读
    <b class='flag-5'>构建</b><b class='flag-5'>数据</b>库解决方案,基于华为云 Flexus X 实例容器化 MySQL 主从同步<b class='flag-5'>架构</b>

    宝藏级微服务架构工具合集

    大量数据流。这些工具各有特色,可根据具体需求和场景选择合适的来构建和管理微服务架构。以下是UU云小编整理的几个热门的微服务架构工具及其概括性介绍:
    的头像 发表于 12-21 16:33 280次阅读

    NVIDIA推出企业参考架构,助力打造AI工厂

    全球各地的企业现在可以利用这一全新参考架构构建高性能、可扩展、安全的数据中心。
    的头像 发表于 11-01 15:35 321次阅读

    简述数据中心网络架构的演变

    随着全球对人工智能(AI)的需求不断增长,数据中心作为AI计算的重要基础设施,其网络架构与连接技术的发展变得尤为关键。
    的头像 发表于 10-22 16:23 393次阅读

    架构与设计 常见微服务分层架构的区别和落地实践

    前言 从强调内外隔离的六边形架构,逐渐发展衍生出的层层递进、注重领域模型的洋葱架构,再到和DDD完美契合的整洁架构架构风格的不断演进,其实就是为了适应软件需求越来越复杂的特点。 可以
    的头像 发表于 10-22 15:34 328次阅读
    <b class='flag-5'>架构</b>与设计 常见微服务分层<b class='flag-5'>架构</b>的区别和落地实践

    【「大模型时代的基础架构」阅读体验】+ 未知领域的感受

    再到大模型云平台的构建,此书都有提及和讲解,循序渐进,让读者可以由点及面,由面到体的来认识大数据模型的体系架构。 前言中,作者通过提出几个问题来引导读者阅读思考——分布式AI计算依赖哪些硬件特性
    发表于 10-08 10:40

    就服务器而言,ARM架构与X86架构有什么区别?各自的优势在哪里?

    一、服务器架构概述 在数字化时代,服务器架构至关重要。服务器是网络核心节点,存储、处理和提供数据与服务,是企业和组织信息化、数字化的关键基础设施。ARM 和 x86 架构为服务器领域两
    的头像 发表于 09-09 14:05 2094次阅读

    RISC-­V架构的特点

    RISC-­V架构的特点 RISC-V架构RISC-V 架构是基于 精简指令集计算(RISC)原理建立的开放 指令集架构(ISA),RISC-V是在指令集不断发展和成熟的基础上建立的全
    发表于 05-24 08:01

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

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

    超融合架构解决方案

    随着信息技术的发展,企业对数据中心的依赖日益增强,对存储、计算和网络资源的需求也在不断增长。超融合架构作为一种新兴的IT基础设施解决方案,正逐渐成为企业数据中心建设的首选。本文将详细介绍超融合
    的头像 发表于 04-10 14:57 732次阅读

    华为云多模数据库 GeminiDB 架构与应用实践直播问答实录

    龙通过直播(链接见文末)的方式,分享了《华为云多模数据库 GeminiDB 的技术架构及应用实践》,对 GeminiDB 的技术特性、架构优势等进行了全方位解读。整场直播干货满满,让观众们直呼过瘾,并且积极提问,展开了深入交流。
    的头像 发表于 04-08 18:25 1225次阅读

    交换芯片架构是什么意思 交换芯片架构怎么工作

    交换芯片架构是指交换芯片内部的设计和组织方式,包括其硬件组件、处理单元、内存结构、接口以及其他关键部分的布局和相互作用。交换芯片的架构决定了其处理网络数据包的能力和效率。
    的头像 发表于 03-22 16:45 856次阅读

    交换芯片架构设计

    交换芯片的架构设计是网络设备性能和功能的关键。一个高效的交换芯片架构能够处理大量的数据流量,支持高速数据传输,并提供先进的网络功能。
    的头像 发表于 03-21 16:28 647次阅读

    fpga芯片架构介绍

    FPGA(现场可编程门阵列)芯片架构是一种高度灵活和可编程的集成电路架构,它以其独特的结构和功能,在现代电子系统中扮演着至关重要的角色。FPGA芯片架构的核心在于其可编程性和高度的并行
    的头像 发表于 03-15 14:56 863次阅读

    AI数据中心架构升级引发800G光模块需求激增

    800G光模块需求的激增直接反映了对人工智能驱动应用不断升级的需求。随着数字环境的不断发展,对更快、更高效的数据传输的需求变得势在必行。800G光模块的部署,加上向2层叶脊架构的过渡,反映了满足现代
    的头像 发表于 03-05 17:32 697次阅读
    AI<b class='flag-5'>数据</b>中心<b class='flag-5'>架构</b>升级引发800G光模块需求激增