Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
大数据架构如何做到流批一体?_创想鸟

大数据架构如何做到流批一体?

大数据分析在结合现代科技手段后,对各产业产生了巨大的经济和社会价值。这是许多企业在这一领域深耕的原因。大数据分析场景中需要解决哪些技术挑战?目前有哪些主流的大数据架构模式及其发展情况?本文将逐一解读,并介绍如何利用云上的存储和计算组件,构建更优的通用大数据架构模式,以及该模式可以涵盖的典型数据处理场景。

大数据处理的挑战已被越来越多的行业和技术领域所需,例如金融行业利用大数据系统结合VaR(风险价值)或机器学习方案进行信贷风控,零售和餐饮行业通过大数据系统辅助销售决策,各种物联网场景需要大数据系统持续聚合和分析时序数据,科技公司则需要建立大数据分析中台等。

从抽象的角度来看,支持这些场景需求的分析系统面临着大致相同的技术挑战:

业务分析的数据范围横跨实时数据和历史数据,既需要低延迟的实时数据分析,也需要对PB级的历史数据进行探索性的数据分析。可靠性和可扩展性问题,用户可能会存储海量的历史数据,同时数据规模持续增长,需要引入分布式存储系统来满足可靠性和可扩展性需求,同时保证成本可控。技术深,需要组合流式组件、存储系统、计算组件。可运维性要求高,复杂的大数据架构难以维护和管理。

大数据架构的发展

Lambda架构

Lambda架构是目前影响最深远的大数据处理架构。其核心思想是将不可变的数据以追加的方式并行写入批处理和流处理系统,随后在流和批系统中分别实现相同的计算逻辑,并在查询阶段合并流和批的计算视图展示给用户。Lambda的提出者Nathan Marz假定了批处理相对简单不易出错,而流处理相对不太可靠,因此流处理器可以使用近似算法快速产生视图的近似更新,而批处理系统则采用较慢的精确算法,产生相同视图的校正版本。

大数据架构如何做到流批一体?

图1展示了Lambda架构的示例。

Lambda架构的典型数据流程是(https://www.php.cn/link/33b2260650d881180c21b62b4de5f3d2):

所有的数据需要分别写入批处理层和流处理层。批处理层有两个职责:(i)管理master dataset(存储不可变、追加写的全量数据),(ii)预计算batch view。服务层对batch view建立索引,以支持低延迟、ad-hoc方式查询view。流计算层作为速度层,对实时数据计算近似的real-time view,作为高延迟batch view的补偿快速视图。所有的查询需要合并batch view和real-time view。

Lambda架构设计推广了在不可变的事件流上生成视图,并且可以在必要时重新处理事件的原则,该原则保证了系统随需求演进时,始终可以创建相应的新视图,切实可行地满足了不断变化的历史数据和实时数据分析需求。

Lambda架构的四个挑战

Lambda架构非常复杂,在数据写入、存储、对接计算组件以及展示层都有复杂的子课题需要优化:

写入层上,Lambda没有对数据写入进行抽象,而是将双写流批系统的一致性问题反推给了写入数据的上层应用。存储上,以HDFS为代表的master dataset不支持数据更新,持续更新的数据源只能以定期拷贝全量snapshot到HDFS的方式保持数据更新,数据延迟和成本比较大。计算逻辑需要分别在流批框架中实现和运行,而在类似Storm的流计算框架和Hadoop MR的批处理框架做job开发、调试、问题调查都是比较复杂的。结果视图需要支持低延迟的查询分析,通常还需要将数据派生到列存分析系统,并保证成本可控。

流批融合的Lambda架构

针对Lambda架构的问题3,即计算逻辑需要分别在流批框架中实现和运行的问题,不少计算引擎已经开始往流批统一的方向发展,例如Spark和Flink,从而简化Lambda架构中的计算部分。实现流批统一通常需要支持:

以相同的处理引擎来处理实时事件和历史回放事件。支持exactly once语义,保证有无故障情况下计算结果完全相同。支持以事件发生时间而不是处理时间进行窗口化。

Kappa架构

Kappa架构由Jay Kreps提出,不同于Lambda同时计算流计算和批计算并合并视图,Kappa只会通过流计算一条的数据链路计算并产生视图。Kappa同样采用了重新处理事件的原则,对于历史数据分析类的需求,Kappa要求数据的长期存储能够以有序log流的方式重新流入流计算引擎,重新产生历史数据的视图。

大数据架构如何做到流批一体?

图2展示了Kappa大数据架构。

Kappa方案通过精简链路解决了数据写入和计算逻辑复杂的问题,但它依然没有解决存储和展示的问题,特别是在存储上,使用类似Kafka的消息队列存储长期日志数据,数据无法压缩,存储成本很大。绕过方案是使用支持数据分层存储的消息系统(如Pulsar,支持将历史消息存储到云上存储系统),但是分层存储的历史日志数据仅能用于Kappa backfill作业,数据的利用率依然很低。

Lambda和Kappa的场景区别

Kappa不是Lambda的替代架构,而是其简化版本,Kappa放弃了对批处理的支持,更擅长业务本身为append-only数据写入场景的分析需求,例如各种时序数据场景,天然存在时间窗口的概念,流式计算直接满足其实时计算和历史补偿任务需求。Lambda直接支持批处理,因此更适合对历史数据有很多ad hoc查询的需求的场景,比如数据分析师需要按任意条件组合对历史数据进行探索性的分析,并且有一定的实时性需求,期望尽快得到分析结果,批处理可以更直接高效地满足这些需求。

Kappa+

Kappa+是Uber提出的流式数据处理架构,其核心思想是让流计算框架直读HDFS类的数仓数据,一并实现实时计算和历史数据backfill计算,不需要为backfill作业长期保存日志或者把数据拷贝回消息队列。Kappa+将数据任务分为无状态任务和时间窗口任务,无状态任务比较简单,根据吞吐速度合理并发扫描全量数据即可,时间窗口任务的原理是将数仓数据按照时间粒度进行分区存储,窗口任务按时间序一次计算一个partition的数据,partition内乱序并发,所有分区文件全部读取完毕后,所有source才进入下个partition消费并更新watermark。事实上,Uber开发了Apache Hudi框架来存储数仓数据,Hudi支持更新、删除已有parquet数据,也支持增量消费数据更新部分,从而系统性解决了存储的问题。

大数据架构如何做到流批一体?

图3展示了Uber围绕Hadoop dataset的大数据架构。

混合分析系统的Kappa架构

Lambda和Kappa架构都还有展示层的困难点,结果视图如何支持ad-hoc查询分析,一个解决方案是在Kappa基础上衍生数据分析流程,如下图4,在基于使用Kafka + Flink构建Kappa流计算数据架构,针对Kappa架构分析能力不足的问题,再利用Kafka对接组合ElasticSearch实时分析引擎,部分弥补其数据分析能力。但是ElasticSearch也只适合对合理数据量级的热数据进行索引,无法覆盖所有批处理相关的分析需求,这种混合架构某种意义上属于Kappa和Lambda间的折中方案。

大数据架构如何做到流批一体?

图4展示了Kafka + Flink + ElasticSearch的混合分析系统。

小鸽子助手 小鸽子助手

一款集成于WPS/Word的智能写作插件

小鸽子助手 55 查看详情 小鸽子助手

Lambda plus:Tablestore + Blink流批一体处理框架

Lambda plus是基于Tablestore和Blink打造的云上存在可以复用、简化的大数据架构模式,架构方案全serverless即开即用,易搭建免运维。

表格存储(Tablestore)是阿里云自研的NoSQL多模型数据库,提供PB级结构化数据存储、千万TPS以及毫秒级延迟的服务能力,表格存储提供了通道服务(TunnelService)支持用户以按序、流式地方式消费写入表格存储的存量数据和实时数据,同时表格存储还提供了多元索引功能,支持用户对结果视图进行实时查询和分析。

Blink是阿里云在Apache Flink基础上深度改进的实时计算平台,Blink旨在将流处理和批处理统一,实现了全新的Flink SQL技术栈,在功能上,Blink支持现在标准SQL几乎所有的语法和语义,在性能上,Blink也比社区Flink更加强大。

在TableStore + Blink的云上Lambda架构中,用户可以同时使用表格存储作为master dataset和batch&stream view,批处理引擎直读表格存储产生batch view,同时流计算引擎通过Tunnel Service流式处理实时数据,持续生成stream view。

大数据架构如何做到流批一体?

图5展示了Tablestore + Blink的Lambda plus大数据架构。

如上图5,其具体组件分解:

Lambda batch层:Tablestore直接作为master dataset,支持用户直读,配合Tablestore多元索引,用户的线上服务直读、ad-hoc查询master dataset并将结果返回给用户;Blink批处理任务向Tablestore下推SQL的查询条件,直读Tablestore master dataset,计算batch view,并将batch view重新写回Tablestore。Streaming层:Blink流处理任务通过表格存储TunnelService API直读master dataset中的实时数据,持续产生stream view;Kappa架构的backfill任务,可以通过建立全量类型数据通道,流式消费master dataset的存量数据,从新计算。Serving层:为存储batch view和stream view的Tablestore结果表建立全局二级索引和多元索引,业务可以低延迟、ad-hoc方式查询。

大数据架构如何做到流批一体?

图6展示了Lambda plus的数据链路。

针对上述Lambda架构1-4的技术问题,Lambda plus的解决思路:

针对数据写入的问题,Lambda plus数据只需要写入表格存储,Blink流计算框架通过通道服务API直读表格存储的实时数据,不需要用户双写队列或者自己实现数据同步。存储上,Lambda plus直接使用表格存储作为master dataset,表格存储支持用户tp系统低延迟读写更新,同时也提供了索引功能ad-hoc查询分析,数据利用率高,容量型表格存储实例也可以保证数据存储成本可控。计算上,Lambda plus利用Blink流批一体计算引擎,统一流批代码。展示层,表格存储提供了多元索引和全局二级索引功能,用户可以根据解决视图的查询需求和存储体量,合理选择索引方式。

总结,表格存储实现了batch view、master dataset直接查询、stream view的功能全集,Blink实现流批统一,Tablestore加Blink的Lambda plus模式可以明显简化Lambda架构的组件数量,降低搭建和运维难度,拓展用户数据价值。

表格存储是如何实现支持上述功能全集的存储引擎的高并发、低延迟特性:

表格存储面向在线业务提供高并发、低延迟的访问,并且tps按分区水平扩展,可以有效支持批处理和Kappa backfill的高吞吐数据扫描和流计算按分区粒度并发实时处理。使用通道服务精简架构:Tablestore数据通道支持用户以按序、流式地方式消费写入表格存储的存量数据和实时数据,避免Lambda架构引入消息队列系统以及master dataset和队列的数据一致性问题。二级索引和多元索引的灵活查询能力:存储在表格存储的batch view和real-time view可以使用多元索引和二级索引实现ad-hoc查询,使用多元索引进行聚合分析计算;同时展示层也可以利用二级索引和多元索引直接查询表格存储master dataset,不强依赖引擎计算结果。

Lambda plus的适用场景

基于Tablestore和Blink的Lambda plus架构,适用于基于分布式NoSQL数据库存储数据的大数据分析场景,如物联网、时序数据、爬虫数据、用户行为日志数据存储等,数据量以TB级为主。典型的业务场景如:

大数据舆情分析系统:

大数据架构如何做到流批一体?

参考资料

[1]. https://www.php.cn/link/4b34cc1bf1623b6d6532ed63ff6ae276

[2]. https://www.php.cn/link/33b2260650d881180c21b62b4de5f3d2

[3]. https://www.php.cn/link/b54732be9ea48e497ad2813b4cb8930f, Martin Kleppmann

[4]. https://www.php.cn/link/5c1917d0afc16d36b7b2471ae6a664ad

[5]. https://www.php.cn/link/9f07f48cb91caf26dc0e4d76caac2826, Jay Kreps

[6]. https://www.php.cn/link/f186e7fae622a7798ce7f1bccac9a247

[7]. Moving from Lambda and Kappa Architectures to Kappa+ at Uber

[8]. https://www.php.cn/link/4d991fb80216eb56bab6d06f6f292a0e, Prasanna Rajaperumal and Vinoth Chandar

[9]. https://www.php.cn/link/78cfc36b921a50fba024eca72d6a458e, Reza Shiftehfar

以上就是大数据架构如何做到流批一体?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/739544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何在Java中实现成绩管理系统
上一篇 2025年11月25日 14:32:26
以韩电空调质量如何(韩电空调好用吗)
下一篇 2025年11月25日 14:32:29

相关推荐

  • 如何设置Linux软件包更新排除 yum exclude和apt-mark hold

    如何设置Linux软件包更新排除 yum exclude和apt-mark hold如何设置Linux软件包更新排除 yum exclude和apt-mark hold如何设置Linux软件包更新排除 yum exclude和apt-mark hold如何设置Linux软件包更新排除 yum exclude和apt-mark hold

    要阻止linux系统中特定软件包更新,可针对不同发行版使用相应方法。对于rhel/centos系系统,可通过在/etc/yum.conf或.repo文件中添加exclude=包名来排除升级;对于debian/ubuntu系系统,则使用sudo apt-mark hold 包名命令锁定版本。这两种方式…

    2026年9月21日 用户投稿
    400
  • 美图秀秀图片亮度无法调节怎么办 美图秀秀亮度调整与修复方法

    亮度调不了可能是未进入“美化”或“编辑”模式,需确认已正确导入图片并找到亮度滑块;2. 软件版本过旧或缓存异常会导致功能失效,应更新美图秀秀或重启程序,电脑版可尝试以管理员身份运行;3. 不同设备可能存在兼容性问题,建议切换手机App或电脑客户端测试,手机用户可清除缓存或重装应用;4. 若功能仍不可…

    2026年9月21日
    000
  • 领先苹果 有望国内首发eSIM!华为三折叠Mate XTs今日发布 定价有惊喜

    9月4日,华为举行新品发布会,备受瞩目的三折叠旗舰Mate XTs非凡大师正式亮相。 根据已曝光信息,该机将搭载全新升级的麒麟9020s处理器,采用1×2.5GHz泰山大核、3×2.15GHz泰山中核以及4×1.6GHz小核的三丛集架构设计。芯片集成主频达840MHz的Maleoon 920 GPU…

    2026年9月21日
    100
  • 长佩阅读如何自定义封面

    在长佩阅读中,设置自定义封面可以让你的书架更具个人风格。以下是具体操作步骤: 一、确认书籍是否支持自定义封面 并非所有书籍都开放自定义封面功能,你需要先进入书籍详情页查看是否存在“自定义封面”这一选项。若该按钮存在,则说明这本书允许用户更换封面。 二、准备合适的封面图片 选择一张你喜欢的图片作为新封…

    2026年9月21日
    000
  • MySQL热点数据缓存策略_MySQL减少磁盘访问提升性能

    MySQL热点数据缓存策略_MySQL减少磁盘访问提升性能MySQL热点数据缓存策略_MySQL减少磁盘访问提升性能MySQL热点数据缓存策略_MySQL减少磁盘访问提升性能MySQL热点数据缓存策略_MySQL减少磁盘访问提升性能

    mysql热点数据缓存的核心在于将频繁访问的数据保留在内存中以减少磁盘i/o,提升查询速度并缓解数据库压力。1. innodb缓冲池是关键机制,需合理配置其大小(通常为服务器内存的70-80%)及实例数以优化性能;2. 应用层缓存如redis/memcached通过前置缓存逻辑减少对mysql的直接…

    2026年9月21日 用户投稿
    000
  • VSCode怎么更改解码方式_VSCode文件编码修改教程

    VSCode通过设置文件编码解决乱码问题,可手动选择“以不同编码重新打开”或“使用编码保存”,推荐统一使用UTF-8编码并启用files.autoGuessEncoding自动检测,避免编码错误。 VSCode更改解码方式主要通过设置文件编码来实现,以便正确显示文件内容。通常情况下,VSCode会自…

    2026年9月21日
    800
  • Laravel 8 登录后重定向到仪表盘的完整教程

    本教程详细介绍了在 Laravel 8 中实现用户登录后重定向到仪表盘的多种方法。我们将探讨如何利用 Laravel 内置的 $redirectTo 属性,以及如何通过重写 LoginController 中的 login 方法来实现自定义重定向逻辑。此外,教程还将重点讲解正确的路由配置和中间件使用…

    2026年9月21日
    000
  • iphone 17什么时候上市

    对于众多苹果爱好者而言,iphone 17的登场无疑令人翘首以盼。每一次苹果新品的亮相,总伴随着令人瞩目的技术创新与全方位升级。从外观造型到硬件性能,从影像系统到软件体验,每一代iphone都在不断刷新用户的使用感受。 根据多方消息预测,iphone 17有望在[具体时间区间]正式发布。这一消息一经…

    2026年9月21日
    100
  • 探探App如何更新应用版本_探探App应用版本更新教程及自动升级设置

    打开App Store点击更新标签,找到探探并手动点击更新;2. 开启自动更新需进入设置-App Store,打开自动下载的App更新开关;3. 搜索探探查看是否显示“更新”以确认版本状态。 探探App更新很简单,无论是手动升级还是设置自动更新,都能快速用上最新版本。下面告诉你具体怎么操作。 手动更…

    2026年9月21日
    000
  • 如何用Animoto制作AI营销视频?快速生成商业AI视频的教程

    如何用Animoto制作AI营销视频?快速生成商业AI视频的教程如何用Animoto制作AI营销视频?快速生成商业AI视频的教程如何用Animoto制作AI营销视频?快速生成商业AI视频的教程如何用Animoto制作AI营销视频?快速生成商业AI视频的教程

    Animoto通过模板与拖放功能,结合AI生成的文案和配音,帮助用户快速制作品牌统一、节奏合理、带明确CTA的高效营销视频,适用于多平台推广。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ Animoto是一个非常适合快速制作AI营销视频的…

    2026年9月21日 用户投稿
    000
  • 番茄免费小说怎么用QQ登录_番茄免费小说QQ登录教程

    首先通过登录界面点击“QQ登录”授权进入,或在账号设置中绑定QQ;若已绑定手机号,则需输入验证码完成验证,最后确认授权即可成功登录。 如果您希望在番茄免费小说中使用QQ账号进行登录,但找不到正确的操作入口或遇到授权问题,可以按照以下方法尝试。这些步骤能帮助您完成账号关联和登录流程。 本文运行环境:小…

    2026年9月21日
    200
  • PHP一键环境如何配置URL重写_URL Rewrite规则设置

    开启Apache的mod_rewrite模块并配置AllowOverride All,再在.htaccess中添加重写规则,即可实现URL重写,使URL更简洁利于SEO。 在使用PHP一键环境(如XAMPP、WAMP、phpStudy等)时,开启URL重写(URL Rewrite)功能可以让网站的U…

    2026年9月21日
    100
  • iPhone14首次使用时应禁用的几项功能

    哪些功能在新机设置时建议关闭? 1. “定位服务” 启用定位服务后,各类应用可获取您的实时位置,虽然有助于导航或本地推荐,但也可能造成位置信息被滥用。若重视个人隐私,建议进入设置关闭该权限,限制应用对地理位置的访问。 2. “后台应用刷新” 此功能使应用程序在未打开时也能在后台获取最新内容,提升使用…

    2026年9月21日
    000
  • 如何从被调用类中获取调用者文件的命名空间

    本文探讨了在PHP中,如何在不通过参数传递的情况下,从一个被调用的工具类中获取到调用该方法的文件的命名空间。通过结合使用`debug_backtrace()`回溯调用栈以定位调用者文件,并利用`token_get_all()`解析文件内容来提取命名空间声明,提供了一种实用的解决方案。文章详细介绍了实…

    2026年9月21日
    000
  • 构建Spring自定义Kafka配置的注解式解决方案

    本文探讨了在Spring Boot应用中通过自定义注解实现Kafka配置自动化时遇到的挑战,特别是由于Bean注册时机不当导致的依赖注入失败。我们将深入分析问题根源,并提供两种核心解决方案:利用META-INF/spring.factories实现标准化的自动配置发现,以及通过ImportBeanD…

    2026年9月21日
    1100
  • 悟空浏览器开发者工具的控制台怎么用_悟空浏览器Console控制台使用入门教程

    首先启用悟空浏览器开发者工具并进入Console标签,可查看错误、警告等日志信息,通过过滤功能定位问题;支持执行JavaScript代码实时调试,监控网络请求失败及全局异常,还可清空或保存日志以便分析。 如果您在使用悟空浏览器进行网页开发或调试时,发现页面元素未按预期工作或脚本报错,则可以借助开发者…

    2026年9月21日
    700
  • 美团外卖节日优惠券领取入口_美团节日活动优惠券获取方法

    节日期间可通过美团外卖首页“膨胀红包”、搜索品牌关键词、参与“神抢手”秒杀、邀请好友助力及关注官方社交媒体口令等五种方法领取优惠券,具体包括完成任务积累红包、领取0元饮品券、抢购低价商品券、获取大额免单券和兑换口令红包。 如果您在节日期间准备通过美团外卖订餐,但未能找到可用的优惠券入口,则可能是由于…

    2026年9月21日
    100
  • vivo Pad5e发布:骁龙8s Gen3加持 1999元起

    vivo Pad5e发布:骁龙8s Gen3加持 1999元起vivo Pad5e发布:骁龙8s Gen3加持 1999元起vivo Pad5e发布:骁龙8s Gen3加持 1999元起vivo Pad5e发布:骁龙8s Gen3加持 1999元起

    10月13日,vivo在今晚的发布会上正式推出了新款平板——vivo pad5e,起售价为1999元。 具体价格如下:vivo Pad5e提供多个存储版本,8GB+128GB版定价1999元,8GB+256GB版为2299元,12GB+256GB版售2599元,顶配16GB+512GB版本则为299…

    2026年9月21日 用户投稿
    000
  • MAC系统磁盘空间不足怎么办_Mac磁盘空间清理与管理技巧

    Mac存储空间不足时,应先使用系统自带的存储管理工具分析并优化存储,通过“关于本机”进入“管理”界面,启用优化选项;接着手动删除不常用应用及其在Application Support和Caches中的残留文件;再进入资源库清理Caches和Logs中的缓存与日志;随后在“避免杂乱”中查找并删除大型无…

    2026年9月21日
    000
  • Android应用中实现游戏循环与UI更新的正确姿势

    本文旨在解决Android应用开发中,开发者尝试使用传统游戏循环(如while(running))导致应用无响应或崩溃的问题。核心内容是阐明Android事件驱动的UI模型,指导开发者如何正确初始化UI组件、设置事件监听器,并通过事件回调机制实现逻辑更新和UI刷新,避免阻塞主线程,确保应用的流畅运行…

    2026年9月21日
    700

发表回复

登录后才能评论
关注微信