Apache Superset导出仪表盘仅生成JSON文件 导入报错如何解决
Apache Superset 仪表盘单JSON导出/导入失败排查方案
问题本质
不同版本Superset的仪表盘导出逻辑存在不兼容差异:
- 2.0及更早版本:默认导出产物为单个JSON文件,文件内聚合了仪表盘布局、关联图表、数据集的全量元数据,无独立文件夹结构
- 2.1及之后版本:默认导出为ZIP压缩包,解压后是包含
dashboards/、charts/、datasets/、databases/子目录的标准化资源文件夹,新版本默认导入通道仅识别该ZIP包格式,直接上传旧版单JSON会触发格式校验错误,直接中断导入流程。
分步解决
- 先确认两端版本
在Superset部署的服务器环境执行以下命令,分别确认「导出操作所在环境」和「导入操作所在环境」的版本号:superset version - 匹配对应导入入口
- 如果导入环境是2.0及更早版本:不要走通用的「导入资源」入口,在仪表盘列表页右上角的更多菜单中,找到*导入旧版仪表盘(JSON)*选项,上传你拿到的单JSON文件即可完成导入,不需要额外处理。
- 如果导入环境是2.1及之后版本:
- 先在当前环境找到旧版JSON导入入口,把单JSON文件先导入系统
- 选中刚导入完成的仪表盘,重新执行导出操作,系统会自动生成适配当前版本的ZIP格式资源文件夹包
- 后续用新导出的ZIP包走正常导入流程即可,不会再触发格式错误。
- 异常兜底校验
如果走旧版入口导入JSON依旧报错,先做文件合法性校验:- 用文本编辑器打开导出的JSON文件,检查是否存在截断、乱码问题
- 校验JSON格式是否合法,正常导出的仪表盘JSON顶层会包含
dashboard_title、position_json、slices(关联图表)核心字段,若核心字段缺失说明原环境导出过程中断,需要回到原环境重新执行导出,导出过程不要关闭页面、中断网络请求。
跨大版本操作提示:不要直接把1.x版本导出的JSON硬导入3.x版本,跨2个以上大版本会存在字段定义不兼容问题,建议先在2.0.x过渡版本完成导入、重新导出适配包后,再往高版本导入。
内容的提问来源于stack exchange,提问作者Rafay Ahmed
相关产品推荐
相关产品推荐

