获取执行参数

简介 #

SmartPip 基于 Airflow 构建,支持基于时间的任务回跑。通过 execution_date 等内置参数,可以获取任务的执行时间信息,用于实现时间维度的数据处理。

常用时间参数速查 #

参数 格式 说明
ds YYYY-MM-DD 任务执行日期
ds_nodash YYYYMMDD 无分隔符日期
yesterday_ds YYYY-MM-DD 昨天日期
tomorrow_ds YYYY-MM-DD 明天日期
prev_ds YYYY-MM-DD 上次执行日期

使用方法 #

“execution_date”

airflow能向任务传递的参数如下:

{'conf': , 'dag': , 'dag_run':, 
'ds': '2022-07-13',
'ds_nodash': '20220713', 
'execution_date': DateTime(2022, 7, 13, 2, 4, 33, 244294, tzinfo=Timezone('+00:00')),
'inlets': [], 
'macros': ,
'next_ds': '2022-07-13',
'next_ds_nodash': '20220713', 
'next_execution_date': DateTime(2022, 7, 13, 2, 4, 33, 244294, tzinfo=Timezone('+00:00')),
'outlets': [], 
'params': {}, 
'prev_ds': '2022-07-13',
'prev_ds_nodash': '20220713',
'prev_execution_date': DateTime(2022, 7, 13, 2, 4, 33, 244294, tzinfo=Timezone('+00:00')),
'prev_execution_date_success': , 'prev_start_date_success': , 'run_id': , 'task': , 'task_instance': , 'task_instance_key_str': , 'test_mode': False, 'ti': ,
'tomorrow_ds': '2022-07-14', 
'tomorrow_ds_nodash': '20220714', 
'ts': '2022-07-13T02:04:33.244294+00:00',
'ts_nodash': '20220713T020433',
'ts_nodash_with_tz': '20220713T020433.244294+0000',
'var': {'json': None, 'value': None},
'yesterday_ds': '2022-07-12',
'yesterday_ds_nodash': '20220712',
'templates_dict': None

那么如何在DAG配置中使用到这个参数呢 我们以DIY方式为例

def get_execution_date(**kwargs):
	execution_date = kwargs['execution_date']
	zymd = execution_date.strftime('%Y%m%d')
	para_dict = {'zymd':zymd}
	run_sql_file('DAG名/任务名.sql','starrocks', para_dict)
	
#diy job_get_execution_date  get_execution_date