1. 概述
注:仅适用于 5.1.18 及之前的版本,5.1.19 之后开始使用 驱动管理 管理驱动,不会出现驱动冲突情况。
1.1 版本
FineBI 版本 | JAR 包版本 | 新增功能 |
---|---|---|
5.1 | 2020-01-15 | - |
5.1.7 | 2020-11-03 | 新增 ClickHouse 插件 |
5.1.14 | - | 插件隔离支持kerberos认证 |
Hive 隔离插件更新,见 2.1 节 |
1.2 应用场景
在创建数据连接时,可能会出现放置的新驱动 JAR 包和 FineBI 自带的 JAR 包,或者和其他驱动 JAR 包有冲突的问题(例如 Hive 的 Hadoop 的套件冲突或者 Hive 和星环数据库的 JAR 包冲突),为此 FineBI 提供驱动隔离插件来隔离相关的驱动,以保证数据库顺利连接。
1.3 功能介绍
驱动隔离插件是保证类加载器加载 JAR 的时候,分开加载数据库驱动 JAR 和 BI 自身需要的 JAR,避免它们之间出现冲突。
而FineReport 设计器 远程连接 BI 时,是通过 FineReport 直接去添加表建立服务器数据集,所以不需要使用本章介绍的 BI 驱动隔离插件。
注:若 BI 为 5.1.1 版本,请使用 5.1.1 版本驱动隔离插件
2. 操作步骤
以 Hive 数据库为例,讲解如何使用驱动隔离插件连接 FineBI 。
2.1 安装驱动隔离插件
在下表中下载安装 Hive 的驱动隔离插件。插件安装方法请参见:插件管理
数据库名 | 驱动隔离插件 |
Hive | |
TRANSWARP INCEPTOR (星环) | |
SPARK | |
MySQL | |
Apache Impala | |
Oracle | |
Presto | |
ClickHouse | |
MaxCompute | |
Apache Phoenix | |
APACHE KYLIN | |
Hbase |
2.2 添加数据库驱动文件
1)到对应文档里面,下载数据库对应的驱动文件。
数据库 | 新建的文件夹名字 | 下载对应驱动 (2.1 节配置信息中) |
---|---|---|
Hive | hivedriverlib | Hadoop Hive数据连接 |
TRANSWARP INCEPTOR (星环) | transwarpdriverlib | TRANSWARP INCEPTOR数据连接 |
SPARK | sparkdriverlib | SPARK数据连接 |
MySQL | mysqldriverlib | MySQL数据连接 |
Apache Impala | impaladriverlib | Apache Impala数据连接 |
Oracle | oracledriverlib | Oracle 数据连接 |
Presto | prestodriverlib | Presto数据连接 |
ClickHouse | clickhousedriverlib | ClickHouse 数据连接 |
MaxCompute | maxcomputedriverlib | 阿里云MaxCompute数据连接 |
Apache Phoenix | phoenixdriverlib | Apache Phoenix数据连接 |
APACHE KYLIN | kylindriverlib | APACHE KYLIN数据连接 |
Hbase | hbasedriverlib | Hbase数据连接 |
2)在 FineBI 路径%FineBI%/webapps/webroot/WEB-INF下,建立一个新的文件夹,文件夹命名参考上表。
3)将下载的数据库驱动 JAR 包放入文件夹中,如下图所示:
「Hive 数据库、TRANSWARP INCEPTOR 数据库、SPARK数据库」除了要放入驱动 JAR 包,还需要放入两个jar包:
slf4j-log4j12-1.7.10.jar、slf4j-api-1.7.10.jar
3)重启 FineBI 。
2.3 建立数据连接
完成 2.1、2.2 节后,返回对应的数据连接文档,正常连接数据库即可。连接数据库的步骤请参见:配置数据连接
3. 注意事项
3.1 隔离插件支持条件
1)5.1.14 之前版本,使用隔离插件后不支持 kerberos 认证;5.1.14 及之后版本,隔离插件支持 kerberos 认证。
2)隔离插件细分不同的数据连接,即使底层使用了同样的数据库也会区分不同的名字。例如:SPARK,Hive 和 TRANSWARP INCEPTOR (星环)数据库的底层都是 Hive 数据库,但使用的插件是不同的,放置 JAR 包的文件夹名称也应该区别。
3)由于隔离的文件夹名不同,所以安装多个插件后,对应驱动均可以隔离。
3.2 兼容问题
1)若 2019-05-15 之后的 5.1 版本升级至 2020-01-15 版本的 5.1 ,原 驱动隔离插件 插件不兼容,需要把旧的插件删除后,再安装新的驱动隔离插件,重新按照文档使用方法进行配置。
3.3 数据连接不支持多kerberos认证
因为 kerberos 认证是全局认证,全局认证是无法支持同时连多个 kerberos 认证的。
例如,hive 的 princal 为 a , impala 的 princal 为 b ,这种情况下只能连接一个。简而言之就是,kerberos连接时会设置 java.security.krb5.conf 系统参数。
在 5.1.14 版本之前的驱动隔离插件不能用于 kerberos 认证,因此如果当几个 kerberos 认证的数据库都使用一份 kerberos 信息(使用一份 krb5.conf ,一份 keytab) ,此时使用的是同一个kerberos认证。
理论上是可以支持的,但是不同的数据库驱动往往会有冲突,比如 impala 和 hive 的驱动冲突,此时也是不支持同时连接 impala 和 hive 的。