我有一个使用气流数据的Flask应用程序。我想从我的Flask应用程序访问气流数据库并查询数据。我能够运行原始SQL查询。但是我应该有一个如何使用SQL的解决方案炼金术查询技术。例如,如果我需要数据表数据。我应该可以运行Dag.query.all()
来获取所有dag数据。
答案 0 :(得分:0)
Airflow使用SQLAlchemy(当前1.1.x用于Airflow 1.10中继)来管理其模型,因此您可以使用本教程中记录的标准SQLAlchemy API进行交互并查询它们。
https://docs.sqlalchemy.org/en/rel_1_1/orm/tutorial.html
您也可以使用标准的数据库连接字符串从任何Python代码(例如Flask应用程序)访问数据库,如上述教程中所述。
这里有create_engine()
支持的各种数据库连接URL格式的示例。
https://docs.sqlalchemy.org/en/rel_1_1/core/engines.html#database-urls
您可以在Airflow的models.py文件中找到更多信息,例如特定模型上的字段。
https://github.com/apache/incubator-airflow/blob/master/airflow/models.py
您可以在此处找到更多SQLAlchemy文档。