由Maxime Beauchemin于2014年在Airbnb开始,Apache Airflow是一个开源的工作流管理平台。Apache Airflow,简称Airflow,用于编写、安排和监控工作流。2015年,Airflow正式公布并被纳入Airbnb GitHub旗下。
在代码中定义工作流使其更可维护、可测试和可协作。例如,Airflow管道是用Python定义的,以实现动态管道的生成。因此,也允许开发人员使用标准的Python功能进行调度和循环,并保持灵活性。
Airflow可以用来建立ML模型,传输数据,并管理基础设施。今天,我们探讨一下Apache Airflow的一些替代品。
Luigi
Luigi是一个Python包,用于构建Hadoop作业,将数据转入或转出数据库,并运行ML算法。它解决了与长期运行的进程相关的所有管道问题,并处理了依赖性决议、工作流管理、可视化和命令行集成等问题。
Luigi用于缝合任务--Java中的Hadoop作业、Scala或Python中的Spark作业或一个Hive查询。此外,它还有一个任务模板的工具箱。Luigi在Spotify和德勤内部使用。在这里了解更多关于Luigi的功能。
Kedro
开源的Python框架Kedro用于创建易于维护和可重复的模块化数据科学代码。根据其网站的介绍。
Kedro借用了软件工程最佳实践的概念,并将其应用于机器学习代码。
Kedro提供以下功能。
- 易于使用的Cookiecutter数据科学项目模板
- 数据连接器,可以跨文件格式和系统保存和加载数据
- 管道抽象化
- 提供使用pytest的部署,使用Sphinx生成代码,创建支持black、flake8和isort的代码
- 支持在Kubeflow、AWS Batch、Databricks、Prefect和Argo上部署。
了解如何在这里开始使用Kedro。
来源。GitHub
Pinball
开源、可扩展的工作流管理器Pinball是由Pinterest建立的,尽管该项目不再由Pinterest积极管理。它的设计易于掌握,基于组件,可以在不中止工作流程的情况下进行升级。Pinball的四个关键组件包括。
- 主控:一个状态存储库的前端,支持原子作业令牌的更新
- UI:一个从存储层读取的服务,Master基本上使用这个服务
- 调度器。负责按计划运行工作流
- 工作者。它是Master的客户端
Pinball运行在Python 2上。
BPMN_RPA
机器人流程自动化或RPA帮助企业将单调任务的流程自动化,从而减少人力的付出。RPA在Windows和Linux环境下工作,使用基于BPMN(业务流程模型符号)的图表。通常情况下,基于BPMN的图表是通过工作流引擎运行的。
AWS的步骤函数
亚马逊网络服务的Step Function是一个完全管理的、无服务器和低代码的可视化工作流服务。AWS Step Functions用于为机器学习准备数据、构建无服务器应用程序、自动化ETL流程和协调微服务。
AWS Step Functions允许人们将包括Lambda、Fargate、SNS、SQS、SageMaker或EMR在内的AWS资源组成业务工作流程、数据管道和应用程序。此外,它还提供两种类型的工作流程--标准(用于长期运行的工作负载)和快速(用于高容量的事件处理工作负载),用户和企业可以根据他们的使用情况选择。
在这里阅读关于AWS Step Functions的定价细节。
StackStorm
StackStorm针对的是那些想要实现DevOps流程自动化的开发者团队。思科、Netflix和培生都在使用它。它的功能包括。
- 传感器。用于入站和出站集成的Python插件
- 外部事件的触发器
- 出站集成的行动
- 将触发器映射到行动或工作流程的规则
- 用于内容部署的包
- 对执行情况的审计,手动和自动
在这里了解更多关于StackStorm的功能。
所有数据驱动的公司都依赖于工作流程管理系统,选择适合您的业务需求的系统可能具有挑战性,而且往往令人不知所措。企业应该选择适合其业务规模、使用情况和价格合理的系统。
The post6 Best Alternatives To Apache Airflowappeared first onAnalytics India Magazine.