首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >工作流的Airflow与AWS步骤函数

工作流的Airflow与AWS步骤函数
EN

Stack Overflow用户
提问于 2020-09-23 03:58:28
回答 1查看 13.6K关注 0票数 28

我正在做一个项目,从亚马逊网络服务S3获取一组输入数据,对其进行预处理和分配,创建10K批处理容器,在亚马逊网络服务批处理上并行处理分配的数据,对数据进行后期聚合,并将其推送到S3。

我已经有了来自Airflow + Batch的其他项目的软件模式,但还没有处理10k并行任务的缩放因子。Airflow很好,因为我可以查看失败的任务,并在调试后重试任务。但是,在一个Airflow EC2实例上处理如此多的任务似乎是一个障碍。另一种选择是使用一个任务来启动10k容器并从那里监视它。

我没有使用阶跃函数的经验,但我听说这是AWS的气流。对于步骤函数+批处理,在线模式看起来很多。对于我的用例,步骤函数看起来像是一个很好的检验路径吗?对于失败的作业/重试任务的能力,您是否获得了与Airflow相同的洞察?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 16:11:53

我在Apache Airflow和AWS Step函数上都做过工作,以下是一些见解:

  • Step函数提供开箱即用的维护。它具有高可用性和可扩展性,这是你的用例所需要的。对于Airflow,我们必须在服务器或容器上对其进行自动缩放/负载平衡。Airflow和Step函数具有用户友好的UI。虽然Airflow支持状态机的多种表示,但Step函数仅将状态机显示为DAG。
  • 从2.0版开始,Airflow的Rest API现在是stable。一系列生产分级cli和SDK's.
  • Airflow也支持亚马逊网络服务的步骤功能,而步骤功能有4,000个/月的免费步骤执行(免费层),以及之后的0.000025美元/步骤。例如,如果您对每天运行一次的AWS批处理使用10K步骤,您将被定价为每天0.25美元(每月7.5美元)。Airflow服务器(t2.large ec2 1年预留实例)价格为41.98美元/月。** Airflow中的
  • Batch可以集成到AirflowStep Functions.
  • You中,可以清除和重新运行失败的任务,但在步骤功能中,您必须创建一个custom implementation来处理它。你也可以在步骤函数定义中处理automated retries with back-offs
  • 对于在步骤函数中失败的任务,当你点击它时,你会得到失败状态的可视化表示和详细的消息。您也可以使用aws或sdk来获取details.
  • Step函数使用易于使用的JSON作为状态机定义,而Airflow使用Python脚本。
  • 步骤函数支持async callbacks,即状态机暂停,直到外部源通知它恢复。而Airflow有yet to add这个功能。

总体而言,我看到了使用AWS步骤函数的更多优势。您必须根据您的用例考虑这两种服务的维护成本和开发成本。

更新(适用于Apache Airflow服务的托管工作流):

  • *借助适用于阿帕奇Airflow服务的亚马逊网络服务托管工作流,您可以将气流服务的部署、维护、自动缩放/负载平衡和安全性卸载到亚马逊网络服务。但请考虑您愿意接受的版本号,因为AWS托管服务大多位于最新版本之后。(例如,截至2021年3月8日,开源airflow的最新版本为2.01,而MWAA允许环境、实例和存储的版本1.10.12)
  • **MWAA成本。More details here.
票数 61
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64016869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档