1. 概述
1.1 版本
| FineBI服务器版本 | 功能变动 |
|---|---|
| 7.0 | - |
1.2 应用场景
使用 FineBI 系统时,一般先在测试环境系统上进行开发部署,确认无误后再迁移到正式系统中。
FineBI 支持将目录、数据集、数据连接、仪表板、等资源从测试系统增量迁移到正式系统。
1.3 功能简介
FineBI 以插件形式提供资源迁移功能,支持将目录、数据集、数据连接、仪表板、指标等资源从测试系统到正式系统的增量迁移。
插件安装成功后,管理员登录FineBI系统,点击「管理系统>智能运维>资源迁移」,分为「资源导出」、「资源导入」两部分,如下图所示:
资源导出:将需要迁移到其他系统的资源从原FineBI系统中导出,以供后续迁移。
资源导入:将需要迁移的资源在新FineBI系统中导入,即迁移至新系统。

1.4 注意事项
1)正式工程lic需包含「运维平台」功能点才可使用「资源迁移」功能。
2)FineBI7.0工程,仅支持导入FineBI7.0工程的资源,不支持导入FineReport工程的资源。
3)请确保在资源迁移过程中,没有其他人使用超级管理员账号,否则部分执行请求可能被取消。
4)不建议在个人 PC 端工程开发模板后,再以资源迁移的形式同步到公司工程。
因为个人 PC 端没有管理员维护,经常会因为 JAR 包不同步或资源以及配置不同步的问题导致资源迁移失败,运维成本会很高。
5)单次资源导入内容不可超出2GB,否则在导入资源时会报错:out of memoryerror。请少量多次分配导出和导入资源。
2. 资源迁移前检查
2.1 安装资源迁移入口插件
FineBI的资源迁移功能,依赖「资源迁移入口」插件。
请分别为资源迁出和迁入的工程,安装并启用「资源迁移入口」插件。
插件安装成功后,在「管理系统>智能运维」下方可出现「资源迁移」入口。

2.2 确认注册运维平台功能点
资源迁移功能,依赖「运维平台」功能点。
管理员分别登录资源迁出和迁入的工程,点击「管理系统>注册管理>功能列表」。
请确保工程已注册功能点中包含「运维平台」功能点。如不包含该功能点,请联系帆软销售增购。
注:对于未注册工程,默认拥有该功能点,可跳过。

2.3 确认FineBI工程版本
资源迁出和迁入的工程,必须保证主工程类型完全一致,即都必须是FineBI工程,不支持FineReport工程资源迁入FineBI工程。
资源迁出和迁入的工程,必须保证工程小版本号和 JAR 包时间完全一致,否则资源无法成功导入。
1)管理员分别登录资源迁出和迁入的工程,查看「管理系统>注册管理>版本信息」页面。
2)请确保两个工程均包含BI模块,请确保两个工程的小版本号和 JAR 包时间完全一致。
若版本不一致,可通过升级FineBI工程来确保版本一致。详情请参见:FineBI版本升级简介

注:在资源导入时,若上传资源对应的工程和当前工程版本不一致,则无法上传。
提示「无法导入,即将导入的资源需要的工程版本:XXX。当前工程版本:XXX。请确保工程版本一致!」

2.4 确认外接配置库字符集排序规则
FineBI7.0及以上版本默认对接了外接配置库。资源迁出和迁入的工程,外接配置库的字符集排序规则应当保持一致,均为「大小写敏感」。否则在资源迁移后,构建表索引时,不同表ID可能被认定为同一张表,从而被错误覆盖。
配置库的字符集排序规则的查看和修改步骤,请自行查阅对应数据库帮助文档。(例如MySQL类型,应当设置为utf8mb3_bin,别称utf8_bin)

3. 资源导出
管理员登录 FineBI 系统后,进入「管理系统>智能运维>资源迁移」,即可进行「资源导出」。

