You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 06:55:12