Superset添加本地数据库报错:SQLiteDialect_pysqlite无法用作数据源
解决Superset添加SQLite数据库报错问题
问题原因
Superset默认出于安全考量,将SQLiteDialect_pysqlite加入了禁用数据源方言列表,因此直接添加本地SQLite数据库会触发该报错。
解决方案
1. 修改Superset配置文件
- 找到Superset的核心配置文件
superset_config.py(若不存在,可从官方提供的superset_config.py.example复制一份作为基础配置文件)。 - 在配置文件中定位或添加
UNSAFE_DIALECTS配置项:- 如果已有该配置,移除其中的
'SQLiteDialect_pysqlite'条目; - 若未定义,直接添加如下代码(排除SQLite方言):
UNSAFE_DIALECTS = { 'crate', 'dremio', 'drill', 'elasticsearch', 'hive', 'impala', 'kylin', 'pinot', 'presto', 'redshift', 'snowflake', 'starburst', 'vertica', }
- 如果已有该配置,移除其中的
- 注意:不建议直接将
PREVENT_UNSAFE_DB_CONNECTIONS设为False(这会完全关闭安全检查),仅在必要的测试场景中临时使用。
2. 重启Superset服务
修改配置后,停止当前Superset服务进程,重新启动服务使配置生效。
3. 重新添加SQLite数据库
回到Superset管理界面,再次尝试添加本地SQLite数据库,此时即可正常配置连接。
注意事项
- 仅在测试环境或内部信任环境中使用SQLite作为Superset数据源,生产环境不推荐——SQLite不支持高并发,且文件存储模式存在权限和数据安全风险。
- 确保Superset服务进程拥有本地SQLite文件的读写权限,避免后续出现访问异常。
内容的提问来源于stack exchange,提问作者AlphaCoX
相关产品推荐
相关产品推荐

