相关疑难解决方法(0)

气流 ETL 管道 - 在函数中使用计划日期?

是否可以在 Python 函数中引用 default_args start_date?

default_args = {
    'owner': 'airflow', 
    'depends_on_past': False, 
    'start_date': datetime(2016, 11, 21),
    'email': ['mmm.mm@mmm.com'], 
    'email_on_failure': True, 
    'email_on_retry': True,
    'retries': 1, 
    'retry_delay': timedelta(minutes=1)
}
Run Code Online (Sandbox Code Playgroud)

我的 python 脚本主要使用 subprocess 来发出这个语句:

query = '"SELECT * FROM {}.dbo.{} WHERE row_date = \'{}\'"'.format(database,                                                             select_database(database)[table_int],
                                                                       query_date)
command = 'BCP {} queryout \"{}\" -t, -c -a 10240 -S "server" -T'.format(query, os.path.join(path, filename))
Run Code Online (Sandbox Code Playgroud)

我要运行的任务是使用 BCP 查询“从表中选择 * 日期 = {}”。目前,我的 python 脚本具有日期变量的所有逻辑(默认为昨天)。但是,最好参考 default_arg 并让气流处理日期。

因此,为了简化,我想使用 default_arg start_date 和 schedule(每天运行)来填充我的 BCP 命令中的变量。这是正确的方法还是我应该在 python 脚本中保留日期逻辑?

python airflow

4
推荐指数
1
解决办法
978
查看次数

标签 统计

airflow ×1

python ×1