我有一个气流DAG,我想每15分钟运行一次。该dag始终会处理前15分钟(从半小时前开始)的数据。我希望处理时间的边界与四分之一小时完全一致。
因此,在我的一个SQL查询中,我想要一个模板化的WHERE子句,例如
WHERE
event_timestamp >= TIMESTAMP('{{ (execution_date - macros.timedelta(minutes=30)).strftime("%Y-%m-%d %H:%M:%S") }}') AND
event_timestamp < TIMESTAMP('{{ (execution_date - macros.timedelta(minutes=15)).strftime("%Y-%m-%d %H:%M:%S") }}')
问题在于execution_date
对象与每个季度的时间都不完全对齐。我期望如此,因为这是我安排DAG的方式:
default_dag_args = {
'start_date': dt.datetime(2019, 4, 8),
...
}
models.DAG(
'my_dag',
schedule_interval=dt.timedelta(minutes=15),
default_args=default_dag_args) as dag:
我有两个问题
execution_date
与每个季度的时间不完全一致?