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 id, 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 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数据集创建的时间控件。