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页面配置连接信息。配置以下连接参数:数据连接名称、驱动(选择
org.postgresql.Driver)、数据库名称、主机、端口、用户名、密码、编码(默认为自动)和模式(需先单击点击连接数据库以读取模式列表)。数据连接URL格式为jdbc:postgresql://hostname:port/database。具体参数说明如下:
参数
说明
数据连接名称
您可以输入数据连接的名称。如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数据集、Excel数据集或自助数据集。
-
您可以使用数据库表、SQL数据集等方式从Hologres中加载数据,此处以数据库表为例获取数据表信息。单击数据库表进入数据库选表页面,可以选择已创建的数据连接,右侧会列出数据连接的数据库对应Schema中的所有数据表。
-
选择需要加载的数据表,单击页面右上角的确定,FineBI即会加载选中的数据表,已添加的表灰化不可选择。
-
加载完成后,您可以在目标业务包的数据列表中选择具体的数据表,进行数据准备的相关操作。选中数据表后,主区域的数据预览页签显示该表的字段及数据记录,同时提供血缘分析、关联视图、更新信息、更新进度等页签用于后续数据准备操作。
-
-
数据分析。
当您完成数据表的加载操作后,您可以利用这些数据表进行数据可视化相关操作,更多操作指导请参见FineBI官方文档。
时间筛选控件最佳实践
在Hologres创建表时,我们可以设置Segment_key(别名event_time_column)属性,对时间类型过滤条件进行索引优化,防止全表扫描,能够加速查询。Hologres默认把表中第一个时间戳类型作为Segment_key。
您可以通过创建带参数的SQL数据集,当您的SQL的执行计划中有Segment Filter关键字出现时,即表示Segment_key已经生效,您可以使用带参数的SQL数据集创建的时间控件。
[1] on lineitem (cost=0.00..1.00 rows=1000 width=24)
Segment Filter:
((l_shipdate >= '1993-01-01 00:00:00+08'::timestamp with time zone) AND (l_shipdate <= '1998-
12-31 23:59:59+08'::timestamp with time zone))
Cluster Filter:
((l_shipdate >= '1993-01-01 00:00:00+08'::timestamp with time zone) AND (l_shipdate <= '1998-
12-31 23:59:59+08'::timestamp with time zone))
Optimizer: HQO version 0.10.0
创建带参数的SQL数据集具体步骤如下:
-
登录FineBI,在左侧导航栏单击数据准备,进入数据列表页。
-
单击进入目标业务包详情页,单击添加表,选择SQL数据集。
说明-
FineBI支持带参数的数据集,详细的功能介绍,请参见FineBI官方文档。
-
您可以根据文档描述的带参数的SQL数据集功能,使用参数来设置日期控件。
-
-
在表名处填写表名,并在SQL语句模块填写如下SQL。单击刷新,系统可自动识别参数,您可以手动选择参数类型,单击页面右上角的确定保存数据集。表名填写
test_bi_timestamp,SQL语句为SELECT id,log_timestamp from test_bi_timestamp where log_timestamp <='${time}'::timestamp。参数名为time,参数类型选择日期,默认值设为2021-05-08。SELECT id, log_timestamp from test_bi_timestamp where log_timestamp <='${time}'::timestamp; -
在仪表盘中选择日期控件,选中绑定参数,从列表中选择time后单击确定。
-
在页面设置日期并进行过滤。选中日期过滤组件,将日期值设置为
2021-05-08,左侧柱状图将按所选日期过滤展示对应的记录数。 -
设置完成后,您可以通过日志查看执行的SQL。查看日志具体操作,请参见FineBI官方文档。
生成的SQL如下所示:
select "T_13E5C8"."id" as "id", "T_13E5C8"."log_timestamp" as "log_timestamp" from ( select id, 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数据集创建的时间控件。