1. 概述
1.1 版本
FineBI服务器版本 | 功能变更 |
---|---|
6.0 | - |
6.0.17 | 新增驱动加载顺序配置项 |
1.2 应用场景
在连接 FineBI 和数据库时,可能会因为产品未内置对应版本的数据库驱动而连接失败。
1.3 功能简介
用户可使用「驱动管理」功能,上传对应的驱动。「驱动管理」使用的是热加载,上传驱动后不需要重启 FineReport 即可直接使用驱动 。
当遇到一些驱动导致的问题后,可以快速修改驱动加载方式从而能够实现快速的连接。默认选优先加载当前上传驱动,如下图所示:
优先加载当前方式上传驱动:先加载驱动管理的 jar:WEB-INF/drivers/hive/**.jar,若无对应文件则加载应用的 jar:WEB-INF/lib/**.jar。
仅加载当前方式上传驱动:仅加载驱动管理的 jar:WEB-INF/drivers/hive/**.jar。
2. 前提条件
由于大部分用户对工程安全性要求很高,FineBI 默认禁止通过驱动管理上传驱动。
因此使用驱动管理前,需要将储存 FineBI 信息的 FineDB 数据库的 fine_conf_entity 表中字段 SystemConfig.driverUpload 设置为 true
更改参数值为 true :允许通过驱动管理上传驱动
更改参数值为 false:(默认状态下参数值为false)禁止通过驱动管理上传驱动。上传时会报错:不允许上传驱动jar包,可以修改SystemConfig.driverUpload配置值开启该功能。
2.1 新建数据连接
管理员登录 FineBI 系统,点击「管理系统>系统管理>常规」。
若外接数据库显示「待配置」,则 finedb 数据库信息可参见 FineDB 数据库简介。
若外接数据库显示「已配置」,点击即可查看外接 finedb 数据库的信息。
新建一个数据连接,数据连接名称为 FineDB,数据库相关配置信息可根据上文获取。
注:数据连接名称不可修改,否则下面的模板可能无法使用。
2.2 目录挂载模板
1)点击下载模板:finedb字段修改.cpt
2)将模板上传到工程 webapps\webroot\WEB-INF\reportlets 目录下。
3)在「目录管理」中,添加该模板,类型选择「填报」,展示终端无需勾选(勾选可能会导致其他非管理用户看到)
「填报预览」指在 Web 端预览用来填报数据的模板,一般在只需要录入修改数据的时候使用,也可用来查看数据。
2.3 填报修改字段
1)在「管理系统>目录管理」中,预览该模板,如下图所示:
2)修改 SystemConfig.driverUpload 字段
如果填报页面上存在字段 SystemConfig.driverUpload,确认字段值为 true,修改完成。
如果填报页面数据为空,说明 SystemConfig.driverUpload 字段不存在。新增该字段,设置字段值为 true。点击「提交」。如下图所示:
2.4 重启工程
填报提交成功后,重启工程。重启步骤请参见:关闭或重启FineBI工程 。
重启后再次登录 FineBI 系统,即可通过「驱动管理」上传驱动。
3. 操作步骤
3.1 上传数据库驱动
1)管理员登录 FineBI 系统,点击「管理系统>数据连接管理>驱动管理」,如下图所示:
2)点击「新建驱动」,输入名称方便之后与其他驱动区分。这里我们要上传 PostgreSQL 的驱动,可以命名为「postgresql驱动」,如下图所示:
3)点击「上传驱动」,将数据库驱动上传上去。如下图所示:
注:数据库驱动可以在对应数据库的帮助文档下载,也可以让数据库管理员提供。
4)点击下拉按钮,选择一个刚刚上传的驱动,点击「保存」,如下图所示:
注1:若有多个驱动 jar 包,不清楚选择哪个驱动,可以咨询对应的数据库管理员。
注2:上传的驱动位于 %FineBI%\webapps\webroot\WEB-INF\drivers 下。
3.2 使用驱动
1)在「数据连接管理」界面点击「新建数据连接」,新建一个 PostgreSQL 数据连接,如下图所示:
2)驱动选择「自定义」,在后方下拉选择刚刚上传的 postgresql 驱动 ,并填入其他连接信息,详细请参见 Postgresql数据连接 。如下图所示:
3)点击测试连接,可以看到数据库可以成功连接,如下图所示:
3.3 删除驱动
若要删除某个已存在的数据库驱动,可进入驱动管理界面直接点击删除按钮,如下图所示:
4. 历史版本
5.1.19 及之前版本,无驱动管理功能,用户如需上传驱动,可通过手动上传的方法。
将下载好的驱动包拷贝到 %BI_HOME%\webapps\webroot\WEB-INF\lib 路径下,重启 BI 服务器后驱动生效。如下图所示:
注:若重启后驱动不生效,可能是由于在该目录下存在该驱动的其他版本,需要手动删除其他版本,以防冲突。