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

Superset无法连接Apache Drill:‘Final Drill query state is FAILED HTTP ERROR: None’报错

解决Superset连接Apache Drill时SHOW DATABASES失败的问题

针对你遇到的Superset添加Drill数据源时执行SHOW DATABASES报错(sqlalchemy.exc.DatabaseError: ... Final Drill query state is FAILED HTTP ERROR: None),且连接字符串在Drill中正常的情况,可按以下步骤排查修复:

  • 检查sqlalchemy-drill驱动版本兼容性
    最新版Superset可能对驱动版本有要求,确保安装适配的sqlalchemy-drill版本。建议卸载现有版本后安装最新稳定版:

    pip uninstall sqlalchemy-drill -y
    pip install sqlalchemy-drill>=1.1.0
    

    安装完成后重启Superset服务。

  • 修正连接字符串格式
    尝试调整连接字符串,明确指定Drill的查询端点路径,比如:

    drill+sadrill://localhost:8047/dfs?use_ssl=False&endpoint=/query.json
    

    或者针对你的API数据源:

    drill+sadrill://localhost:8047/http/nugenesis?use_ssl=False&endpoint=/query.json
    

    部分Drill部署的REST查询端点默认是/query.json,未指定可能导致请求失败。

  • 查看Drill服务器日志定位具体错误
    报错中HTTP ERROR: None说明Superset未收到明确错误信息,直接去Drill的日志目录(默认在<drill-install-dir>/logs)查看drillbit.log,搜索FAILED关键字,找到对应查询的详细失败原因,比如权限不足、数据源配置问题等。

  • 手动用SQLAlchemy测试连接
    写一个简单的Python脚本,绕过Superset直接测试驱动与Drill的交互,确认是否是Superset配置问题:

    from sqlalchemy import create_engine
    
    # 替换成你的连接字符串
    engine = create_engine('drill+sadrill://localhost:8047/dfs?use_ssl=False')
    with engine.connect() as conn:
        result = conn.execute("SHOW DATABASES")
        for row in result:
            print(row)
    

    如果脚本执行失败,说明问题出在驱动或Drill配置;如果成功,则需要检查Superset的数据源配置(比如额外权限限制、代理设置等)。

  • 检查Drill的权限与配置
    确认Drill用户是否有执行SHOW DATABASES的权限,同时检查Drillbit配置文件drill-override.conf,确保HTTP服务正常启用,且默认端口8047未被防火墙或其他进程占用。

内容的提问来源于stack exchange,提问作者Catalin Ristache

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:25:05