七月下旬更新速递丨 任务中心上线,福利加倍!技术干货持续放送

更新焦点: 重磅推出「任务中心」! 完成多样化任务,轻松赚取麦豆!技术分享、AI学习、实用素材持续上新,点击标题立即探索!

任务版块全新登场!多个任务等你完成,麦豆轻松拿,福利享不停!

>> 立即前往任务中心,开启你的成长之旅! <<

二、实战技巧分享

报表合计不用愁!全场景报表合计一键搞定指南》→从几个场景出发,带大家全方位了解如何在各类报表中实现合计。

数据轻松入库,高效分析即刻开启!》→详细介绍在 Smartbi 中将数据导入数据库的几种主要途径。

三、开发技能突破

第三方系统集成Smartbi资源→演示一些入门的前端集成示例,帮助快速了解如何进行前端集成。

AI每日一学

什么是训练集?什么是验证集?什么是测试集?》→ 讲解如何用三大数据集为AI打造"训练-调试-终测"的全流程闭环

Manus与其他AI智能体产品有什么区别?》→ AI界真·“实干家”Manus上线!告别“嘴炮”AI,围观智能体如何“动手”逆天改命!速戳

五、资源更新

浅色系质感背景图》→百搭质感背景,看见即呼吸,质感如微风。

六、直播上线

如何制作性能最佳的报表解锁性能最佳报表的实践技巧

麦粉社区
>
帖子详情

我们不产生资源,只是资源的搬运工

干货分享 发表于 6 小时前
发表于 6 小时前

众所周知,在开发的世界里,会存在两个环境,一个是开发者们尽情挥洒创意的报表开发环境,另一个是用户们真实体验的正式运行环境,那问题来了,我怎么把精心打磨的资源从开发环境顺利迁移到正式环境中呢?莫慌莫慌,读完这篇文档,小小资源迁移,拿捏。


IMG_256


 


不过在此之前,我们还是来唠唠,聊聊那些资源到底是怎么在背后偷偷“藏猫猫”的,也就是资源存储的逻辑到底是啥样的。


 


我们的报表包含两块,一块是报表定义,另一块是报表呈现的数据。其中报表定义是存储到知识库,而展示的字段数据,是存储到业务库。什么,不知道知识库是什么,那先给你插个科普。我们config界面配置的一个库,我们统称为知识库,你看下图,就这些配置。


知识库存储了整个环境定义,包括你建的资源啊、用户信息啊、权限体系啊,都存在这个库了,毕竟这库两三百张表呢,存储信息可多啦。


 


IMG_278


 


业务库,也就是我们数据源配置对接进来的那些库,这些库存储了业务数据,也就是报表层面表格啊,图形啊,展示的那些数据,就是来源于业务库,所以我们知识库并不存储业务库数据哦,只是配置好对应库,通过驱动去与对应数据库交互。


 


IMG_258


 


好了,收。知识库存储的是资源定义,这个时候我们迁移的,实际上也是报表的定义,业务库数据不会进行迁移哦,所以这期科普后,那就不会再问迁移是不是把业务库表数据迁移过去了,删除资源是不是把业务库表数据删除的问题了。


前面说了那么多原理,那到底是咋迁移呢。产品是有两种迁移方式,一个是增量迁移,也就是单张/多张报表迁移。另一个是全量迁移,也就是整个环境内容都需要迁移过去。下面我们来一个个来介绍。


 


一、增量迁移


增量迁移,用于开发环境建好了几张报表,迁移到生产环境中,这个直接使用我们的【运维设置】—【系统迁移与备份】中的导出导入资源,先导出资源,再进行导入到目标环境中


 


IMG_259


 


接着我们看导出的界面,左下角有那么几个选项,可能有些小伙伴就一脸懵了,我不就导出个资源嘛,怎么还有这些玩意。正所谓,天生我材必有用,这些东西肯定是有用的,不然没用为啥要摆到台面上来。


 


IMG_260


 


添加依赖资源:


指添加导出资源依赖的资源(血统分析中的资源)添加进来,也就是我们的报表资源是基于啥做的,像数据模型啊、数据源啊、以及等等,这些如果目标环境没有,导出也没添加,那导入到目标报表那边,打开报表就会报错哦。


