Airflow 是开箱即用的。它拥有庞大的生态系统和社区,能够满足几乎所有(批处理)数据流水线的需求。
问题是什么?
我们在管理冗长的 crontab 时遇到了日益增长的复杂性,调度成为一个问题,这需要在资源受限、使用模式以及尤其是需要自定义重试逻辑的情况下,仔细规划时机。在最后一种情况中,需要在运行下一个任务之前验证前一个作业和/或步骤是否成功。此外,结果的时间至关重要,但我们越来越多地依赖处理缓冲区,导致任务实际上处于空闲状态,等待下一阶段,从而尽量减少对自定义代码/逻辑的依赖。
Apache Airflow 如何帮助解决此问题?
依赖社区构建的现有 hook 和 operator,覆盖我们使用的大多数云服务,使我们能够专注于业务成果,而非运维细节。
结果如何?
Airflow 帮助我们管理了许多痛点,让我们受益于整个生态系统和社区。通过在处理流程中采用事件驱动的方式,我们能够缩短数据产品的交付时间(例如,在首次使用时,我们平均去除了超过 2 小时的各阶段等待时间)。此外,由于不需要大量自定义或自行实现的解决方案,我们可以更快地交付并迭代产品。我们的代码库更小、更简洁,易于阅读,在很大程度上,DAG 本身就充当了充分的文档,使新贡献者能够快速了解整个流程。