经典大数据处理框架与通用架构对比

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
简介: 【6月更文挑战第15天】本文介绍Apache Beam是谷歌开源的统一数据处理框架,提供可移植API,支持批处理和流处理。与其他架构相比,Lambda和Kappa分别专注于实时和流处理,而Beam在两者之间提供平衡,具备高实时性和数据一致性,但复杂性较高。选择架构应基于业务需求和场景。

1 简介

我们知道经典数据架构如kappa,lambda,它们利用数据管道整合多元数据源,便于分析和流转。Kappa架构专注于实时处理(如通过Kafka、Spark Streaming),适合实时响应场景;Lambda架构结合批处理与实时处理(如Spark、Hadoop与Flink),平衡实时性和批处理,易于开发和维护。

而本文介绍的Apache Beam提供统一模型,适用于流处理和批处理,提升代码复用和效率。这两种架构满足现代应用对数据一致、性能和灵活性的需求。它抽象出数据管道,允许在不同执行引擎(如Spark、Flink、Dataflow)上运行,简化了多源数据整合。Beam强调代码复用和效率,适用于需要高度灵活性和扩展性的场景,同时支持多种语言,如Python、Java。

treeoflife6.png

2 通用流数据处理Beam架构

Apache Beam是谷歌开源的数据管道框架,组织可开始根据其业务需求部署 Batch 或流式处理管道,是一种更通用的编程模型,可用于处理流数据和批处理数据。

它提供了一个统一的API,允许开发人员以可移植的方式定义数据处理管道,而不考虑底层执行引擎。对于需要处理这两种数据类型的应用程序,或者需要能够在不重写代码的情况下切换执行引擎的应用程序来说,这是一个很好的选择

  • 数据源:

数据源是数据进入 Beam 架构的起点。数据源可以是各种类型的数据源,例如 Kafka、Kinesis、Apache Pulsar 等。

  • 处理器:
    处理器负责处理数据。处理器可以是用户自定义的处理器,也可以是 Beam 提供的标准处理器。

  • 输出:

输出是处理后数据的输出目标。输出可以是各种类型的输出目标,例如 Kafka、Kinesis、Amazon S3 等。

3 组件

Beam的数据处理工作流图可以简单说明如下:

image.png

中间处理器可以使用如:python,go,java等通用语言调用其通用接口。

image.png

Apache Beam 抽象组件

  • 管道

它封装了从某个外部源读取数据、转换数据并将输出保存到某个外部存储源的整个过程。

  • 存储

它定义了管道运行的数据,它可以是有界数据,也可以是无界数据。我们根据来自任何外部系统的数据或内存中的数据创建 Pcollections。它是不可变的,必须包含相同类型的数据。

  • 输入集 PTransforms(PTransforms)

它将 Pcollection(输入数据集)作为输入,对其应用一些处理函数并生成另一个 Pcollection(输出数据集)。

  • 流水线 IO

它使您能够从各种外部存储系统读取或写入数据。

Beam 是一个通用的流式批处理的架构,具有以下优点:

支持多种数据源和数据处理框架:Beam 支持多种数据源和数据处理框架,适用于各种场景。
可扩展性强:Beam 的可扩展性强,适用于处理大量数据的应用场景。
开发效率高:Beam 的开发效率高,可以使用多种编程语言进行开发。
  • 例子:

例如,一个金融机构需要处理大量的交易数据,并进行分析。这种场景需要支持多种数据源和数据处理框架,且可扩展性强。Beam 架构可以满足这些需求,将交易数据进行实时处理和批处理,并进行分析。

image.png

4 小结

Kappa、Lambda 和 Beam 各有优缺点,适用于不同的场景。

Kappa 适用于需要实时响应、处理大量数据且预算有限的场景。

Lambda 适用于兼顾实时性和批处理、开发难度相对较低且预算有限的场景。

Beam 适用于支持多种数据源和数据处理框架、可扩展性强且开发效率高且预算充足的场景。
在选择大数据架构时,需要根据具体的业务需求和场景进行综合考虑。其主要优势在于其可移植的 API 层,可以在各种执行引擎或运行器中执行。

