我可以在 Airflow 上使用前端吗?
Can I have a front-end on Airflow?
我想公开一个前端用户界面,以在后端为数据管道接受用户的一些输入参数,然后在前端用户界面上再次向用户显示输出。我可以将数据管道作为 Airflow DAG,只要用户提交输入参数,它就会按需 运行。本质上,我希望将 Airflow 作为网络应用程序的后端。我可以有一个连续的 运行ning DAG 为用户提供网页,每当他们提交输入参数时,数据管道就会执行并显示结果吗?
我找到了一个相似的例子 - https://towardsdatascience.com/10-minutes-to-building-a-machine-learning-pipeline-with-apache-airflow-53cd09268977 但我不确定它是连续提供网页还是仅在 DAG 为 运行 时提供,然后在 DAG 完成时停止。
我从事的项目中最常见的解决方案涉及表面处理 Flask App or Flask App Builder objects through the plugins folder in your setup。
第二个 link 应该是一个很好的例子。
从这里您可以让 Flask 应用实质上调用 Airflow 模型或使用 airflow/utils/db.py 中的会话概念与后端数据库交互。
祝你好运!
一种方法是您可以公开 APIs 以通过编写自定义插件与 Airflow 进行交互,如上一个答案中所述。
我能想到的另一种方法是利用 Airflow command-line 界面。基本上让你的 UI 以某种方式远程执行 Airflow 命令。幸运的是,已经有一个插件可以做到这一点。 Airflow REST API Plugin 将 Airflow command-line 接口公开为 REST APIs。我没有亲自尝试过。但是在我们需要 API 进行某些操作时对其进行了探索。从文档来看,它似乎很稳定且维护良好。
我想公开一个前端用户界面,以在后端为数据管道接受用户的一些输入参数,然后在前端用户界面上再次向用户显示输出。我可以将数据管道作为 Airflow DAG,只要用户提交输入参数,它就会按需 运行。本质上,我希望将 Airflow 作为网络应用程序的后端。我可以有一个连续的 运行ning DAG 为用户提供网页,每当他们提交输入参数时,数据管道就会执行并显示结果吗?
我找到了一个相似的例子 - https://towardsdatascience.com/10-minutes-to-building-a-machine-learning-pipeline-with-apache-airflow-53cd09268977 但我不确定它是连续提供网页还是仅在 DAG 为 运行 时提供,然后在 DAG 完成时停止。
我从事的项目中最常见的解决方案涉及表面处理 Flask App or Flask App Builder objects through the plugins folder in your setup。
第二个 link 应该是一个很好的例子。
从这里您可以让 Flask 应用实质上调用 Airflow 模型或使用 airflow/utils/db.py 中的会话概念与后端数据库交互。
祝你好运!
一种方法是您可以公开 APIs 以通过编写自定义插件与 Airflow 进行交互,如上一个答案中所述。
我能想到的另一种方法是利用 Airflow command-line 界面。基本上让你的 UI 以某种方式远程执行 Airflow 命令。幸运的是,已经有一个插件可以做到这一点。 Airflow REST API Plugin 将 Airflow command-line 接口公开为 REST APIs。我没有亲自尝试过。但是在我们需要 API 进行某些操作时对其进行了探索。从文档来看,它似乎很稳定且维护良好。