Apache Superset 版本升级指南与重大变更解析
前言
Apache Superset 作为一款强大的开源数据可视化与商业智能工具,其版本迭代过程中会引入新功能、优化性能,同时也可能包含一些破坏性变更。本文将从技术角度解析各版本的重要变更,帮助用户顺利完成升级迁移。
最新版本(Next)关键变更
安全与功能调整
-
ClickHouse 函数限制:出于安全考虑,默认禁用
version
、currentDatabase
和hostName
等 ClickHouse 系统函数。 -
告警与报告调度修复:从 3.1.0 版本开始存在的时区偏移问题已修复,确保调度任务在正确时间执行。
-
Docker 镜像优化:
- 移除 Firefox 二进制文件,仅保留 Chromium 以减少镜像体积
- 默认不再包含翻译文件,需通过
BUILD_TRANSACTION=true
显式启用
-
开发工具链升级:弃用
pylint
,全面转向更高效的ruff
作为 Python 代码检查工具。 -
CSRF 令牌处理:调整
fetch_csrf_token
实现以符合 HTTP 标准规范,改进 Cookie 处理机制。 -
Docker 安全增强:重构容器构建流程,降低
superset
用户权限级别,优化分层构建。
4.1.0 版本重要变更
开发与部署优化
-
Python 版本支持:推荐使用 Python 3.10,3.9 即将进入淘汰阶段。
-
依赖管理简化:重构 requirements 目录结构:
base.txt
保持不变development.txt
整合了原 local/testing/integration/docker 等文件内容
-
Docker 生产环境警告:明确声明 docker-compose 文件不适用于生产环境。
-
日志级别调整:默认日志级别从 DEBUG 调整为更合理的 INFO。
功能增强
-
权限明确化:
all_database_access
权限现在真正提供对所有数据库的完全访问权限。 -
翻译打包:翻译文件现在直接包含在 Python 包中,简化部署流程。
-
Slack 集成升级:采用新版 Slack 文件上传 API,需要新增
channels:read
权限范围。
潜在停机风险
- 查询性能优化:为
query.sql_editor_id
添加索引,大型部署可能需要停机维护。
4.0.0 版本重大变更
架构调整
-
数据类型扩展:多个数据库列升级为
MediumText
类型,MySQL 部署可能需要停机执行。 -
KV 存储弃用:移除
KV_STORE
相关功能,后续将通过永久链接实现类似功能。
破坏性变更
-
API 端点调整:
- 删除多个已弃用的 SQL Lab 相关端点
- 修正 SSH 隧道删除端点参数
-
功能标志移除:永久移除多个已弃用功能标志:
- 筛选器框(Filter Box)及相关组件
- 仪表板缓存、客户端缓存等实验性功能
- 筛选集(Filter Sets)功能
-
日期格式强化:强制要求新定义的 Python 数据格式必须符合 ISO 8601 标准。
-
虚拟化默认启用:
DASHBOARD_VIRTUALIZATION
功能标志默认开启,优化大型仪表板性能。
潜在停机风险
- 报告系统索引:为
report_execution_log
和report_recipient
表添加索引,大型部署建议安排维护窗口。
3.x 系列版本重要变更
安全增强
-
加密库升级:更新 cryptography 包以修复 OpenSSL 相关问题。
-
子查询安全:默认禁用临时子查询,需通过
ALLOW_ADHOC_SUBQUERY
显式启用。
功能改进
-
Oracle 类数据库:默认使用非规范化列名,可通过数据集模态中的"标准化列名"选项调整。
-
数值轴处理:修复数值型 X 轴被错误识别为分类值的问题。
架构变更
-
用户邮箱字段扩展:
ab_user.email
列从 64 扩展到 320 字符,MySQL 需注意索引限制。 -
外键约束增强:多个表添加级联删除约束,确保数据一致性。
升级建议
-
测试环境先行:始终先在测试环境验证升级过程。
-
备份策略:升级前确保完整备份元数据数据库。
-
变更评估:
- 检查是否使用了已移除的功能
- 验证自定义集成是否受影响
- 评估数据库变更可能导致的停机时间
-
监控准备:升级后密切监控系统性能和行为变化。
通过理解这些版本变更的技术细节,用户可以更有针对性地规划升级路径,确保业务连续性同时享受新版本带来的改进。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考