所以这是一个愚蠢的想法......
我在气流中创建了(很多)DAG ...并且它可以工作......但是,我想以某种方式将其打包以便我可以在没有安装气流的情况下运行单个DAG运行;即拥有它自己,所以我不需要所有的Web服务器,数据库等 .
无论如何,我主要用触发器dag实例化新的DAG Run,我注意到运行气流的开销看起来很高(工作人员有很高的负载基本上什么也没做,有时需要10秒的时间才能将相关任务排队等等) .
我对所有伐木等都不太感兴趣
听起来你的主要关注点是空转 Worker 浪费资源,而不是浪费Airflow本身 .
我建议在一个盒子上使用LocalExecutor运行Airflow . 这将为您提供并发执行的好处,而无需管理员工的麻烦 .
至于数据库 - 没有修改气流源本身就无法删除数据库组件 . 另一种方法是将SequentialExecutor与SQLite结合使用,但这样就无法运行并发任务,因此不建议用于 生产环境 .
首先我要说你需要调整一下气流设置 .
但如果这不是一个选项,那么另一种方法是在DAG之外的代码中编写主逻辑 . (这也是最佳做法) . 对我来说,这使代码更容易在本地测试 .
编写shell脚本很容易将几个进程联系在一起 .
您不会从操作员或依赖项中获益,但您可能可以编写脚本 . 如果你不能,只需使用Airflow .
2 回答
听起来你的主要关注点是空转 Worker 浪费资源,而不是浪费Airflow本身 .
我建议在一个盒子上使用LocalExecutor运行Airflow . 这将为您提供并发执行的好处,而无需管理员工的麻烦 .
至于数据库 - 没有修改气流源本身就无法删除数据库组件 . 另一种方法是将SequentialExecutor与SQLite结合使用,但这样就无法运行并发任务,因此不建议用于 生产环境 .
首先我要说你需要调整一下气流设置 .
但如果这不是一个选项,那么另一种方法是在DAG之外的代码中编写主逻辑 . (这也是最佳做法) . 对我来说,这使代码更容易在本地测试 .
编写shell脚本很容易将几个进程联系在一起 .
您不会从操作员或依赖项中获益,但您可能可以编写脚本 . 如果你不能,只需使用Airflow .