API205 | 利用 Amazon Step Functions & Lambda 的并行性加速工作负载

本文讲述了在AmazonWebServicesre:Invent2023大会上,如何利用AmazonStepFunctions和Lambda的并行特性加速工作负载处理,通过分布式映射和无服务器架构,简化数据处理流程,提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

API205 | 利用 Amazon Step Functions & Lambda 的并行性加速工作负载

关键字: [Amazon Web Services re:Invent 2023, Step Functions, Accelerating Workloads, Parallelism, Amazon Step Functions, Lambda, Distributed Map]

本文字数: 2800, 阅读完需: 14 分钟

视频

导读

并行处理是一种常见的计算方法,有助于在较短的时间内解决大型问题。通过同时运行问题的各个组成部分,总持续时间会大大缩短。例如,要在一分钟内处理1,000个日志文件,如果按顺序处理,需要16个多小时。当它们被并行处理时,同样的任务只需要一分钟。有效的并行处理需要可扩展的计算能力,但也增加了协调并行组件和产生一致结果的复杂性。在本专题讲座中,您将了解如何利用亚马逊云科技阶跃函数和 Amazon Lambda 为您的工作负载实现云级并行。

演讲精华

以下是小编为您整理的本次演讲的精华,共2500字,阅读时间大约是12分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

视频以亚马逊云科技的re:Invent的拥挤会议室为背景展开,亚当·瓦格纳(亚马逊云科技的一名首席解决方案架构师)向观众表示欢迎并感谢他们的出席。他在台上介绍了他的同事——负责Step Functions的总经理贾斯汀·卡利森以及专注于无服务器技术的专家解决方案架构师布莱恩·扎莫拉诺。

亚当通过回顾数据处理的演变过程来为讨论奠定基础。他描述了早期那些日子,当时数据是通过手动使用电子表格或由开发人员手工编写的定制代码进行处理。随着大数据的出现,Hadoop和Spark等框架进入了主流,从而催生了专门研究这些复杂的分布式系统的数据科学家和工程师。尽管许多人仍然依赖这些方法,但亚当指出,一个新兴群体——将这些编码作为实现目标的手段,但不认为自己是一名软件开发人员的业务用户正在崛起。这些来自各个行业的科学家、分析家和主题专家,他们出于需要而转向编程,以便从他们的数据中整理和提取见解。

当亚当预告所展示的功能将满足比以往更多的用户群体时,我们可以想象药物研究人员分析临床试验数据,金融分析师建模风险,以及供应链经理优化物流的场景。但是,后者两个群体,即非专业开发人员和非软件工程师的编码者,将从亚马逊云科技Step Functions和Lambda的结合中特别受益。

接下来,亚当通过概述Step Functions所提供的功能来固定讨论。他将Step Functions描述为一个无服务器的工作流程协调服务,可以作为拼接数据处理、应用程序集成、业务流程自动化等方面的基础。在幕后,Step Functions提供了与超过220项亚马逊云科技服务的直接集成——涵盖了可以用作构建模块的10,000多种不同的API操作。这使得开发者可以轻松地关注业务逻辑,而不是组装服务的粘合代码。

最高可达10,000个并发执行的支持

  • 轻松迭代S3中的对象,触发平行的工作流执行

新的操作员仪表板提供了对并行处理的可见性,使得根据需求与标准或快速工作流程一起使用成为可能。这种个别执行的方式可以作为子工作流程,避免父项的限制。输入来源选项包括直接列出S3对象或者提供列出对象的S3清单文件。批量处理能够优化性能和成本,同时可配置的故障阈值可以在面临某些错误时仍然完成任务。结果可以被汇总回S3以进行进一步处理。

为了展示分布式映射的实际应用,亚当邀请了布莱恩·赞布拉诺进行现场演示。布莱恩准备了一个示例,该示例处理历史温度数据以寻找全球每月最热的高温。这些数据由来自世界各地的气象站的读数组成,存储在超过500,000个CSV文件中,并存储在S3中。

布莱恩开始在Step Functions控制台中进行演示。他使用可视化的Workflow Studio开始开发一个工作流程,该工作流程将利用分布式映射以并行、分布式方式处理天气数据。他首先添加的是分布式映射状态本身。布莱恩将其配置为列出存储CSV文件的S3桶中的对象,作为驱动并行处理的输入。

接下来,布莱恩设置了批处理大小为250个项目,并将并发限制设置为3,000,以控制并行性。在映射状态内,他指定将输出写入另一个S3桶的Express子工作流程。

在处理每个批次时,布莱恩添加了将解析CSV数据并找到全球每月最热的高温的Lambda函数。最后,他在映射状态外添加了另一个Lambda函数来聚合所有子工作流程输出的最终结果。

配置好工作流程后,布莱恩启动了一次执行。立即可以看到操作员仪表板活跃起来,可视化了数千个启动以分析天气数据的子工作流程的并行处理。布莱恩切换到执行详细信息,展示了批处理大小和函数I/O负载等指标。

在执行任务的几分钟内,分布式映射成功地处理了超过500,000个文件,利用了其巨大的并行性和规模。通过减函数,月度最热气温按月份被写入DynamoDB表。至此,Brian完成了他的演示,向观众展示了分布式映射和Step Functions在无服务器大数据处理管道中的应用潜力。

在实际运行的分布式映射示例展示之后,Justin Callison走上了讲台,进一步探讨了这一功能的工作原理。他关注到了五个关键概念:输入源、并发管理、批量处理、故障处理和结果管理。

Justin详细介绍了可以作为分布式映射工作流驱动源的不同输入方式。这些输入可以来自于传递给状态的负载,从而允许重用现有的集合。此外,分布式映射还使得在S3中迭代对象变得更加容易,无论是直接列出它们还是消费包含对象键的清单文件。

