繁体   English   中英

数据比较过程中的循环工作流程

[英]Cyclic Workflow in Data Comparison Process

我正在寻找一种解决方案来自动化迭代数据比较过程,直到所有数据包都一致。 我的一般猜测是使用 Apache Airflow 之类的东西,但迭代性质似乎是一个循环图。 Apache 气流仅允许 DAG(有向无环图)。 由于我对 Airflow 的了解并不多,所以我有点迷茫,希望能在这里获得一些专业知识。

当前状态:我处于一个位置,我经常需要比较数据包的一致性,并手动将错误传达给两个不同的方。

一方面有设计数据集,另一方面有测量数据集。 这两个数据集都涉及来自不同方的许多手动步骤。 因此,如果发生不一致,我会联系一方或另一方并手动删除错误。 两个数据集也有定期更改,可能会给已检查的数据集带来新的错误。 我猜这个过程还没有自动化,因为数据集不能直接比较,但需要在两者之间进行一些转换。 我在过去几周自动化了这个转换过程,所以我现在需要做的就是运行脚本并传达错误。

我现在需要的是一个工具,它可以根据正确的数据集编排我的脚本,并在存在错误时联系相应的人员。 万一发生更改或添加了脚本,则需要再次运行。

我的第一个猜测是我需要在 apache 气流中创建一个工作流,但是这个迭代过程在我看来是一个循环图,这在气流中是不允许的。 您有什么建议吗,或者这是一种常见的情况,是否也存在 Airflow 的解决方案?

我认为解决您的问题的一种方法可能是使用 DAG 工作流来完成比较数据集和发送通知的主要任务。 然后在 Cron、Quartz 等中运行一个触发 DAG 工作流的周期性任务。 您在 Airflow 中是正确的,不喜欢循环工作流程。

我在 Cylc 工作,这是一个循环图工作流工具。 循环工作流(或带有循环的工作流)在数值天气预报 NWP(创建 Cylc 的原因)等领域以及优化等其他领域非常常见。

在 NWP 工作流中,某些步骤可能正在等待数据集,如果数据与预期不符(例如缺少某些卫星成像数据,以及潮汐模型输出文件丢失),工作流可能会停止并发送通知。

此外,在生产中,NWP 模型每天运行多次。 要么是因为你有新的观察数据,要么是新的输入数据,或者是因为你想运行集成模型等。所以你最终会并行运行多个工作流,工作流管理器负责管理依赖关系,优化使用资源、发送通知等。

循环工作流很复杂,这可能是大多数实现选择仅支持 DAG 的原因。

如果您想尝试 Cylc,该团队一直在努力使其更通用,以便它不仅仅特定于 NWP。 它有一个新的 GUI,输入格式和文档在易于使用的情况下进行了改进。

还有其他支持循环工作流的工具,例如StackStormPrefect ,我目前正在检查Autosubmit是否也支持它。 如果您愿意,请查看这些工具。

如果您在生命科学领域,或者对可重现的工作流程感兴趣,CWL 标准也有一些关于添加对loops的支持的持续讨论,这可以让您实现类似于您所描述的我认为的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM