Apache Superset 版本升级指南与重要变更解析
前言
Apache Superset 作为一款现代化的开源数据可视化与商业智能工具,其版本迭代过程中会引入新功能、优化性能,同时也会进行必要的破坏性变更。本文将为管理员和开发者梳理 Superset 近期版本中的重要变更内容,帮助您顺利完成升级工作。
最新版本重要变更
开发环境优化
-
依赖管理简化:重构了 requirements 文件夹结构,将 development.txt 合并了原先分散的多个依赖文件(local/testing/integration/docker)。基础依赖 base.txt 保持不变,但开发环境依赖更加集中。
-
Docker 使用规范:明确声明 docker-compose 文件仅适用于开发环境,不再支持生产环境使用。生产环境应采用更专业的部署方案。
技术栈更新
-
Python 版本支持:推荐使用 Python 3.10,3.9 版本进入维护期并将逐步淘汰。官方 Docker 镜像已自动适配。
-
Flask-Session 升级:移除了 SESSION_USE_SIGNER 配置项,该选项在新版本中已失效。
功能增强与变更
-
权限模型优化:
all_database_access权限现在真正实现了对所有数据库的完全访问权限,而不仅仅是列表查看权限。 -
国际化支持改进:翻译文件(.mo 和 .json)现在直接打包在 Python 包中,简化了部署流程。
-
Slack 集成升级:适配 Slack 新文件上传 API,需要新增
channels:read权限范围。旧版 API 将被逐步淘汰。 -
日志级别调整:默认日志级别从 DEBUG 调整为 INFO,减少日志量同时保持关键信息可见。
数据库变更
- 索引优化:为
query.sql_editor_id添加索引提升性能,大型部署可能需要停机维护。
4.0.0 版本重大变更
数据库架构调整
-
字段类型扩展:多个表字段类型升级为 MediumText,MySQL 大表可能需要停机执行。
-
外键约束增强:多个关联表添加了 CASCADE ON DELETE 约束,确保数据一致性。
功能移除
-
KV_STORE 功能:该功能及其相关 API 和 keyvalue 表已被弃用,将由永久链接功能替代。
-
多个废弃端点移除:清理了多个旧版 API 端点,需使用新端点替代。
-
多个特性标记移除:移除了 FILTER_BOX、DASHBOARD_FILTERS_EXPERIMENTAL 等已过期的特性开关。
默认行为变更
-
虚拟化渲染:DASHBOARD_VIRTUALIZATION 默认启用,优化大仪表板的渲染性能。
-
钻取功能:DRILL_BY 功能结束试验期,成为默认功能。
3.x 版本重要变更
安全增强
-
临时子查询:出于安全考虑,默认禁用临时子查询功能,可通过 ALLOW_ADHOC_SUBQUERY 开关启用。
-
内容安全策略:默认启用 TALISMAN_ENABLED 并提供更严格的内容安全策略。
技术规范
-
日期格式:严格执行 ISO 8601 标准,不再支持斜杠分隔的日期格式。
-
Oracle 类数据库:默认使用非规范化列名,可通过数据集高级设置调整。
升级建议
-
测试环境先行:建议先在测试环境验证升级过程,特别是大型部署。
-
备份策略:升级前确保数据库完整备份,特别是涉及架构变更的版本。
-
分阶段升级:对于生产环境,考虑分阶段滚动升级以降低风险。
-
配置审查:检查自定义配置是否与新版本特性冲突,特别是已移除的功能开关。
-
性能监控:升级后密切监控系统性能,特别是添加了新索引的表查询性能。
结语
Apache Superset 的持续演进带来了更强大的功能和更稳定的性能,同时也需要管理员关注这些变更对现有部署的影响。通过理解这些变更内容并做好充分准备,您可以顺利完成升级过程,享受新版本带来的各项改进。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