各框架功能对比如下:

功能\框架 Lambda Kappa Apache Beam
处理模型 混合(流+批处理) 流处理 统一流和批处理
实时能力 非常高
批处理 是(有限)
可扩展性
复杂性 中等
数据一致性 最终一致
体系结构 混合(Batch + Streaming) 流处理 统一编程模型
执行引擎 fixed (Apache Hadoop + Apache Spark) fixed (Apache Flink) Pluggable (Apache Spark, Apache Flink,谷歌Cloud Dataflow)
优势 可扩展性,历史数据分析,实时处理 低延迟,实时处理 灵活性,可移植性
缺点 复杂性,不如Apache Beam灵活 用例有限,不如Apache Beam可扩展性 比Lambda或Kappa更复杂
使用场景 历史数据分析、数据仓库、实时分析 实时分析 历史,实时分析和数据管道
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
数据采集 监控 前端开发
二级公立医院绩效考核系统源码,B/S架构,前后端分别基于Spring Boot和Avue框架
医院绩效管理系统通过与HIS系统的无缝对接,实现数据网络化采集、评价结果透明化管理及奖金分配自动化生成。系统涵盖科室和个人绩效考核、医疗质量考核、数据采集、绩效工资核算、收支核算、工作量统计、单项奖惩等功能,提升绩效评估的全面性、准确性和公正性。技术栈采用B/S架构,前后端分别基于Spring Boot和Avue框架。
|
1月前
|
存储 分布式计算 关系型数据库
架构/技术框架调研
本文介绍了微服务间事务处理、调用、大数据处理、分库分表、大文本存储及数据缓存的最优解决方案。重点讨论了Seata、Dubbo、Hadoop生态系统、MyCat、ShardingSphere、对象存储服务和Redis等技术,提供了详细的原理、应用场景和优缺点分析。
|
1月前
|
大数据
【赵渝强老师】大数据主从架构的单点故障
大数据体系架构中,核心组件采用主从架构,存在单点故障问题。为提高系统可用性,需实现高可用(HA)架构,通常借助ZooKeeper来实现。ZooKeeper提供配置维护、分布式同步等功能,确保集群稳定运行。下图展示了基于ZooKeeper的HDFS HA架构。
|
2月前
|
人工智能 前端开发 JavaScript
前端架构思考 :专注于多框架的并存可能并不是唯一的方向 — 探讨大模型时代前端的分层式微前端架构
随着前端技术的发展,微前端架构成为应对复杂大型应用的流行方案,允许多个团队使用不同技术栈并将其模块化集成。然而,这种设计在高交互性需求的应用中存在局限,如音视频处理、AI集成等。本文探讨了传统微前端架构的不足,并提出了一种新的分层式微前端架构,通过展示层与业务层的分离及基于功能的横向拆分,以更好地适应现代前端需求。
|
2天前
|
存储 SQL 分布式计算
大数据时代的引擎:大数据架构随记
大数据架构通常分为四层:数据采集层、数据存储层、数据计算层和数据应用层。数据采集层负责从各种源采集、清洗和转换数据,常用技术包括Flume、Sqoop和Logstash+Filebeat。数据存储层管理数据的持久性和组织,常用技术有Hadoop HDFS、HBase和Elasticsearch。数据计算层处理大规模数据集,支持离线和在线计算,如Spark SQL、Flink等。数据应用层将结果可视化或提供给第三方应用,常用工具为Tableau、Zeppelin和Superset。
30 8
|
3天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
17 2
|
1月前
|
监控
SMoA: 基于稀疏混合架构的大语言模型协同优化框架
通过引入稀疏化和角色多样性,SMoA为大语言模型多代理系统的发展开辟了新的方向。
44 6
SMoA: 基于稀疏混合架构的大语言模型协同优化框架
|
1月前
|
SQL 数据采集 分布式计算
【赵渝强老师】基于大数据组件的平台架构
本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
164 3
【赵渝强老师】基于大数据组件的平台架构
|
2天前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
9 0
|
17天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 下一篇
    DataWorks