在处理S3中的数据时,Justin解释说,对象内容不会直接传递给子工作流程。相反,只提供元数据如键和最后修改日期,以便业务逻辑根据需要检索对象。可以使用项目选择器来增强元数据或根据需要进行不同形状的元数据。

在并发管理方面,Justin强调说控制下游负载是其主要目标。最大并发设置可作为节流阀使用,使用户能够从小规模开始测试下游系统,然后根据需要进行扩展。他还强调了Step Functions如何轻松配置重试等错误处理,以在扩展过程中遇到节流问题时提供弹性。

批量处理是Justin介绍的另一个重要技巧,因为它相较于逐个处理项目,可以显著提高效率并降低成本。分布式映射允许基于项目数量和总负载大小配置批处理大小。他强调,批量处理可以避免重复的每项开销。

在讨论失败处理时,贾斯汀强调,子工作流中的默认失败机制会导致整个分布式映射执行失败。然而,通过配置失败阈值,可以实现部分成功。可以设置阈值基于失败项目的百分比或数量。未处理的项目可以通过编程方式或在后续工作流中进行进一步处理。

此外,贾斯汀还介绍了如何将结果汇总回S3以进行可选的下游处理。子工作流的输出被组织成指示成功和失败状态的文件。他解释了这些结果文件如何进入进一步的工作流程以处理重试、减少或下游分析。

在深入了解分布式映射的内部运作后,贾斯汀转向提供关于在更广泛的亚马逊云科技生态系统中何时利用分布式映射的指导。他解释称,Glue、EMR和Athena等服务专为大规模数据处理而设计。Step Functions可以协调并连接这些服务。分布式映射的简单性使其适用于在多个对象上运行自定义代码/处理的使用场景。分布式的协调工作自动完成,而不是从头开始构建复杂的工作流程。

随着演示的开始结束,亚当回顾了分布式映射作为在亚马逊云技术上实现大规模并行数据处理工作流程的更简单方法的主要优势。他提供了一些帮助应用这些技术的资源,包括示例工作流程、实践操作工作和培训课程。亚当还强调了与服务器无架构和Step Functions相关的re:Invent会议以继续学习。

总之,亚当通过感谢观众并对利用分布式映射构建的用户将创建的内容表示兴奋来结束演讲。视频成功地传达了如何使用Step Functions和Lambda以服务器无方式加速工作负载并扩展数据处理的概念。实时演示提供了一个使用分布式映射协调的简单工作流程来处理现实世界大数据处理的具体示例。随着数据的指数增长以及越来越多地使用编码从其中提取价值的个人,这样的解决方案将变得越来越重要。

下面是一些演讲现场的精彩瞬间:

亚当·瓦格纳,作为亚马逊云科技的主要解决方案架构师,在re:Invent上向广大观众表达了对同事贾斯汀·卡利森和布莱恩·扎莫布拉诺的感激之情。

在介绍他们时,亚当强调了亚马逊云科技在简化处理大型对象方面的优势,而无需额外的基础设施如虚拟专用网络(VPC)和弹性文件系统(EFS)挂载。

在演示中,领导者展示了如何使用分布式映射来展示亚马逊S3中的对象工作流源。

他们还强调了亚马逊云科技的一步式工作流(Step Functions)如何允许用户通过指定批次大小限制轻松优化处理功能。

领导者还强调了使用亚马逊状态语言(Amazon States Language)的结果编写器可以指定输出位置,如S3存储桶,并包括成功和失败项目的输出文件指针。

亚马逊云科技在re:Invent上的演讲重点介绍了新的无服务器工作流程部分以及无服务器领域的步骤函数工作坊,以帮助用户获得分布式应用的实践经验。

总结

这段视频探讨了如何利用亚马逊云科技的Step Functions和Lambda通过并行处理来加速工作负载。

视频首先回顾了数据处理的演变历程,从手动电子表格到自定义代码,再到大数据框架。Step Functions被视为一种协调和集成亚马逊云科技服务以构建无服务器工作流程的方法。

接着,视频深入解析了Step Functions的工作原理,包括状态机、状态和转换的工作方式。视频中概述了两类工作流程:适用于长期运行流程的标准工作流程和适用于高容量短工作流程的Express工作流程。与亚马逊云科技服务的集成是其主要优势之一,包括优化和SDK选项。

一个典型的应用场景是处理上传到S3的对象,这是由EventBridge规则触发的。尽管功能强大,但这种模式在处理现有对象的批量处理时仍存在一定的局限性。内置映射状态的改进支持动态并行化,但仍有一些限制。

为了解决这个问题,引入了分布式映射技术在Step Functions中的应用。通过将每个映射迭代作为一个独立的工作流程运行,可以消除对历史大小和并发的限制,从而实现巨大的并行性。输入可以来自状态负载、S3对象列表或S3库存文件。一个例子是处理天气站数据以寻找每月全球最高的温度。

演示过程展示了在可视编辑器中构建工作流的过程。它将S3对象作为输入,在Lambda中分批处理它们,并将结果输出到S3。一个父工作流将这些步骤连接在一起,最后用一个汇总结果的reduce Lambda来完成。监控提供了关于并行执行的见解。

此外,还提供了关于输入源、控制并发、批处理、处理失败和管理结果的更多详细信息。关键的经验教训包括从头开始进行操作,并在调用下游系统时添加重试机制。Lambda提供的强大工具有助于处理大型文件。

总的来说,分布式映射使得轻松地并行处理许多对象变得更加容易。它与亚马逊云科技的其他服务很好地集成在一起。示例代码和工作坊有助于初学者入门。许多其他的re:Invent会议提供了额外的学习机会。

演讲原文

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值