配置Fine BI通过Kyuubi连接DLI进行数据查询和分析
Fine BI是一款智能可视化工具,专注于数据分析和可视化。它支持连接多种数据源,能够将复杂的数据转换为直观的图表和仪表板,快速获得数据洞察。
Kyuubi是一个分布式 SQL 查询引擎,它提供了标准的SQL接口,使用户能够方便地访问和分析存储在大数据平台中的数据。
通过将Fine BI与Kyuubi对接,用户可以利用Kyuubi访问DLI进行数据查询和分析。这种集成简化了数据访问流程,提供了数据的统一管理和分析能力,使得用户能够更深入地洞察数据。
本节操作介绍Fine BI基于Kyuubi连接DLI,以访问和分析DLI中的数据的操作步骤。
操作流程
- 步骤1:安装并配置Kyuubi连接DLI:安装并配置Kyuubi,确保Kyuubi可以连接到DLI。
- 步骤2:Fine BI安装数据连接驱动:配置Fine BI安装数据连接驱动。
- 步骤3:配置Fine BI连接Kyuubi:在BI工具中创建一个新的数据连接,通过JDBC连接Kyuubi。
步骤1:安装并配置Kyuubi连接DLI
如需使用外网访问Kyuubi请确保弹性云服务器绑定弹性公网IP,并配置安全组入方向开启10009和3309端口。
- 安装JDK。
在安装和使用Kyuubi前,确保您的开发环境已安装JDK。
Java SDK要求使用JDK1.8或更高版本。考虑到后续版本的兼容性,推荐使用1.8版本。
- 下载JDK。
从Oracle官网下载并安装JDK1.8版本安装包。
本例使用jdk-8u261-linux-x64.tar.gz。
- 将jdk上传到linux服务器对应的目录下并执行解压命令,此处上传到/usr/local目录下。
sudo tar -xzf jdk-8u261-linux-x64.tar.gz -C /usr/local/
- 配置环境变量。
export JAVA_HOME=/usr/local/jdk-1.8.0_261 export PATH=$PATH:$JAVA_HOME/bin
- 执行以下命令应用环境变量。
source ~/.bashrc
- 执行命令java -version,检查是否安装成功,如下显示版本号信息说明java环境安装成功。
java version "1.8.0_261" Java(TM) SE Runtime Environment (build 1.8.0_261-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
- 下载JDK。
- 安装Kyuubi
- 访问Apache Kyuubi的下载Kyuubi安装包。了解更多Kyuubi安装操作。
- 解压下载的Kyuubi安装包。
tar -xzf kyuubi-{version}-bin.tar.gz
- 配置环境变量(可选):
- 配置Kyuubi连接DLI
- 在Kyuubi的根目录下添加DLI驱动。
在“DLI SDK DOWNLOAD”页面,单击Kyuubi驱动包链接,下载对应版本的驱动包。
并将该驱动放在kyuubi根目录/externals/engines/jdbc。
确保插件用户组和权限与其他Jar保持一致。
- 执行以下命令修改Kyuubi配置文件。
cd $KYUUBI_HOME/confvi kyuubi-defaults.conf
在kyuubi-defaults.conf 中追加如下配置:
kyuubi.engine.jdbc.connection.url=jdbc:mysql://xxx:xxxkyuubi.engine.jdbc.connection.user=***kyuubi.engine.jdbc.connection.password=***kyuubi.engine.jdbc.type=doriskyuubi.engine.jdbc.driver.class=com.mysql.cj.jdbc.Driverkyuubi.engine.type=jdbc
配置项说明请参考表1。
表1 kyuubi配置参数说明 配置项
说明
是否必选
示例
kyuubi.engine.type
JDBC服务类型。这里请指定为dli。
是
jdbc
kyuubi.engine.jdbc.type
引擎类型。请使用dli。
是
dli
kyuubi.engine.jdbc.driver.class
连接JDBC服务使用的驱动类名。请使用com.huawei.dli.jdbc.DliDriver
是
com.huawei.dli.jdbc.DliDriver
kyuubi.engine.jdbc.connection.url
JDBC服务连接的URL。
格式:jdbc:dli://{dliendpoint} /{projectId}
是
jdbc:dli://{dliendpoint} /{projectId}
kyuubi.engine.jdbc.session.initialize.sql
用于指定在建立JDBC会话时执行的初始化SQL语句。
否
select 1
如果在DLI的管理控制台看到select 1,代表初始化成功。
kyuubi.frontend.protocols
用于指定Kyuubi服务支持的前端协议。Kyuubi支持多种前端协议,允许用户通过不同的接口与Kyuubi进行交互。
是
- mysql
- thrift_binary
kyuubi.engine.dli.schema.show.name
用于指定当用户执行show schemas或show databases语句时,Kyuubi引擎如何展示数据源接口的模式名称。
- true:表示在展示模式名称时,包含 DLI 的名称作为前缀。
- false:表示在展示模式名称时,不包含 DLI 的名称。
例如如果配置为true,并且有一个DLI名称为 hive,那么在执行show schemas时,输出为hive.default的格式。
如果配置为false,输出为default的格式。
否
- true
- false
kyuubi.engine.dli.jdbc.connection.region
DLI的区域名称和服务名称。
是
regionname=ap-southeast-2
kyuubi.engine.dli.jdbc.connection.queue
DLI服务的队列名称。
是
dli_test
kyuubi.engine.dli.jdbc.connection.database
用于指定Kyuubi引擎通过JDBC连接到DLI数据源时默认使用的数据库名称。
是
tpch
kyuubi.engine.dli.jdbc.connection.ak
AK/SK认证密钥。
如果使用AK/SK认证方式。
是
accesskey=your-access-key
kyuubi.engine.dli.jdbc.connection.sk
DLI的区域名称和服务名称。
如果使用AK/SK认证方式时配置。
是
secretkey=your-secret-key
kyuubi.engine.dli.jdbc.connection.project
DLI资源所在的项目ID。
是
0b33ea2a7e0010802fe4c009bb05076d
kyuubi.engine.dli.sql.limit.time.sec
SQL查询的执行时间限制。
默认600s
否
300
kyuubi.engine.dli.result.line.num.limit
SQL查询的返回的最大条数。
默认返回10万条。
配置为-1代表不限制返回的条数。
是
50000
kyuubi.engine.dli.small.file.merge
配置是否开启小文件自动合并。默认为false,代表不开启。
- true:开启
- false:不开启
是
true
kyuubi.engine.dli.bi.type
用于指定BI工具类型。
支持fine/ grafana/ superset/ tableau/ power/dbt/yongHong
是
fine
kyuubi.engine.dli.boolean.type.to.int
定义DLI的Boolean类型数据是以1/0返回,还是true/false返回
当BI工具类型为Grafana时,需要设置为true。
- true:按1/0返回(1:代表true,0:fales)。
- false:按true/false返回。
默认取值false。
否
false
kyuubi.engine.dli.set.conf.transform.to.annotation
支持在SQL中设置set spark参数。
PowerBI、FineBI、SpuerSet、DBT需要设置为true。
否
true
kyuubi.engine.dli.set.conf.sql.suffix
支持在SQL中尾端设置set spark参数。
PowerBI、DBT需要设置为true。
否
true
kyuubi.engine.dli.result.cache.enable
是否开启库表数据缓存,开启后自动缓存库表信息。默认为true。
- true:开启
- false:不开启
否
true
kyuubi.engine.dli.cache.limit.line.num
配置缓存的最大条数。
默认返回10万条。
配置为-1代表不限制缓存的最大条数。
否
1000
kyuubi.engine.dli.cache.time.sec
配置缓存的时间。
默认为1800s。
否
1800
kyuubi.operation.incremental.collect
kyuubi会预加载select结果数据到缓存加快读取数据,数据量较大的场景防止内存OOM建议关闭。
否
false
配置为false代表关闭预加载。
kyuubi.engine.jdbc.memory
jdbc engine进程内存
默认为1g,建议改成5g以上加大jdbc engine进程内存使用
否
5g
- 快速启动kyuubi。
cd /bin ./kyuubi start restart
连接成功后,可以执行SQL查询来测试Kyuubi与DLI的连接是否正常工作。
- 在Kyuubi的根目录下添加DLI驱动。
- (可选)配置主机的host文件提高Kyuubi的访问效率
为了提高Kyuubi的访问效率,建议在主机的/etc/hosts 配置Kyuubi主机IP的映射关系。
- 执行ifconfig查看主机IP地址。
图2 查看主机IP地址
- 将该IP配置在/etc/host文件中。
图3 在/etc/host文件中配置IP地址
- 执行ifconfig查看主机IP地址。
步骤2:Fine BI安装数据连接驱动
- 下载并安装Fine BI
- 获取Fine BI安装包
- 找到下载的Fine BI安装程序文件。
- 双击运行安装程序。
- 按照安装向导的指示进行操作,包括接受许可协议、选择安装类型(典型安装或自定义安装)、设置安装目录等。
- 配置Fine BI集成JDBC驱动
- 下载数据驱动。获取Hive Jdbc驱动包,推荐使用v2.6.23版本。
- Fine BI集成驱动插件。
- 打开Fine BI。
- 单击“数据连接 > 数据连接管理”。
- 单击“新建驱动”,在驱动列表中选择2.a中的驱动。
图4 Fine BI安装数据连接驱动
步骤3:配置Fine BI连接Kyuubi
- 打开Fine BI。
- 单击“数据连接 > 数据连接管理”。
- 单击“添加数据源”创建一个新的数据源。
- 在数据源的向导中选择数据库类型。本例选择“Hadoop Hive”
- 配置数据库连接信息:
- 数据连接名称:用户自定义数据连接名称。
- 驱动:选择2.a中的驱动。
- 数据库名称:DLI的数据库名称。
- 主机:安装Kyuubi主机IP地址。
- 端口:访问Kyuubi主机的端口。端口默认10009
- 认证方式:本例选择密码认证方式。
- 用户名:Kyuubi数据库的访问凭证,Kyuubi用户名。
- 密码:Kyuubi数据库的访问凭证,Kyuubi访问密码。
- 数据连接URL:
jdbc:hive2://localhost:10009/databasename
本例:jdbc:hive2://100.xx.xxx.243:10009/tpch
图5 配置Hadoop Hive数据连接
常用操作:SQL作业参数设置
- 确保kyuubi的/conf/kyuubi-defaults.conf配置打开如下参数开关。
kyuubi.engine.dli.set.conf.transform.to.annotation=true
- 在sql语句的末尾添加注解参数。
set 参数 示例: set dli.sql.current.database=tpch set dli.sql.shuffle.partitions=100
图6 FineBI参数配置示例
在DLI的SQL编辑器的执行效果:Set参数会修改为注释提交到DLI侧执行。