Airflow PostgresOperator SQL参数语法错误排查求助
问题解决步骤
修正PostgresOperator的SQL参数写法
PostgresOperator的sql参数若传入普通字符串,会被直接当作SQL语句发送给数据库执行,你写的"src/test.sql "会被数据库识别为无效SQL,这就是报错的核心原因。正确的方式是用Jinja2的include指令加载SQL文件内容:create_features_table = PostgresOperator( task_id="create_features_table", postgres_conn_id="featuredb", sql="{{ include('src/test.sql') }}" )补充:如果
src目录不在Airflow默认的模板搜索路径(默认是DAG文件所在目录下的templates文件夹),需要在DAG定义时指定template_searchpath参数,比如:from airflow import DAG dag = DAG( dag_id="your_dag_id", # 其他DAG参数 template_searchpath=['./src'] # 指定SQL文件所在目录 )修正test.sql的语法错误
你的SQL脚本中,最后一列C2 int后面多了一个多余的逗号,PostgreSQL不允许列定义末尾存在这种冗余逗号,修改后的脚本如下:CREATE TABLE test( C1 int, C2 int );
内容的提问来源于stack exchange,提问作者Carl
相关产品推荐
相关产品推荐

