1. 概述
1.1 版本
FineBI 版本 | 功能变动 |
---|---|
6.0 | - |
6.0.11 | 动态限制资源导入文件大小,防止内存溢出 |
6.0.12 | 1)导出「目录」类型的资源时,可同时导出以下依赖资源:
2)新增「同时导出Finereport链接跳转模板」选项,支持将目录跳转的Finereport子模板一起导出 |
1.2 应用场景
使用 FineBI 系统时,一般先在测试环境系统上进行开发部署,确认无误后再迁移到正式系统中。
FineBI支持将目录、数据集、数据连接、仪表板等资源从测试系统增量迁移到正式系统。
1.3 功能简介
FineBI 以插件形式提供资源迁移功能,支将目录、数据集、数据连接、仪表板等资源从测试系统到正式系统的增量迁移。
插件安装成功后,管理员登录FineBI系统,点击「管理系统>智能运维>资源迁移」,分为「资源导出」、「资源导入」两部分,如下图所示:
资源导出:将需要迁移到其他系统的资源从服务器中导出,以供后续迁移。
资源导入:将需要迁移的资源在新系统中导入,即迁移至新系统。
1.4 注意事项
1)正式工程需购买「智能运维」功能点才可使用「资源迁移」功能。
2)请确保在资源迁移过程中,没有其他人使用超级管理员账号,否则部分执行请求可能被取消。
3)不建议在个人 PC 端工程开发模板后,再以资源迁移的形式同步到公司工程。
因为个人 PC 端没有管理员维护,经常会因为 JAR 包不同步或资源以及配置不同步的问题导致资源迁移失败,运维成本会很高。
2. 准备工作
2.1 获取插件
FineBI6.0版本,资源迁移功能需要依赖「资源迁移」插件。
插件获取请联系技术支持。技术支持联系方式:「服务平台>在线支持」、电话「400-811-8890」
插件安装方法参照: 插件管理
2.2 确认版本
资源迁移之前,请确保资源导入和导出的 FineBI 工程使用的版本一致(包括 JAR 包时间)。
管理员可在「管理系统>注册管理>版本信息」下查看 JAR 包时间,如下图所示:
若版本不一致,可通过升级来确保版本一致。
注:在资源导入时,若上传资源对应的工程和当前工程版本不一致,则无法上传。
提示:无法导入,即将导入的资源需要的工程版本:XXX。当前工程版本:XXX。请确保工程版本一致!
2.3 系统备份
资源导入前建议对测试系统和正式系统均进行 系统备份,如下图所示:
注:备份迁移到的 MySQL 数据库需要选择 utf8_bin 的排序规则。
2.4 确认数据库大小写
若系统配置了 外接数据库 ,在资源迁移前,请确保正式系统和测试系统的「数据库默认字符校验规则」都为「大小写敏感」。
以 Mysql 为例:
2.4.1 进行设置
设置方式:若配置了外接数据库,连接 FineDB 数据库,打开 FINE_CONF_ENTITY 表,设置字符校验规则为 utf8_bin,输入命令如下:
ALTER TABLE fine_conf_entity MODIFY id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin; #设置列的默认校验规则
ALTER TABLE fine_conf_entity DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; #设置表的校验规则
2.4.2 查看设置结果
如下图所示:
2.5 确认插件和驱动
1)若数据连接需依赖第三方插件,目前只支持迁移 JSON 数据集和 Mysql8 数据连接,其他插件类型不适配,会导入失败。
2)权限导出插件生成的服务器数据集,不支持迁移,会导入失败。
3)数据连接迁移只迁移配置。驱动jar包、kerberos认证文件、JNDI 配置文件等都不会迁移,需要手动配置/放置。
请在进行数据连接迁移前,确认正式工程下是否提前安装依赖的相关数据连接插件,否则将导致导入失败。
请在进行数据连接迁移前,确认正式工程下是否提前安装依赖的相关数据连接驱动,否则将导致导入的数据连接不可使用。
2.6 确认数据连接
若需要进行数据连接迁移,需要在资源迁移导入前,保证正式系统已创建好了数据连接,且该数据连接名需与测试系统一致,否则资源无法迁移成功。
若迁移的是服务器数据集创建的仪表板,则在迁移前需要保证正式系统上创建好相同名称的服务器数据集。
服务器数据集若依赖相关数据连接,请确认将相关数据连接导入正式工程,否则导入的服务器数据集无法使用。
2.7 确认用户
1)用户
在资源导入时,系统中必须有资源包的资源所有者。
比如测试系统中数据表的创建者是Anna,那么在正式系统中也必须有一个用户叫Anna。否则导入时需要修改资源的所有者。
2)用户类型
在资源迁移过程中,需要BI数据表的创建者的用户类型保持一致。
比如测试系统中数据表创建者为「分析用户」,那么在正式系统中也需要将其添加到「分析用户」中。
2.8 迁移自定义地图
若模板中调用了自定义地图,需要将地图 json 文件拷贝到正式工程下。
在%FineBI%/webroot/WEB-INF/assets/map/image路径下,将需要迁移的 json 文件拷贝到正式工程对应路径下,如下图所示:
3. 测试系统下资源导出
3.1 选择资源
管理员登录FineBI系统后,进入「管理系统>智能运维>资源迁移」,选择「资源导出」。
选择需要导出的资源类型,选择每种类型下需要导出的具体内容,支持多选。如下图所示:
可导出的资源如下:
资源类型 | 说明 |
---|---|
目录 | 按层级结构展示,可选取最小粒度为仪表板
注:并非系统下的所有仪表板/数据都会被导出。如不发布仪表板,则不存在于导出的资源中。请务必先 发布仪表板 再进行操作。 |
我的分析 | 按层级结构展示,可选取最小粒度为数据集、组件、仪表板
注:导出时,会根据用户导出其路径,导入时会导入对应用户的「我的分析」中。若不存在相关用户,导入时需要修改资源的所有者。 |
公共数据 | 按层级结构展示,可选取最小粒度为数据集
注1:导出时,会将所有关联关系都导出,但是导入时,若关联的表不存在,则自动清除相关关联。 注2:若导出时,表处于申请发布状态,导入时需要重新申请。 |
数据连接 | 可选取FineBI系统中的数据连接 导出数据连接时的资源包括:数据连接的所有配置(基础配置、高级配置) 注:数据连接的密码加密导出,keytab 密钥路径不支持导出、迁移后需要手动输入。 |
服务器数据集 | 可选取FineBI系统中的服务器数据集 支持导出:SQL数据集、文件数据集、树数据集、JSON数据集、内置数据集、程序数据集、关联数据集、存储过程
若文件数据集的数据集来源为URL,则只导出配置,文件不导出 若文件数据集的数据集来源为文件,文件路径包含参数,则文件不导出
若导出树数据集时,未导出依赖的原数据集,则导入时可正常导入但无法使用
若导出关联数据集时,未导出依赖的原数据集,则导入时可正常导入但无法使用
权限导出插件生成的服务器数据集,不支持迁移,会导入失败
若服务器数据集需依赖第三方插件,目前只支持 JSON 数据集和 Mysql8 数据连接,其他插件类型不适配,会导入失败 |
3.2 选择导出全部依赖资源
比如A数据集基于B数据集创建,将A数据集从测试系统迁移到正式系统中,如需正常使用A数据集,需要将依赖的B数据集也导入。
因此选择的资源类型为「目录、我的分析、公共数据」时,可选择是否「导出全部依赖资源」。如下图所示:
该按钮会导出这三种资源类型里的「数据集、组件、仪表板」依赖的资源。
该按钮仅对当前资源类型生效,需要逐个设置。
可导出的依赖资源如下:
资源 | 可导出的依赖资源 |
---|---|
数据集 | 规则: 可导出数据集中直接使用的表 可导出数据集在关联/血缘路径上经过的相关表。 举例: 基于A数据集创建了B数据集,基于B数据集创建了C数据集 导出C数据集时,依赖的资源为A数据集和B数据集 注意: 如果依赖的资源在「我的分析」中,根据用户导出其路径,后续导入时导入对应用户的「我的分析」中 |
组件 | 规则: 可导出组件中直接使用的数据集 可导出组件中使用的表在关联/血缘路径上经过的相关数据集 举例: 基于A数据集创建了B数据集,基于B数据集创建了C数据集,基于C数据集创建了X组件 导出X组件时,依赖的资源为A数据集、B数据集和C数据集 注意: 如果依赖的资源在「我的分析」中,根据用户导出其路径,后续导入时导入对应用户的「我的分析」中 |
仪表板 | 规则: 可导出仪表板中所使用的组件 可导出仪表板中直接使用的数据集 可导出仪表板中使用的表在关联路径上经过的相关数据集 对于组件间的联动、控件对组件的过滤,只导出最短路径中的相关数据集 资源类型为「目录」时,可导出目录仪表板中组件跳转的仪表板 注:6.0.12 及之后版本,资源类型为「目录」时:
举例1: 基于A数据集创建了B数据集,基于B数据集创建了C数据集,基于C数据集创建了D组件 基于X数据集创建了Y数据集,基于Y数据集创建了Z数据集,基于Z数据集创建了W过滤组件 基于D组件和W过滤组件创建了仪表板 导出仪表板时,依赖的资源为D组件、A、B、C数据集、X、Y、Z数据集 举例2: 基于公共数据中的A数据集创建了B数据集,基于B数据集创建了C组件 基于公共数据中的D数据集创建了E数据集,基于E数据集创建了F组件 在主题W内,基于C组件创建了仪表板X,基于F组件创建了仪表板Y 挂载仪表板X至目录Z,导出目录Z时,依赖的资源为Y仪表板、C、F组件、A、B、D、E数据集 注意: 如果依赖的资源在「我的分析」中,根据用户导出其路径,后续导入时导入对应用户的「我的分析」中 |
3.3 选择同时导出的资源
比如A数据集设置了定时更新,将A数据集从测试系统迁移到正式系统中,用户可能需要将设置的定时更新也导入。
因此在导出时,支持选择同时导出「同时导出Finereport链接跳转模板」、「原始Excel附件」、「公共链接的设置项」、「定时更新任务」、「同时导出权限配置」。如下图所示:
同时导出配置,对导出的全部资源类型生效。
可同时导出的资源如下:
同时导出的资源 | 说明 |
---|---|
同时导出Finereport链接跳转模板 | 默认勾选该选项,且只对「目录」类型的迁移资源生效
仅导出挂载在目录中的仪表板,仪表板中跳转的Finereport子模板不会同时导出
导出挂载在目录中的仪表板时,仪表板中跳转的Finereport子模板会同时导出,子模板中若存在下级子模板,也同时导出,以此类推 |
原始Excel附件 | 若导出的资源、或导出依赖的资源,存在「Excel数据集」。 勾选「原始Excel附件」,则会将原始Excel附件一起导出,这样在后续的导入中不需要再重新上传Excel文件。 注:若导出的数据表与正式系统相同位置的表名称一样,将覆盖掉正式系统中的数据表,因此此处需确认好再进行导出导入操作。 |
公共链接的设置项 | 若导出的资源存在「仪表板」,可勾选「公共链接的设置项」,将仪表板的公共链接设置一起导出。
无论是覆盖导入还是新增导入,按照导入的仪表板的公共链接设置为准
覆盖导入时,原来仪表板设置的公共链接不被覆盖 新增导入时,导入的仪表板默认不开启公共链接 |
定时更新任务 | 若导出的资源、或导出依赖的数据集,存在「定时更新任务」。 勾选「定时更新任务」,则会将数据集的定时更新任务一起导出。定时更新任务导出该资源项自身的更新任务,不导出父节点上的更新任务。
无论是覆盖导入还是新增导入,按照导入的数据集的定时更新任务为准。
覆盖导入时,原来数据集设置的更新任务不被覆盖 新增导入时,导入的数据集不带有更新任务 |
同时导出权限配置 | 规则: 勾选「同时导出权限配置」,可导出资源的权限配置。 权限配置包括:使用权限(查看、编辑、授权等)、行列权限。 仅导出该资源项自身设置的权限,不导出由父节点继承而来的权限。 文件夹、主题、仪表板、数据集等资源导出权限时,均不导出继承而来的权限。 举例: 文件夹X中有一个数据集A,文件夹和数据集上面都配置了使用权限。
|
3.4 导出的文件
导出后会生成 resources.zip 文件,如下图所示:
4. 正式系统下资源导入
4.1 上传文件
管理员登录 FineBI 系统,选择「管理系统>智能运维>资源迁移>资源导入」,点击「上传文件」,如下图所示:
注1:资源导入前建议进行 系统备份,其中备份迁移到的 MySQL 数据库需要选择 utf8_bin 的排序规则。
注2:单次只允许上传单个压缩文件。
上传文件时,系统会自动获取当前可用的空闲内存大小,当上传文件大小 <(当前可用的空闲内存大小-256MB)时,允许上传文件,当上传的文件大小 >(当前可用的空闲内存大小-256MB)时,触发限制,报错「当前剩余内存 xxxMB,文件大小 xxxMB,为防止内存溢出,不允许上传」,如下图所示:
上传文件成功后,系统会获取导入文件所包含的资源,包含资源类型、资源名称、资源所有者、资源路径、导入方式和资源信息对比。
设置 | 说明 |
---|---|
资源类型 | 类型包括:目录、服务器数据集、数据连接、仪表板、组件、数据集 |
资源名称 | 资源名称为各种资源的名称 |
资源所有者 | 资源类型为「目录、服务器数据集、数据连接」时,资源所有者为空 资源类型为「仪表板、组件、数据集」时,资源所有者即资源的创建者 资源的创建者 |
路径 | 资源类型为「目录、服务器数据集、数据连接」时,路径为空 资源类型为「仪表板、组件、数据集」时,路径为资源在公共数据/用户的分析下的存放路径 |
导入方式 | 在导入时,系统会对资源进行检测,检测是否与系统现有资源有冲突 根据冲突类型分配不同的导入方式,分为:新增导入、覆盖导入和不允许导入
|
资源信息对比 | 当导入方式为「覆盖导入」时,点击每一项后面的黄色按钮,可查看导入的资源信息与原有的资源信息对比,查看是否一致。 如下图所示: |
注1:在导入资源时,若该路径下存在转义名相同的资源,会自动对导入的资源的转义名进行修改,变为「转义名1」。
注2:不支持空文件夹导入。
注3:资源不允许导入时,资源所有者显示为「未知用户」,可点击修改资源所有者为系统中的其他用户,点击「确定」生效。
如果资源是公共数据中的数据集,修改资源所有者仅会改变该资源的所有者用户ID。
如果资源是我的分析中的主题,修改资源所有者,会将该主题的路径调整为对应用户的分析下的路径,并刷新用户ID。
4.2 导入文件
勾选需要上传的资源,点击「导入」,点击「确定」。如下图所示:
若导入失败,显示失败的原因(如:导出工程和导入工程中存在同名同路径但是类型不同);若导入成功,则资源即时生效。如下图所示:
注:由于对应的环境配置不同 IP 端口号会改变,资源迁移后的仪表板公共链接需要重新进行链接分享。
4.3 数据更新
若迁入的基础表资源为「抽取数据」,导入到新的系统中需要手动进行 数据更新 ,或者直接进行 全局更新 。
更新后才能看到导入的数据表均正常显示,如下图所示:
注:若导入数据表为 Excel 数据集或者以 Excel 数据集为基础表制作的数据集,则必须进行文件夹更新或者全局更新。
若导入的数据表为数据库表或者 SQL 数据集,则可以对导入的表进行单表更新。