3.1 选择导出资源
选择需要导出的资源类型,选择每种类型下需要导出的具体内容,支持多选。支持导出的各种资源如下表所示:
注:单次资源导入内容不可超出2GB。因此请少量多次导出资源。
| 资源类型 | 导出内容说明 |
|---|---|
| 目录 | 支持导出「目录管理」中所有平台目录 无法导出首页目录 |
| 我的分析 | 支持导出「我的分析」中的所有主题及主题内表、组件、仪表板、分析文档 支持导出有管理权限的「用户的分析」中的所有主题及主题内表、组件、仪表板、分析文档 |
| 数据目录 | 支持导出「数据目录」下的表、指标、维度、业务模型 同时导出模型中心中对应指标、维度、业务模型 |
| 模型管理 | 支持导出「指标中心>模型管理」目录中的模型视图、资源 |
| 指标管理 | 支持导出「指标中心>指标管理」目录中的指标 |
| 维度管理 | 支持导出「指标中心>维度管理」目录中的维度 |
| 指标集 | 支持导出「指标中心>维度管理」目录中的维度 |
| 数据连接 | 支持导出 FineBI 系统中的所有数据连接,包括基础配置、高级配置 若数据连接需依赖第三方插件,目前只支持迁移 JSON 数据集,其他插件类型不适配,请勿导出 |
| 服务器数据集 | 支持导出 FineBI 系统中的所有服务器数据集:SQL数据集、文件数据集、树数据集、JSON数据集、内置数据集、程序数据集、关联数据集、存储过程
|
3.2 选择导出全部依赖资源
比如A数据集基于B数据集创建,将A数据集从测试系统迁移到正式系统中,如需正常使用A数据集,需要将依赖的B数据集也导入。
因此导出资源时,可选择是否「导出全部依赖资源」。该按钮会导出依赖的资源。该按钮仅对当前资源类型生效,需要逐个设置。
| 规则 | 示例 |
|---|---|
| 导出资源对应主题及主题内表、组件、仪表板、分析文档 | 场景:目录A中挂出了主题B的仪表板C 说明:导出目录A时,导出依赖资源:主题B及主题B下的所有表、组件、仪表板、分析文档 |
| 导出主题中的数据依赖的「数据目录」中的基础表、分析表、指标、维度 | 场景:基于基础表A,创建了主题B中的表 说明:导出主题B时,导出依赖资源:基础表A |
| 导出以上数据资源在血缘路径上经过的所有相关表、指标、维度、业务模型、主题 | 场景:基于A表创建了B表,基于B表创建了C业务模型,基于C业务模型创建了D指标 说明:导出D指标时,导出依赖资源:A表、B表、C业务模型 |
| 导出以上数据资源在关联路径上经过的所有相关表、指标、维度、业务模型、主题 | 场景:AB表关联,BC表关联 说明:导出C表时,导出依赖资源:A表、B表 |
| 如果组件间存在联动、控件对组件存在过滤,导出最短路径中的相关数据集 | 场景: 基于A数据集创建了B数据集,基于B数据集创建了C数据集,基于C数据集创建了D组件 基于X数据集创建了Y数据集,基于Y数据集创建了Z数据集,基于Z数据集创建了W过滤组件 D组件和W过滤组件组成了M仪表板,仪表板挂出到了N目录 说明:导出N目录时,导出依赖资源:D组件、M仪表板、W过滤组件、A、B、C数据集、X、Y、Z数据集及其所在的主题 |
| 资源类型为「目录」时,如果目录仪表板中存在FineBI仪表板超链跳转,同时导出跳转的仪表板所在主题 | 场景:A仪表板中的超链可跳转到B仪表板,A仪表板挂出到了C目录 说明:导出C目录时,导出依赖资源:AB仪表板及其所在的主题 |
3.3 注意事项
| 注意事项 | 说明 |
|---|---|
| 不导出依赖资源的风险 | 如导入的工程中没有依赖的资源,尽管可以成功导入,但无法使用或预览 例如主题A的数据来源为数据目录中的基础表B,导入的工程数据目录中不存在基础表B,则导入后主题A的数据标红无法查看 |
| 导出的资源所有者 | 资源导入时会优先导入到资源原所有者名下。如导入的工程中无资源的所有者,在导入时可以指定所有者 例如A工程中主题所有者为eoco,B工程中存在用户eoco,则导入B工程时eoco即为该主题所有者 例如A工程中主题所有者为eoco,B工程中不存在用户eoco,则导入B工程时可指定其他用户作为主题所有者 |
| 导出的资源转义名 | 如导入时同路径下的资源的转义名重名,则自动对其转义名重命名为「原转义名1」,以确保资源不会被覆盖 注意,此处说的是转义名而非资源名称。同名资源在导入时可自行选择导入方式 |
| 导出的资源发布状态 | 如导出时,资源处于申请发布状态,导入后需要重新申请,不保留「申请」/「取消申请」的状态 |
| 导出的资源分享和协作状态 | 导出时会同步导出资源的「分享状态」和「协作状态」 但如果导入的工程中不存在对应用户,则对应状态自动丢失 |
| 导出的资源关联关系 | 导出表时,同时导出表的关联关系。但仅当关联双方同时存在于导入的工程,才能同时导入关联关系。 例如AB两表关联,导出A表且不导出依赖资源,导入时只导入A表且工程中不存在B表,则不导入AB的关联关系 例如AB两表关联,导出A表且不导出依赖资源,导入时只导入A表但工程中存在B表,则导入AB的关联关系 |
| 导出的数据连接 | 数据连接的密码加密导出 数据连接中如使用了 Kerberos 认证,.keytab 密钥表文件及路径不支持导出,迁移后需要手动输入 |
| 导出的服务器数据集 |
若文件数据集的数据集来源为URL,则只导出配置,文件不导出 若文件数据集的数据集来源为文件,文件路径包含参数,则文件不导出
若导出树数据集时,未导出依赖的原数据集,则导入时可正常导入但无法使用
若导出关联数据集时,未导出依赖的原数据集,则导入时可正常导入但无法使用 |
| 不支持导入空目录 | 对于目录、我的分析、数据目录、指标中心,不支持导入空文件夹,必须包含有效资源 例如我的分析中,创建了三个空文件夹,这些文件夹中都没有任何主题资源,那么导入新工程时,不导入这三个空文件夹,因为不存在业务意义 |
3.4 选择同时导出的资源
比如A数据集设置了定时更新,将A数据集从测试系统迁移到正式系统中,用户可能需要将设置的定时更新也导入。
因此在导出时,支持选择同时导出一些资源。同时导出配置,对导出的全部资源类型生效。
可同时导出的资源如下:
| 同时导出的资源 | 说明 |
|---|---|
| 同时导出Finereport链接跳转模板 | 默认勾选该选项,且只对「目录」类型的迁移资源生效
仅导出挂载在目录中的仪表板,仪表板中跳转的Finereport子模板不会同时导出
导出挂载在目录中的仪表板时,仪表板中跳转的Finereport子模板会同时导出,子模板中若存在下级子模板,也同时导出,以此类推 |
| 原始Excel附件 | 若导出的资源、或导出依赖的资源,存在「Excel数据集」。 勾选「原始Excel附件」,则会将原始Excel附件一起导出,这样在后续的导入中不需要再重新上传Excel文件。 注:若导出的数据表与正式系统相同位置的表名称一样,将覆盖掉正式系统中的数据表,因此此处需确认好再进行导出导入操作。 |
| 公共链接的设置项 | 若导出的资源存在「仪表板」,可勾选「公共链接的设置项」,将仪表板的公共链接设置一起导出。
无论是覆盖导入还是新增导入,按照导入的仪表板的公共链接设置为准
覆盖导入时,原来仪表板设置的公共链接不被覆盖 新增导入时,导入的仪表板默认不开启公共链接 |
| 定时更新任务 | 若导出的资源、或导出依赖的数据集,存在「定时更新任务」。 勾选「定时更新任务」,则会将数据集的定时更新任务一起导出。定时更新任务导出该资源项自身的更新任务,不导出父节点上的更新任务。
无论是覆盖导入还是新增导入,按照导入的数据集的定时更新任务为准。
覆盖导入时,原来数据集设置的更新任务不被覆盖 新增导入时,导入的数据集不带有更新任务 |
| 同时导出权限配置 | 规则: 勾选「同时导出权限配置」,可导出资源的权限配置。 权限配置包括:使用权限(查看、编辑、授权等)、行列权限。 仅导出该资源项自身设置的权限,不导出由父节点继承而来的权限。 文件夹、主题、仪表板、数据集等资源导出权限时,均不导出继承而来的权限。 举例: 文件夹X中有一个数据集A,文件夹和数据集上面都配置了使用权限。
|
3.5 导出的文件
导出后会生成 resources.zip 文件,如下图所示:

