虹科干货丨Lambda数据架构和Kappa数据架构——构建现代数据架构

news2024/11/24 13:42:24

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

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

Kappa架构示意图

4、Kappa架构的缺点

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

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

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

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

探索数据流模型✦

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

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

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

2、什么是数据流模型

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

窗口模式示意图

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

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

结语

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

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

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

相关文章

异常--Java

cry…catch使用 /*需求:测试除法器(try...catch)* 测试人:小王* 测试日期:2023/11/15* */ package yichang_test1;import java.util.InputMismatchException; import java.util.Scanner;public class TestException2 …

cadence virtuoso layout 无法跑DRC

问题:无法跑DRC could not establish connection with Calibre Interactiveon socket localhost 7000. 尝试: 点击一下红框右边的connect。 (此法不一定有用,死马当活马医)

Page分页records有数据,但是total=0,解决办法

Page分页records有数据,但是total0,解决办法 问题:程序运行起来后,后端接收前端传来的搜索请求信息正常,但无法在前端正确反馈信息,通过在后端排查发现total一直等于零,但数据库中有数据&#x…

大数据-之LibrA数据库系统告警处理(ALM-12046 网络写包丢包率超过阈值)

告警解释 系统每30秒周期性检测网络写包丢包率,并把实际丢包率和阈值(系统默认阈值0.5%)进行比较,当检测到网络写包丢包率连续多次(默认值为5)超过阈值时产生该告警。 用户可通过“系统设置 > 阈值配置…

OpenCV的应用——道路边缘检测

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了丰富的图像处理和计算机视觉算法,使得开发者可以便捷地进行图像处理、对象识别、图像分割等任务。道路边缘检测是计算机视觉中的重要应用之一&…

帝国CMS仿核弹头H5小游戏模板/帝国CMS内核仿游戏网整站源码

帝国CMS仿核弹头H5小游戏模板,帝国CMS内核仿游戏网整站源码。比较适合小游戏发布、APP应用资讯类网站使用,有兴趣的可以二次开发试试。 下载地址:https://bbs.csdn.net/topics/617579435

uniapp基础学习笔记01

文章目录 本博客根据黑马教程学习uniapp一、技术架构二、创建项目2.1 Hbuilder创建2.2 插件安装2.3 微信开发者工具配置与运行2.3.1 简单修改基础页面 2.4 pages.json和tabBar2.4.1 pages.json与tabBar配置2.4.2 案例 三、uniapp与原生开发的区别 本博客根据黑马教程学习uniapp…

C# Socket通信从入门到精通(10)——如何检测两台电脑之间的网络是否通畅

前言: 我们在完成了socket通信程序开发以后,并且IP地址也设置好以后,可以先通过一些手段来测试两台电脑之间的网络是否通畅,如果确认了网络通畅以后,我们再测试我们编写的Socket程序。 1、同时按下键盘的windows键+"R"键,如下图: 下面两张图是两种键盘的情…

参考意义大。4+巨噬细胞相关生信思路,简单易复现。

今天给同学们分享一篇生信文章“Angiogenesis regulators S100A4, SPARC and SPP1 correlate with macrophage infiltration and are prognostic biomarkers in colon and rectal cancers”,这篇文章发表在Front Oncol期刊上,影响因子为4.7。 结果解读&a…

【探索Linux】—— 强大的命令行工具 P.15(进程间通信 —— system V共享内存)

阅读导航 引言一、system V的概念二、共享内存(1) 概念(2) 共享内存示意图(3) 共享内存数据结构 三、共享内存的使用1. 共享内存的使用步骤(1)包含头文件(2)获取键值(ftok函数)(3)创…

LeetCode - 142. 环形链表 II (C语言,快慢指针,配图)

如果你对快慢指针,环形链表有疑问,可以参考下面这篇文章,了解什么是环形链表后,再做这道题会非常简单,也更容易理解下面的图片公式等。 LeetCode - 141. 环形链表 (C语言,快慢指针,…

写作脑科学——屠龙的高效写作指南

ISBN: 978-7-115-59231-6 作者:杨滢(屠龙的胭脂井) 页数:201页 阅读时间:2023-09-09 推荐指数:★★★★★ 十分推荐这本书,写的非常简单易懂,里面有很多方法论和实用技巧&#xff0c…

使用Maxent模型预测适生区

Maxent模型因其在潜在适生区预测中稳健的表现,时下已经成为使用最广泛的物种分布模型。biomod虽然可以通过集成模型的优势来弥补数据量较小的劣势,但是其在使用和运算时间上的优势远不如Maxent,虽然最新的biomod2已经修复了一些bug&#xff0…

Power Apps-使用power Automate流

创建:Power Automate-创建power Apps使用的流-CSDN博客 打开Power Apps,创建页面,添加三个输入框(分别是换算前单位、换算后单位、货币数),和一个文本框(输出结果)以及一个按钮 在…

微信聚合聊天,自动回复

微信,这款融合通讯、社交、娱乐、小程序于一体的平台,已经深深融入我们的日常生活。作为我们日常生活中不可或缺的社交工具,尤其在工作中,我们需要通过微信来沟通客户,这个时候我们就会希望有快速回复客户的方式秒回客…

自动备份pgsql数据库

bat文件中的内容: PATH D:\Program Files\PostgreSQL\13\bin;D:\Program Files\7-Zip set PGPASSWORD**** pg_dump -h 8.134.151.187 -p 5466 -U sky -d mip_db --schema-only -f D:\DB\backup\%TODAY%-schema-mip_db_ali.sql pg_dump -h 8.134.151.187 -p 5466…

从房地产先后跨界通信、文旅演艺领域,万通发展未来路在何方?

近年来,房地产市场可谓负重前行,各大房企纷纷谋求新出路。 作为中国最早的房企之一,万通发展再次处在转型变革的十字路口。自去年以来,万通发展在转型升级之路上动作频频,可谓忙得不亦乐乎。 大幕落下之时,…

【word密码】word设置只读方式的四个方法

想要将word文档设置为只读模式,方法有很多,今天小奥超人介绍几个方法给大家。 方法一:文件属性 常见的、简单的设置方法,不用打开word文件,只需要右键选择文件,打开文件属性,勾选上【只读】选…

使用c++程序,实现图像平移变换,图像缩放、图像裁剪、图像对角线镜像以及图像的旋转

数字图像处理–实验三A图像的基本变换 实验内容 A实验: (1)使用VC设计程序:实现图像平移变换,图像缩放、图像裁剪、图像对角线镜像。 (2)使用VC设计程序:对一幅高度与宽度均相等的…

模拟业务流程+构造各种测试数据,一文带你测试效率提升80%

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…