【发布时间】:2021-11-04 19:16:58
【问题描述】:
我有一些 SQL 由气流 BigQueryOperator 触发,其中一个 SQL 对以下情况给出的所有任务都很常见:
要运行的 SQL - common.sql、abc.sql、xyz.sql
- 任务1 -
common.sql + abc.sql - 任务2 -
common.sql + xyz.sql
为了一个任务运行 2 个 SQL,我将 2 个 SQL 文件读入一个字符串,然后运行合并的字符串以一次性运行任务。
代码如下:
with open ('common.sql', "r") as sqlfile:
common_array = sqlfile.readlines()
with open ('abc.sql', "r") as sqlfile:
abc_array = sqlfile.readlines()
# at this point, sql_script has all codes from common.sql and abc.sql
sql_script = ''.join(common_array) + '\n' + ''.join(abc_array)
BigQueryOperator(task_id='task1', sql=sql_script)
这符合我的目的,还有其他更优雅的方式吗?
【问题讨论】:
-
嗨,OP。让我们知道答案是否有帮助。如果它回答了您的问题,请考虑接受它。这样其他人就知道你已经(充分地)得到了帮助。另见What should I do when someone answers my question?