4. 资源导入前准备
4.1 导入前须知
FineBI7.0工程,仅支持导入FineBI7.0工程的资源,不支持导入FineReport工程的资源。
4.2 确认创建了模型
如果导入的资源中包含指标中心相关内容,必须在目标工程中进入一次模型,确保指标中心存在一个模型。

4.3 确认插件和驱动
1)若数据连接需依赖第三方插件,目前只支持迁移 JSON 数据集和 Mysql8 数据连接,其他插件类型不适配,会导入失败。
2)权限导出插件生成的服务器数据集,不支持迁移,会导入失败。
3)数据连接迁移只迁移配置。驱动jar包、kerberos认证文件、JNDI 配置文件等都不会迁移,需要手动配置/放置。
请在进行数据连接迁移前,确认正式工程下是否提前安装依赖的相关数据连接插件,否则将导致导入失败。
请在进行数据连接迁移前,确认正式工程下是否提前安装依赖的相关数据连接驱动,否则将导致导入的数据连接不可使用。
4.4 确认数据连接
若导出的目录、我的分析、公共数据依赖数据连接,请确保同时选中相关数据连接资源进行导出导入。否则请在资源迁移导入前,保证正式系统已创建好了数据连接,且该数据连接名需与测试系统一致,否则资源无法迁移成功。
若迁移的是服务器数据集创建的仪表板,则在迁移前需要保证正式系统上创建好相同名称的服务器数据集。
服务器数据集若依赖相关数据连接,请确认将相关数据连接导入正式工程,否则导入的服务器数据集无法使用。
4.5 确认用户
1)用户
在资源导入时,系统中必须有资源包的资源所有者。
比如测试系统中数据表的创建者是Anna,那么在正式系统中也必须有一个用户叫Anna。否则导入时需要修改资源的所有者。
2)用户类型
在资源迁移过程中,需要BI数据表的创建者的用户类型保持一致。
比如测试系统中数据表创建者为「分析用户」,那么在正式系统中也需要将其添加到「分析用户」中。
4.6 迁移自定义地图
若模板中调用了自定义地图,需要将地图 json 文件拷贝到正式工程下。
在%FineBI%/webroot/WEB-INF/assets/map/image路径下,将需要迁移的 json 文件拷贝到正式工程对应路径下,如下图所示:
4.7 系统备份
资源导入前建议对测试系统和正式系统均进行 系统备份,如下图所示:
5. 资源导入
5.1 上传文件
管理员登录 FineBI 系统,选择「管理系统>智能运维>资源迁移>资源导入」,点击「上传文件」,如下图所示:
注1:资源导入前建议进行 系统备份,其中备份迁移到的 MySQL 数据库需要选择 utf8_bin 的排序规则。
注2:单次只允许上传单个压缩文件。
注3:单次资源导入内容不可超出2GB,否则在导入资源时会报错:out of memoryerror。请少量多次分配导出和导入资源。

