1. 概述
1.1 版本
| FineBI 版本 | 功能变动 |
|---|---|
| 6.0 | - |
| 7.0.11 | 「连接池设置」中新增「初始化SQL」设置项,可配置初始化 SQL 语句 |
1.2 应用场景
本文将介绍如何连接 Apache Impala 数据源。
注:Impala里存在多个数据库,一个数据连接只能连接一个数据库,不支持单个数据连接连接多个数据库。
2. 准备工作
2.1 版本和驱动
下载驱动,并将其上传至 FineBI,如何上传可参见:驱动管理 2.1 节
| 支持的数据库版本 | 驱动包链接 |
|---|---|
Impala 2.2 Impala 2.3 Impala 2.8 Impala 2.9 Impala 2.10 | ImpalaJDBC41.zip (用于仅加载当前方式上传驱动) ImpalaJDBC41.zip(用于优先加载当前方 式上传驱动) |
| Impala 2.10 kudu1.5 |
ClouderaImpalaJDBC41_2.5.43.rar |
在上传ImpalaJBDC41驱动时,如果选择优先加载当前方式上传驱动,那么需要删除ImpalaJBDC41驱动包中slf4j-api-1.7.36.jar文件;如果选择仅加载当前方式上传驱动,则保留ImpalaJBDC41驱动包中slf4j-api-1.7.36.jar文件。如下图所示:


2.2 收集连接信息
在连接数据库之前,请收集以下信息:
数据库所在服务器的 IP 地址和端口号;
数据库的名称;
若是用户名密码认证,需要收集用户名和密码;若是 Kerberos 认证,需要收集客户端 principal 和 keytab 密钥路径;
3. 具体连接步骤
1)以管理员身份登录 FineBI ,点击「管理系统>数据连接>数据连接管理>新建」,点击「数据连接」,如下图所示:
注:如果非管理员用户想要配置数据连接,需要管理员给其分配管理系统下数据连接节点的权限,具体操作请查看 数据连接权限

2)选择 APACHE IMPALA 图标,如下图所示:

3)驱动切换为「自定义」选择 2.1 节上传的驱动,然后输入 2.2 节的连接信息。若用户需要在直连版本下使用该数据连接,需要在 URL 后增加后缀参数 ;UseNativeQuery=1 ,如下图所示:
Kerberos 认证方式详情可参见:数据连接 kerberos 认证

各设置项说明如下表所示:
| 设置项 | 说明 | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 认证相关说明 | 若 Impala 数据库存在认证,则需要在 URL 后加入AuthMech参数,不同参数值代表了不同的认证,如下表所示: 注:若数据库没有用户名密码时不需要加该参数。
URL 格式为:jdbc:impala://ip:port/dbname;authmech=n( n 可以等于 0、1、2、3 分别代表上面的认证方式)
若数据库的认证方式为 Kerberos 认证,除了要加 AuthMech 参数,需填入注册过 kdc 的客户端名称、keytab 密钥路径和 Kerberos 认证对应 URL(加上AuthMech、KrbHostFQDN、KrbServiceName 三个参数)
URL 格式为:jdbc:impala://ip:port/default;AuthMech=1;KrbHostFQDN=hostalias;KrbServiceName=impala 例如:jdbc:impala://192.168.5.127:21050/default;AuthMech=1;KrbHostFQDN=quickstart.cloudera;KrbServiceName=impala,具体请参见 [平台]数据连接Kerberos认证 | ||||||||||||||||||||||
| 初始化SQL | 7.0.11 及之后版本,新增该设置项,可配置初始化 SQL 语句;详情请参见:配置数据连接入门 | ||||||||||||||||||||||
| Kudu 地址 | 若写入到 Apache Impala 数据库,需要配置该设置项 指定 Kudu 的 Master 地址,格式为 hostname:port,如果有多个 Master,用逗号隔开 注:Kudu 地址里不能配置 IP,要配置 hostname 才可以正常连接。 在配置 Kudu 地址前,需要在 FineReport 所在服务器的系统 hosts 文件里,为所有 Kudu 服务器配置 hostname 和 IP 的对应关系。
注:如果是运维平台部署的FineDataLink,host 设置是通过运维平台的开发者模式进行配置,详情参见:host设置 文件里的映射配置示例: 配置数据连接,填写 host 映射后的内容:
|
4)点击「测试连接」,若连接成功则点击「保存」,如下图所示:

4. 添加数据库的表至 FineBI
5. 注意事项
5.1 数据库注意点
连接 Apache Impala 数据库时,FineBI 在数据查询的时候忽略大小写,字段查询结果都为小写。
impala 不支持 date 类型,支持 timestamp。
impala 不支持多个 distinct count,多个去重记录数预览 SQL 会报错。
5.2 版本升级后连接失败
问题描述:
升级后连接失败并报错:Error initialized or created transport for authentication: java.io.IOException,如下图所示:

原因分析:
升级后,Jass 代码内置造出的 .ini 文件会丢失掉,导致连接失败。
升级后
解决方案:
将 Kerberos 认证的方式更改为第二种,详情可参见:Kerberos 认证方式二
