Airflow 除了“每月”的工作,气流是否有类似“昨天”/“明天”?

Airflow 除了“每月”的工作,气流是否有类似“昨天”/“明天”?,airflow,airflow-scheduler,Airflow,Airflow Scheduler,我有一个作业,它使用ds变量来协调它处理的工作量,并计划每天使用@daily运行 select * from events where date = '{{ ds }}'; 但是,我想写一个新版本,它是@monthly。我不需要做太多更改,但我需要访问下一次运行的日期戳,以便干净地将其移植过来 select * from events where date >= '{{ ds }}' and date < '{{ macros.ds_add(ds, 32) }}'; 我该如何实现

我有一个作业,它使用
ds
变量来协调它处理的工作量,并计划每天使用
@daily
运行

select * from events
where date = '{{ ds }}';
但是,我想写一个新版本,它是
@monthly
。我不需要做太多更改,但我需要访问下一次运行的日期戳,以便干净地将其移植过来

select * from events
where
date >= '{{ ds }}'
and
date < '{{ macros.ds_add(ds, 32) }}';

我该如何实现这一点呢?

如果您运行的是最新版本的Airflow,并且您将计划的间隔设置为@monthly,那么我认为
{{prev\u execution\u date}}
{next\u execution\u date}
就是您要寻找的。你可以看到所有的宏

如果你正在运行一个最新版本的Airflow,并且你将你的日程安排的时间间隔设置为@monthly,那么我认为
{{prev\u execution\u date}}
{next\u execution\u date}
就是你想要的。您可以看到所有宏

如果您运行的是
@monthyl
计划间隔,则可以使用
{{prev\u execution\u date}}
以及
{next\u execution\u date}}


如果不这样做,您可能希望通过插件系统开发自定义宏。这些宏将使您能够开发一个函数,并将其传递到一个模板中,该模板满足您的确切需求,而无需考虑时间间隔。您可以使用现有的宏作为指导。

如果您运行的是
@monthyl
计划间隔,则可以使用
{{prev\u execution\u date}}
以及
{next\u execution\u date}


如果不这样做,您可能希望通过插件系统开发自定义宏。这些宏将使您能够开发一个函数,并将其传递到一个模板中,该模板满足您的确切需求,而无需考虑时间间隔。您可以使用现有的宏作为指导。

太棒了!看起来它是在1.8.0之后添加的,太棒了!看起来它是在1.8.0之后添加的
select * from events
where
date >= '{{ ds }}'
and
date < '{{ next_month }}';