超棒的流水线
================
受Awesome Sysadmin启发的精选流水线工具包列表
流水线框架和库
- ActionChain - 一个用于简单线性成功/失败工作流的工作流系统。
- Adage - 一个小型包,用于描述定义时尚未完全确定的工作流。
- AiiDA - 一个强调溯源、性能和可扩展性的工作流管理器。
- Airflow - 由Airbnb创建的基于Python的工作流系统。
- Anduril - 用于科学数据分析的基于组件的工作流框架。
- Antha - 用于生物学的高级语言。
- Autosubmit - 一个开源Python实验和工作流管理器,用于管理云端和HPC平台上的复杂工作流。
- AWE - 支持CWL的工作流和资源管理系统。
- Balsam - 基于Python的高通量任务和工作流引擎。
- Bds - 用于数据管道的脚本语言。
- BioMake - 类似GNU-Make的工具,用于管理构建和复杂工作流。
- BioQueue - 具有Web监控和资源估算功能的显式框架。
- Bioshake - 基于shake构建的Haskell DSL,具有强类型和EDAM支持。
- Bistro - 用于构建和执行类型化科学工作流的库。
- Bpipe - 用于运行和管理生物信息学管道的工具。
- Briefly - 用于作业流控制的Python元编程库。
- Cluster Flow - 使用常见集群管理器运行生物信息学管道的命令行工具。
- Clusterjob - 自动化可重复性和无忧提交计算作业到集群。
- Compi - 用于可移植计算管道的应用框架。
- Compss - 分布式基础设施的编程模型。
- Conan2 - 轻量级工作流管理应用程序。
- Consecution - 受Apache Storm拓扑启发的Python管道抽象。
- Cosmos - 用于大规模并行工作流的Python库。
- Couler - 用于在不同工作流引擎(如Argo Workflows、Tekton Pipelines和Apache Airflow)上构建和管理工作流的统一接口。
- Covalent - 用于高性能和量子计算研发的工作流编排工具包。
- Cromwell - 由Broad研究所开发的面向科学工作流的工作流管理系统。
- Cuneiform - 用Erlang实现的高级功能性工作流语言和框架。
- Cylc - 最初为操作环境预报开发的循环系统工作流引擎。
- Dagobah - 基于Python的简单DAG作业调度器。
- Dagr - 基于Scala的DSL和框架,用于编写和执行生物信息学管道作为有向无环图。
- Dagster - 基于Python的API,用于定义DAG,可与流行的工作流管理器接口,用于构建数据应用程序。
- DataJoint - 用于科学数据管道的开源关系框架。
- Dask - Dask是一个灵活的并行计算库,用于分析。
- Dbt - 完全用SQL编写分析工作流的框架。ETL中的T部分,专注于分析工程。
- Dockerflow - 使用Dataflow在Docker中运行一系列任务的工作流运行器。
- Drake - 用Clojure实现的类似Make的强大DSL。
- Drake R包 - 具有易用的R界面的可重复性和高性能计算。与Factual的Drake无关。后继者为Targets。
- Dray - 用于管理基于容器的工作流执行的引擎。
- ecFlow - 工作流管理器。
- eHive - 用于在分布式计算资源上创建和运行管道的系统。
- Fission Workflows - 用于无服务器/FaaS函数的快速、轻量级工作流引擎。
- Flex - 用于构建灵活数据科学管道的语言无关框架(Python/Shell/Gnuplot)。
- Flowr - 使用简单的语言无关方法实现强大高效的工作流(R包)。
- Gc3pie - 用于在不同网格和集群上运行应用程序的Python库和工具。
- Guix Workflow Language - GNU Guix的工作流管理语言扩展。
- Gwf - 类似Make的工具,通过qsub提交工作流。
- Hamilton - 一个用于描述数据流的Python微框架;可在任何Python运行的地方运行。
- HyperLoom - 用于在大规模分布式环境中定义和执行工作流管道的平台。
- HyperQueue - 面向高性能计算的任务调度器,自动将任务分配到Slurm/PBS分配中并为用户提交。
- Joblib - 一组为Python提供轻量级流水线处理的工具。
- Jug - 基于任务的Python并行化框架。
- Kedro - 帮助构建数据管道的工作流开发工具。
- Kestra - 具有声明式语法的开源数据编排和调度平台。
- Ketrew - OCAML语言中的嵌入式DSL,附带客户端-服务器管理应用程序。
- [https://github.com/Nike-Inc/koheesio] - 用于构建高效数据管道的Python框架。
- Kronos - 癌症基因组分析和信息学的工作流组装器。
- Loom - 用于本地或云端运行生物信息学工作流的工具。
- Longbow - 生物分子模拟的作业代理工具。
- Luigi - 帮助构建复杂批处理作业管道的Python模块。
- Maestro - 基于YAML的高性能计算工作流执行工具。
- Makeflow - 用于在集群上执行大型复杂工作流的工作流引擎。
- Mara - 介于普通脚本和Apache Airflow之间的轻量级、自主ETL框架。
- Mario - 用于定义数据管道的Scala库。
- Martian - 用于开发和执行复杂计算管道的语言和框架。
- MD Studio - 基于微服务的工作流引擎。
- MetaFlow - Netflix开源的面向数据科学家的DAG生成框架。提供Python和R API。
- Mistral - Open Stack项目开发的基于Python的工作流引擎。
- Moa - 生物信息学中的轻量级工作流。
- Nextflow - 用于可重现和可扩展生物信息学管道的基于流的计算工具包。
- NiPype - 神经影像软件包的工作流和接口。
- OpenGE - 用于操作和解释高通量测序数据的加速框架。
- Pachyderm - 建立在容器生态系统上的分布式可重现数据管道和数据管理。
- Parsl - 并行脚本库。
- PipeFunc - 用纯Python为科学工作流创建轻量级函数管道(DAG)。
- PipEngine - 基于Ruby的复杂生物学管道启动器。
- Pinball - Pinterest开发的基于Python的工作流引擎。
- Popper - 基于YAML的容器原生工作流引擎,支持Docker、Singularity、带Docker守护程序的Vagrant虚拟机和本地主机。
- Porcupine - Haskell工作流工具,用于表达和组合任务(可选缓存),其数据源和接收器预先已知且可重新绑定,并可向外部世界公开任意参数集。
- Prefect - 为Prefect提供支持的基于Python的工作流引擎。
- Pydra - 轻量级、基于DAG的Python数据流引擎,用于可重现和可扩展的科学管道。
- PyFlow - 轻量级并行任务引擎。
- pyperator - 使用asyncio的简单推送式Python工作流框架,支持递归网络。
- pyppl - 轻量级Python管道框架。
- pypyr - 自动化任务运行器,用于执行在管道yaml中定义的顺序步骤,带有AWS和Slack插件。
- Pwrake - Rake的并行工作流扩展。
- Qdo - 用于执行多个小任务的工作流的轻量级高通量排队系统。
- Qsubsec - SGE的简单标记化模板系统。
- Rabix - 基于通用工作流语言和Docker的Python工作流工具包。
- Rain - 用Rust编写的大型分布式基于任务的管道框架,具有Python API。
- Ray - 灵活、高性能的分布式Python执行框架。
- Redun - 又一个冗余工作流引擎。
- Reflow - 用于云端分布式增量数据处理的语言和运行时。
- Remake - R中类似Make的声明式工作流。
- Rmake - 用于创建Makefile的包装器,实现大规模并行化。
- Rubra - 生物信息学工作流的管道系统。
- Ruffus - Python的计算管道库。
- Ruigi - 受Luigi启发的R管道工具。
- Sake - 自文档化的构建自动化工具。
- SciLuigi - 用于在Luigi中编写灵活科学工作流的辅助库。
- SciPipe - 用Go编写科学工作流的库。
- Signac - 轻量级但可扩展的框架,用于在本地和高性能计算系统上运行文件驱动的工作流。
- Scoop - Python中的可扩展并发操作。
- Seqtools - 用于对可索引容器进行管道化转换的惰性评估的Python库。
- SmartPipeline - 一个遵循简单设计模式,用于快速开发稳健数据管道的框架。
- Snakemake - 用于运行和管理生物信息学管道的工具。
- Spiff - 基于工作流模式倡议并在Python中实现。
- Stolos - 有向无环图任务依赖调度器,简化分布式管道。
- Steppy - 轻量级、开源的Python 3库,用于快速和可重现的实验。(该存储库已于2022年6月22日被所有者存档。)
- Stpipe - 作为Python库的文件处理管道。
- StreamFlow - 专注于混合工作流的容器原生工作流管理系统。
- StreamPipes - 一个自助式物联网工具箱,使非技术用户能够连接、分析和探索物联网数据流。
- Sundial - 在AWS ECS或AWS Batch上管理依赖关系和调度的作业系统。
- Suro - Netflix的基于Java的分布式管道。
- Swift - 在多核、集群、云和超级计算机上快速易用的并行脚本编写。
- Targets - 在R中实现动态、面向函数的类Make可重现管道。
- TaskGraph - 一个帮助管理由长时间运行的单个任务组成的复杂计算软件管道的库。
- Tibanna - 帮助在亚马逊云上运行基因组管道的工具。
- Toil - 分布式管道工作流管理器(主要用于基因组学)。
- Yap - 使用OpenMPI库用Python编写的可扩展并行框架。
- Yapp - 用于流处理的C++并行管道库。
- Wallaroo - 用于流数据应用程序和对实时事件做出反应的算法的框架。
- WorldMake - 简单协作的可重现计算。
- Zenaton - 用于跨应用程序和第三方服务编排作业、数据和事件的工作流引擎。
- ZenML - 可扩展的开源MLOps框架,用于为数据科学家创建可重现的管道。 工作流平台
- ActivePapers - 使计算科学可重复和可发布。
- Active Workflow - 多语言工作流,无需离开您熟悉的技术栈。
- Anvi'o - 以宏基因组学为中心的社区和框架,旨在促进数据的可重复探索和可视化。
- Apache Iravata - 在分布式计算资源上执行和管理计算工作流的框架。
- Arteria - 测序中心的事件驱动自动化。根据事件启动工作流。
- Arvados - 基于容器的工作流平台。
- Biokepler - 用于大规模生物数据分布式分析的生物信息学科学工作流。(自2019年10月起不活跃)
- Butler - 在公共和学术云上运行科学工作流的框架。
- Chipster - 开源数据分析平台。
- Clubber - 生物信息学电子资源的集群负载均衡器。
- Digdag - 为简单性、可扩展性和协作而设计的工作流管理器。
- Domino - 用户友好的开源可视化工作流管理平台。
- Fireworks - 用于高通量计算的动态工作流的集中式工作流服务器。
- Flyte - 容器原生、类型安全的工作流和管道平台,用于大规模处理和机器学习。
- Galaxy - 强大的工作流系统,可在命令行或GUI中使用。
- Kepler - 加州大学的Kepler科学工作流应用程序。
- KNIME Analytics Platform - 通用平台,具有许多专业领域扩展。
- NextflowWorkbench - Nextflow、Docker和可重用工作流的集成开发环境。
- omega|ml DataOps Platform - 面向人类的数据和模型管道部署 - 集成、可扩展、可扩展。
- OpenMOLE - 用于模型探索和参数优化的工作流管理系统。
- Ophidia - 具有分布式操作声明性工作流的数据分析平台。
- Orchest - 数据科学IDE。
- Pegasus - 工作流管理系统。
- Piper - 设计为极其简单的分布式工作流引擎。
- Polyaxon - 机器学习实验工作流平台。
- Reana - CERN开发的可重用研究数据分析平台。
- Sushi - 支持用户进行Shell脚本集成。
- Yabi - 用于网格、HPC和云计算的在线研究环境。
- Taverna - 独立于领域的工作流系统。
- Temporal - 高度可扩展的面向开发人员的"工作流即代码"引擎。
- Windmill - 将脚本转换为内部工具的开发者平台和工作流引擎。
- VisTrails - 科学工作流和溯源管理系统。
- Wings - 使用Pegasus作为执行系统的语义工作流系统。
- Watchdog - 用于大规模实验数据自动化和分布式分析的工作流管理系统。
- FlowHub - FlowHub是一个新的工作流云平台。
工作流语言
工作流标准化倡议
ETL和数据编排
- DataLad - 基于git和git-annex的数据版本控制系统,支持轻量级溯源捕获/重新执行。
- DVC - 适用于ML项目的数据版本控制系统,支持轻量级管道。
- lakeFS - 在对象存储之上提供可重复、原子和版本化的数据湖。
- Nessie - 为Iceberg表、Delta Lake表和SQL视图提供类似Git的功能和版本控制。 文学式编程(又称交互式笔记本)
- Beaker 笔记本风格的开发环境。
- Binder - 将GitHub仓库转换为由Jupyter和Kubernetes驱动的交互式笔记本集合
- IPython 丰富的交互式计算架构。
- Jupyter 与语言无关的笔记本文学式编程环境。
- Org Mode GNU Emacs主模式,用于计算笔记本、文学式编程等多种用途。
- Pathomx - 基于Python构建的交互式数据工作流。
- Polynote - 更好的Scala(及其他语言)笔记本。由Netflix开发。
- Ploomber - 使用
pipeline.yaml
文件将笔记本和脚本整合到可重现的管道中 - R Notebooks - R Markdown笔记本文学式编程环境。
- RedPoint Notebooks - 面向程序员的Web原生计算笔记本,支持多种语言、API和网络钩子。
- SoS - 可读、交互、跨平台和跨语言的数据科学工作流系统。
- Zeppelin - 支持交互式数据分析的基于Web的笔记本。
提取、转换、加载(ETL)
- Cadence 由Uber开发的分布式、可扩展、持久且高可用的编排引擎。
- Dataform - Dataform是一个用于管理数据仓库中基于SQL操作的框架。
- Kiba ETL - Ruby的数据处理和ETL框架。
- LinkedPipes ETL - 链接数据发布和消费ETL工具。
- Pentaho Kettle - 一个提供强大ETL功能的平台,使用突破性的元数据驱动方法。
- Substation - Substation是用Go编写的云原生数据管道和转换工具包。
持续交付工作流
构建自动化工具
- Bazel - 像Google工程师那样构建软件。
- doit - Python中高度通用的任务管理和自动化工具。
- Gradle - 统一的跨平台构建工具。
- Just - 类似Make的命令和配方运行器,用Rust构建。
- Make - GNU Make构建系统。
- Prodmodel - 数据科学管道的构建系统。
- Scons - 专注于C/C++构建的Python库。
- Shake - 使用Haskell定义类似GNU Make的强大构建系统。
自动化工作流组合
- APE - 基于语义注释自动探索可能计算工作流的工具。
其他项目
- HPC Grid Runner
- NiFi - 强大且可扩展的有向图,用于数据路由、转换和系统调解逻辑。
- noWorkflow - 支持在没有科学工作流管理系统的情况下运行科学实验的基础设施,同时仍能获得来源等信息。
- Reprozip - 简化从命令行执行创建可重现实验的过程。
相关列表
- Awesome streaming - 精选的优秀流处理框架和应用列表。
- Awesome ETL - 精选的著名ETL(提取、转换、加载)框架、库和软件列表。
- Awesome workflow engines - 精选的优秀开源工作流引擎列表。
- 计算数据分析工作流系统