【发布时间】:2021-11-01 05:22:35
【问题描述】:
我想创建一个 sn-p,它根据 DAG 是否已安排或是否手动触发来传递正确的日期。 DAG 每月运行一次。 DAG 根据上个月的数据生成报告(A SQL 查询)。
如果我按计划运行 DAG,我可以使用以下 jinja sn-p 获取上个月:
execution_date.month
鉴于 DAG 被安排在上一个时期(上个月)结束时, execution_date 将正确返回上个月。但是在手动运行时,这将返回当前月份(执行日期将是手动触发的日期)。
我想编写一个简单的宏来处理这种情况。但是,我找不到以编程方式查询 DAG 是否以编程方式触发的好方法。我能想到的最好办法是从数据库中获取run_id(通过创建一个具有数据库会话的宏),检查run_id 是否包含单词manual。有没有更好的方法来解决这个问题?
【问题讨论】:
标签: airflow