FineBI是帆软软件有限公司推出的一款商业智能(Business Intelligence)产品。FineBI自助分析以业务需求为方向,通过便捷的数据处理和管控,提供自由的探索分析。本文为您介绍FineBI如何连接Hologres进行可视化分析。
连接Hologres
-
安装FineBI。
安装FineBI,详细步骤请参见 FineBI官方文档 。
-
安装JDBC驱动。
请前往PostgreSQL官网 下载JDBC驱动 。
说明-
请您下载并使用42.2.18以上版本的JDBC驱动。
-
您需要将下载的PostgreSQL的JDBC驱动包放置于 <FineBI安装目录>\webapps\webroot\WEB-INF\lib 目录下,并重启FineBI。
-
-
连接Hologres。
-
使用管理员账号登录FineBI,选择 。
-
单击 新建数据连接 ,在 所有 页签下选择 Hologres 。
说明如您的FineBI版本低于5.1.14,也可以使用PostgreSQL数据源连接Hologres。
-
在 Hologres 页面配置连接信息。
具体参数说明如下:
参数
说明
数据连接名称
您可以输入数据连接的名称。如Hologres。
驱动
驱动选择
org.postgresql.Driver
。数据库名称
Hologres的数据库名称。
主机
Hologres实例的公共网络地址。您可以进入 Hologres管理控制台 的实例详情页,从 网络信息 区域获取网络地址。
端口
Hologres的实例端口。您可以进入 Hologres管理控制台 的实例详情页,从 网络信息 区域获取实例端口。
用户名
当前阿里云账号的AccessKey ID。获取方式请参见 创建访问密钥 。
密码
当前阿里云账号的AccessKey Secret。获取方式请参见 创建访问密钥 。
数据连接URL
数据连接URL,填写格式为
jdbc:postgresql://<host>:<port>/<databasename>
,其中各参数解释如下所示:-
host:主机,Hologres实例的公共网络地址。
-
port:端口,Hologres实例的端口。
-
databasename:数据库名称,Hologres创建的数据库名称。
高级设置
该示例不涉及高级设置。如业务涉及配置,更多内容请参见 FineBI官方文档 。
-
-
配置完以上参数,在页面中单击 点击连接数据库 ,读取模式列表并从下拉列表中选择您需要使用的Schema。
-
单击页面右上角的 测试连接 ,如果提示 连接成功 表示FineBI能够正常连接Hologres数据库。
-
单击页面右上角的 保存 ,完成数据连接的配置。
-
-
添加数据表。
-
在左侧导航栏单击 数据准备 ,进入数据列表页。
-
单击进入目标业务包详情页,单击 添加表 。
-
您可以使用数据库表、SQL数据集等方式从Hologres中加载数据,此处以数据库表为例获取数据表信息。单击 数据库表 进入数据库选表页面,可以选择已创建的数据连接,右侧会列出数据连接的数据库对应Schema中的所有数据表。
-
选择需要加载的数据表,单击页面右上角的 确定 ,FineBI即会加载选中的数据表,已添加的表灰化不可选择。
-
加载完成后,您可以在目标业务包的数据列表中选择具体的数据表,进行数据准备的相关操作。
-
-
数据分析。
当您完成数据表的加载操作后,您可以利用这些数据表进行数据可视化相关操作,更多操作指导请参见 FineBI官方文档 。
时间筛选控件最佳实践
在Hologres创建表时,我们可以设置Segment_key(别名event_time_column)属性,对时间类型过滤条件进行索引优化,防止全表扫描,能够加速查询。Hologres默认把表中第一个时间戳类型作为Segment_key。
您可以通过创建带参数的SQL数据集,当您的SQL的执行计划中有 Segment Filter 关键字出现时,即表示Segment_key已经生效,您可以使用带参数的SQL数据集创建的时间控件。
创建带参数的SQL数据集具体步骤如下:
-
登录FineBI,在左侧导航栏单击 数据准备 ,进入数据列表页。
-
单击进入目标业务包详情页,单击 添加表 ,选择 SQL数据集 。
说明-
FineBI支持带参数的数据集,详细的功能介绍,请参见 FineBI官方文档 。
-
您可以根据文档描述的带参数的SQL数据集功能,使用参数来设置日期控件。
-
-
在 表名 处填写表名,并在SQL语句模块填写如下SQL。单击 刷新 ,系统可自动识别参数,您可以手动选择参数类型,单击页面右上角的 确定 保存数据集。
SELECT log_timestamp from test_bi_timestamp where log_timestamp <='${time}'::timestamp;
-
在仪表盘中选择 日期 控件,选中 绑定参数 ,从列表中选择 time 后单击 确定 。
-
在页面设置日期并进行过滤。
-
设置完成后,您可以通过日志查看执行的SQL。查看日志具体操作,请参见 FineBI官方文档 。
生成的SQL如下所示:
select "T_13E5C8"."id" as "id", "T_13E5C8"."log_timestamp" as "log_timestamp" from ( select log_timestamp from test_bi_timestamp where log_timestamp <='2021-05-08'::timestamp ) as "T_13E5C8" limit 5000;
生成的执行计划具体如下:
Limit (cost=0.00..0.15 rows=1000 width=16) -> Gather Motion (cost=0.00..0.14 rows=1000 width=16) -> Limit (cost=0.00..0.10 rows=1000 width=16) -> Parallelism (Gather Exchange) (cost=0.00..0.10 rows=1000 width=16) -> DecodeNode (cost=0.00..0.10 rows=1000 width=16) -> Limit (cost=0.00..0.10 rows=1000 width=16) -> Index Scan using holo_index:[1] on test_bi_timestamp (cost=0.00..1.00 rows=1000 width=16) Segment Filter: (log_timestamp <= '2021-05-08 00:00:00+08'::timestamp with time zone) Optimizer: HQO version 0.8.0 (9 行记录)
当您SQL的执行计划中有 Segment Filter 关键字出现时,即表示Segment_key已经生效,您可以使用带参数的SQL数据集创建的时间控件。