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

使用Airflow与airflow-dbt-python时遇DBT数据库错误Expecting Value的解决方法

解决Airflow + airflow-dbt-python中的"Expecting value: line 2 column 5"数据库错误

错误日志

[2022-12-27, 13:53:53 CET] {functions.py:226} ERROR - [0m12:53:53.642186 [error] [MainThread]: Encountered an error:
Database Error
Expecting value: line 2 column 5 (char 5)

排查与解决步骤

  • 校验dbt配置文件语法
    这个错误本质是JSON/YAML解析失败,优先检查profiles.yml及dbt项目内的配置文件:

    • 检查引号是否匹配(避免混用单双引号、漏写闭合引号)
    • 确认YAML缩进是否合规(必须用空格,不能用制表符,层级对齐)
    • 转义字符串中的特殊字符(比如冒号、嵌套引号)
      可以用本地YAML/JSON校验工具验证配置文件的语法合法性。
  • 排查数据库连接响应
    如果dbt连接数据库时收到非JSON格式的响应,也会触发该错误:

    • 用dbt debug命令在Airflow工作节点上模拟连接,查看详细的数据库交互日志
    • 检查数据库连接字符串是否正确,确认请求发送到了正确的端点
    • 验证数据库是否返回了错误页、非结构化文本而非预期的JSON数据
  • 对齐执行环境依赖
    Airflow工作节点与本地环境的依赖差异可能导致解析错误:

    • 确认工作节点上的dbt版本与项目要求一致(版本不兼容会改变配置解析逻辑)
    • 对比工作节点与本地的Python依赖版本(比如pyyaml、requests等库),确保适配airflow-dbt-python的要求
  • 检查dbt模型的SQL输出
    若模型中使用了返回JSON的宏(如dbt_utils.get_column_values),需确认:

    • 模型编译后的SQL语句返回结果是合法的JSON结构
    • 手动执行模型对应的SQL,验证返回数据是否符合预期

内容的提问来源于stack exchange,提问作者Sebastian Ziegler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:55:26