像下面这个是我选择了一张电子表格,添加依赖权限后,把用到的模型还有数据源显示出来了。


 


IMG_261


 


导出资源权限:


就是针对资源直接授予的权限,注意这里继承的权限本质是对父目录授权的,所以导出资源节点不会导出继承的权限哦,以及如果用户ID、角色ID、用户组ID那些不一致的话,导入到目标环境会显示deleted,但是报表打开是不会有问题的,只不过没权限的用户无法打开而已。


 


IMG_262


 


导出数据源、业务主题、数据模型行权限:


也就是我们提到的数据权限,可以针对这三类进行配置,如果不勾选就不会导出,勾选了就会一并导出。


导出后最终是一个xml后缀的文件,那导出了之后,接着就可以导入了,还是【运维设置】—【系统迁移与备份】那里去找,导入资源的按钮,点击之后选择资源,然后他会列出你导出的那些资源。


 


IMG_263


 


细心的小伙伴就会发现,上面截图中怎么备注还有红的蓝的,但是自己迁移的时候是空的,这就得说说我们导入资源的状态了,一般有以下几种:



  • 覆盖式导入:表示可覆盖导入。表示资源ID、资源类型和资源真名都相同的时候,会对原有资源进行覆盖操作。

  • 不允许导入:表示需修改一些选项,即可导入。

  • 空:表示可直接导入,无任何冲突。


一般不允许导入的时候,有下面几种情况,还有解决方案:


 


IMG_264


 


什么,那么多记不住啊,没事哒没事哒,点击下备注那里,他就会告诉你可以怎么处理的。像下面这个,所以也不用担心说记不住~~


 


IMG_265


 


来,下面看完了,让我们倒回来,看上面那一排的按钮们。


 


IMG_266


 


首先第一个【关系数据源配置】,这个是用于导入资源的时候,我报表用的是A数据源,但是现在想改为B数据源,表结构那些都是一致的,这个时候就可以进行关系数据源设置进行切换,直接看下面那个图,点击关系数据源配置之后,会把用到的数据源列出来,然后根据实际配置,就可以啦,然后要注意下下面蓝色的提示哦。


 


IMG_267


IMG_268


 


【反选】就很好理解了,就是最右侧导入那一列那里,本来勾选上的取消勾选,没勾选上的就勾上。


【全不选】【全选】就是字面意思啦,把所有都取消勾选或者都勾选上。


【仅选可导入的】那就是备注显示为红色的那块,是不会勾选上,其他都会勾选上,也包括覆盖导入。


【仅选无冲突的】跟可导入的那个选项相比,就是会把覆盖式导入也取消勾选,仅勾选备注列为空的资源。


大部分情况下,目标环境没有对应资源,那直接选择对应资源导入就好啦,开发环境修改了对应资源,生产需要更新下,那就覆盖导入,假如担心被覆盖资源也有用,那可以导入之前导出下对应资源进行备份,总而言之,按需选择。


 


二、全量迁移


上面说了增量迁移,那接下来我们来聊聊全量迁移。全量,也就是所有的东西。一般用于新部署一个环境,但是所有内容都需要跟另一个环境一样,这个时候就可以用全量迁移,也就是我们的备份知识库、恢复知识库。


入口业也是跟导出导入资源一样的,在系统设置系统迁移与备份那里,右侧那里也可以搜索。


 


IMG_269


 


我们先来看看备份知识库的选项,有三个,【仅备份非日志表】【仅备份日志表】【备份所有表】


 


IMG_270


 


那都啥区别呢?我知道你很急,但是你先别急,待我细细讲来。


我们先看看,日志表有哪些。看到中间那个选项的那个图标了吗,欸,是的,鼠标放上去,他就告诉你有哪些表了。


 


IMG_271


 


那日志表有啥用?不备份会有影响吗?什么情况下不需要备份?


IMG_272


 


