ApacheAirflow-1.10-如何在运行时访问SQL文件
TL;DR如何使dag中的任务可以访问资产(SQL文件、文本文件) 大家好 我正在运行单节点气流安装(1.10.12)。我有一个使用SQL语句的dag。为了可读性,我希望将这些语句保存在它们自己的SQL文件中。所以我的项目看起来是这样的:ApacheAirflow-1.10-如何在运行时访问SQL文件,airflow,airflow-operator,Airflow,Airflow Operator,TL;DR如何使dag中的任务可以访问资产(SQL文件、文本文件) 大家好 我正在运行单节点气流安装(1.10.12)。我有一个使用SQL语句的dag。为了可读性,我希望将这些语句保存在它们自己的SQL文件中。所以我的项目看起来是这样的: MyProject - airflow_ftp_DAG.py - airflow_ftp_assets (directory) - WEX_HH_Upsert_SQL.sql 当我的dag运行时,它会抱怨找不到SQL文件。这是因为
MyProject
- airflow_ftp_DAG.py
- airflow_ftp_assets (directory)
- WEX_HH_Upsert_SQL.sql
当我的dag运行时,它会抱怨找不到SQL文件。这是因为dag在不同的文件夹中运行其任务(如运行os.getcwd()
)
如何使我的SQL文件可以被我的任务引用
def insert_hh_records(**kwargs):
key = 'WEX_FILETYPE_HH'
collated_data_file_path = kwargs['ti'].xcom_pull(key=key)
sql_path = "airflow_wex_ftp_assets/WEX_HH_Upsert_SQL.sql"
sql_string = ''
<!--- Error below --->
with open(sql_path,"r") as f:
sql_string = f.read()
def insert_hh_记录(**kwargs):
key='WEX\u文件类型\u HH'
已整理的数据文件路径=kwargs['ti'].xcom\u pull(key=key)
sql\u path=“airflow\u wex\u ftp\u assets/wex\u HH\u Upsert\u sql.sql”
sql_字符串=“”
将open(sql_路径,“r”)作为f:
sql_string=f.read()
非常感谢您的帮助我正在将我的Dag文件作为zip文件上传到我的Dag文件夹中。在这个过程中的某个地方,它解压缩了它们,但没有保留SQL资产文件。一旦我停止压缩,问题就消失了。我正在将我的Dag文件作为压缩文件上传到我的Dag文件夹中。在这个过程中的某个地方,它解压缩了它们,但没有保留SQL资产文件。一旦我停止拉拉链,问题就消失了