Apache Airflow - 为 dag_ids 维护 table 与最后 运行 日期?

Apache Airflow - Maintain table for dag_ids with last run date?

A​​pache Airflow 有 MYSQL tables like dag, dag_run, job that
维护 dag 的元数据字段,包括 dag 运行 次。但是,如果这些 tables 上的频率和报告查询负载增加,让外部查询作业查询这些生产气流 tables 以检查最后 运行 完成可能不是一个好的设计实践。

另一种可能的选择是在 airflow dags 中添加 python 代码以维护另一个单独的数据库-table 这将在每个 dag 任务中保存 dag id 及其 运行 时间元数据 运行。此 table 将在气流之外,需要更新 dag 代码以将元数据保存到新数据库 table。

通过外部报告查询检查 airflow dag 任务的最后 运行 完成时间的推荐方法或更好的替代设计是什么?

如果您只是定期查询数据库,那么公开 Airflow 数据库应该没有问题,最好是从只读帐户。只需关注数据库的运行情况即可。

如果您需要经常点击它,您可能希望将数据复制到另一个数据库。根据您愿意接受的 "lag" 的数量,您可以简单地按时间间隔查询 Airflow 数据库以将状态写入其他地方——您甚至可以使用 Airflow 为您完成此操作。

如果您需要实时信息,您可能需要考虑修改流程并添加一个任务以将记录插入数据库。