其实日志表就是环境运行过程中,产生的一些日志,比如操作日志、抽取日志、电子表格回写日志等等。这些表数据不备份,是不会影响环境报表的呈现的,就是想查此前的日志记录,查询不到而已。


像有些日志表,尤其操作日志没清过,然后数据量很大的情况下,不备份这些日志表,备份下来的整个知识库都小了很多,那不管是备份还是恢复,那都会快很多。


虽然没有备份这些表,但是目标报表还是会有这些表的,这里不备份是不备份现有环境的数据,目标表不恢复这几张表数据而已,恢复进去后,目标环境的那些操作还是会记录到对应表中。


那仅备份日志表那就是就备份上面图片列出来的那几张表,有时候就是想要这部分数据,那就可以这样子备份啦。所有表那就是日志+非日志表哦。具体要不要备份日志表,这个看每个项目自己的需求~


备份下来之后是个压缩包,然后就可以去目标环境恢复啦,并不需要额外解压,直接选择压缩包就好了。


三、常见问题


操作很简单,那我们来说说一些常见的问题。


 


问题1:为什么恢复知识库之后,我原来这个环境有A报表,恢复之后没有了?


恢复知识库,是一个覆盖式操作,也就是会把现有环境信息清空,再导入新的数据,那本身这个环境有的报表也会被删掉,导入的时候也会有提示,所以一般恢复知识库是用于部署个新的环境,需要跟原始环境一样的情况,一般恢复前也迁移备份下目标环境的知识库,万一恢复错了,好歹有个备份。如果只是部分报表,那移步到前面,用增量迁移。


 


IMG_273


 


问题2:为什么恢复提示“备份文件的版本XXX 比当前服务器版本高,当前服务器版本情况:XXX”


 


IMG_274


 


这个是因为高版本的知识库不支持恢复到低版本中。啥叫高版本知识库呢,就是备份知识库的环境版本、打包日期比恢复知识库的环境版本、打包日期新。


不李姐?举个栗子:


1、备份知识库环境是V11,恢复知识库环境是V10,那知识库是高版本,恢复的环境是低版本。


2、同一版本我们就看打包日志,也就是关于界面中的build日期。像上面那个图,报错人提示的就是都是V11版本,但是日期不一样。备份知识库环境build日期是2025年1月18日的,恢复的环境build日期是2025年1月14日,那也是知识库版本比较高啦。


 


IMG_275


 


这里可能有小伙伴就会问,为啥不支持高版本知识库恢复到地板本中。就是我们高版本都是会去新增一些功能,这个时候低版本没有那个功能,那恢复到低版本中是没法呈现的,报表会异常,所以是不允许高版本导入到低版本中哦。


那可能有些小伙伴遇到过,明明两个环境的版本信息、打包日期都一致,或者有时候是目标环境版本更新,还是恢复提示知识库版本不匹配,这又是为啥呢。这个时候就是扩展包引起的,目标环境扩展包版本没有原始环境的版本高,可以目标环境加载一样的扩展包,那就可以正常恢复了!


 


问题3:恢复知识库的时候提示:“恢复知识库成功!知识库包含升级记录,但是当前没有加载的板块XXX”


这个是因为原始环境有一些扩展包(或者此前加载过,但是现在下架没使用了),目标环境没有,所以提示了,不会影响环境使用。


 


问题4:知识库只能手动备份吗?


产品有内置的计划任务去备份知识库,会默认删除时间靠前的,保留最新的30个知识库。


 


IMG_276


 


这个备份路径默认是在部署smartbi机器中的config文件目录那里哦,看任务代码就可以看得出了,同时个数也是可以根据实际修改。另外我们更加推荐操作系统那边能够再做多一层备份,把自动备份的知识库可以备份到其他机器,双重保险!


 


IMG_277


 


问题5:恢复知识库后,config界面内容也会被修改吗?


IMG_278


config文件是存储到服务器那里的,恢复知识库是往config配置的那个库进行清空、插入数据,并不会置空config界面内容。


 


IMG_279


 


以上就是资源迁移的分享,希望能够帮助到大家!

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 0关注人数 19浏览人数
最后回复于:2023-8-12 10:10
快速回复 返回顶部 返回列表