Apache Superset创建自定义SQL查询报错但SQL Lab运行正常求助
Apache Superset 自定义SQL查询报错问题解决方案
SQL Lab 执行逻辑为直接向MariaDB发送原生SQL语句,而创建自定义SQL数据集时,Superset会自动对输入的SQL做二次包装,将其作为内联子查询嵌套外层统计、分页逻辑,因此会出现SQL Lab正常执行但创建数据集时报错的情况,可按以下方案逐一排查:
- 给自定义SQL添加显式表别名
MariaDB要求嵌套子查询必须指定别名,将原SQL调整为以下格式即可:Select * from table_name where column_name = 'value' as temp_t - 处理保留字冲突
如果表名、列名使用了MariaDB保留字,嵌套查询时会触发解析错误,将涉及的标识符用反引号包裹即可:Select * fromtable_namewherecolumn_name= 'value' as temp_t - 检查驱动版本兼容性
确认使用的MariaDB Connector/Python驱动与当前Superset版本适配,推荐升级到mariadb 1.1.10及以上稳定版本,避免旧版本驱动的SQL解析兼容问题。 - 调整数据库连接参数
进入对应MariaDB数据源的编辑页面,在「高级」-「其他引擎参数」中添加以下配置,关闭不必要的SQL转义逻辑:{"charset": "utf8mb4", "sql_mode": "ANSI_QUOTES"}
内容的提问来源于stack exchange,提问作者Rusiru Kanchane
相关产品推荐
相关产品推荐

