Apache Airflow具有MYSQL表,例如dag,dag_run,作业
维护dag的元数据字段,包括dag运行时间。但是,如果外部查询作业的频率和报告查询负载增加,则让外部查询作业查询这些生产气流表以检查上次运行完成情况可能不是一个好的设计实践。
另一个可能的选择是在气流dags中添加python代码以维护另一个单独的数据库表,该表将在每次dag任务运行时保存dag id及其运行时元数据。该表将不在气流范围内,需要更新dag代码以将元数据保存到新数据库表中。
通过外部报告查询来检查气流停滞任务的上次运行完成时间的推荐方法或更好的替代设计是什么?
答案 0 :(得分:1)
如果您仅定期查询数据库,则最好通过只读帐户公开Airflow数据库,这应该没有问题。只需关注数据库的运行情况即可。
如果您需要经常点击它,则可能需要将数据复制到另一个数据库。根据您愿意接受的“滞后”量,您可以简单地按一定间隔查询Airflow数据库,以在其他位置写入状态-您甚至可以使用Airflow为您完成此操作。
如果您需要实时信息,则可能需要考虑修改流程并添加任务以将记录插入数据库。