Windows Docker环境下Apache Kylin与Superset连接报错求助
问题解决:Superset通过kylinpy连接Apache Kylin报错
错误场景
- Windows系统通过Docker运行Superset,Apache Kylin部署在同一虚拟网络的另一台机器上
- 已在Docker容器内安装kylinpy,但连接时触发错误:
(builtins.NoneType) None [SQL: _compose_select_body() takes 7 positional arguments but 9 were given] (Background on this error at: https://sqlalche.me/e/14/dbapi) - 使用的SQLALCHEMY连接串:
kylin://ADMIN:KYLIN@<IP-address-machine-running-kylin>:7070/learn_kylin
解决方案
这个错误是kylinpy版本与Superset依赖的SQLAlchemy版本不兼容导致的,_compose_select_body方法参数数量不匹配。按以下步骤修复:
降级kylinpy版本
进入Superset的Docker容器,执行命令安装兼容版本:pip uninstall kylinpy -y && pip install kylinpy==2.8.22.8.2版本是经测试适配多数Superset版本的稳定版,可避免参数不匹配问题。
验证连接串有效性
确保连接串中的IP是Kylin所在机器的虚拟网络内可访问IP,端口7070正常开放,用户名密码(ADMIN/KYLIN)正确,项目learn_kylin存在且权限配置正常。重启Superset服务
在容器内执行重启命令,让依赖变更生效:superset init && superset run -p 8088 --with-threads --reload --debugger
补充排查
如果降级后仍报错,可检查Superset的SQLAlchemy版本,确保其与kylinpy 2.8.2兼容(推荐SQLAlchemy 1.4.x系列),若版本过高可同步降级:
pip install sqlalchemy==1.4.46
内容的提问来源于stack exchange,提问作者Ali Akber Faiz
相关产品推荐
相关产品推荐