上传文件时,系统会自动获取当前可用的空闲内存大小,当上传文件大小 <(当前可用的空闲内存大小-256MB)时,允许上传文件,当上传的文件大小 >(当前可用的空闲内存大小-256MB)时,触发限制,报错「当前剩余内存 xxxMB,文件大小 xxxMB,为防止内存溢出,不允许上传」,如下图所示:

上传文件成功后,系统会获取导入文件所包含的资源,包含资源类型、资源名称、资源所有者、资源路径、导入方式和资源信息对比。

| 设置 | 说明 |
|---|---|
| 资源类型 | 类型包括:目录、服务器数据集、数据连接、仪表板、组件、数据集 |
| 资源名称 | 资源名称为各种资源的名称 |
| 资源所有者 | 资源类型为「目录、服务器数据集、数据连接」时,资源所有者为空 资源类型为「仪表板、组件、数据集」时,资源所有者即资源的创建者 资源的创建者 |
| 路径 | 资源类型为「目录、服务器数据集、数据连接」时,路径为空 资源类型为「仪表板、组件、数据集」时,路径为资源在公共数据/用户的分析下的存放路径 |
| 导入方式 | 在导入时,系统会对资源进行检测,检测是否与系统现有资源有冲突 根据冲突类型分配不同的导入方式,分为:新增导入、覆盖导入和不允许导入
|
| 资源信息对比 | 当导入方式为「覆盖导入」时,点击每一项后面的黄色按钮,可查看导入的资源信息与原有的资源信息对比,查看是否一致。 如下图所示:
|
注1:在导入资源时,若该路径下存在转义名相同的资源,会自动对导入的资源的转义名进行修改,变为「转义名1」。
注2:不支持空文件夹导入。
注3:资源不允许导入时,资源所有者显示为「未知用户」,可点击修改资源所有者为系统中的其他用户,点击「确定」生效。
如果资源是公共数据中的数据集,修改资源所有者仅会改变该资源的所有者用户ID。
如果资源是我的分析中的主题,修改资源所有者,会将该主题的路径调整为对应用户的分析下的路径,并刷新用户ID。

5.2 导入文件
勾选需要上传的资源,点击「导入」,点击「确定」。如下图所示:

若导入失败,显示失败的原因(如:导出工程和导入工程中存在同名同路径但是类型不同);若导入成功,则资源即时生效。如下图所示:

注:由于对应的环境配置不同 IP 端口号会改变,资源迁移后的仪表板公共链接需要重新进行链接分享。
5.3 数据更新
若迁入的基础表资源为「抽取数据」,导入到新的系统中需要手动进行 数据更新 ,或者直接进行 全局更新 。
更新后才能看到导入的数据表均正常显示,如下图所示:
注:若导入数据表为 Excel 数据集或者以 Excel 数据集为基础表制作的数据集,则必须进行文件夹更新或者全局更新。
若导入的数据表为数据库表或者 SQL 数据集,则可以对导入的表进行单表更新。

