FineBI是帆软软件有限公司推出的一款商业智能(Business Intelligence)产品。FineBI自助分析以业务需求为方向,通过便捷的数据处理和管控,提供自由的探索分析。本文为您介绍FineBI如何连接Hologres进行可视化分析。

连接Hologres

  1. 安装FineBI。
    安装FineBI,详细步骤请参见FineBI官方文档
  2. 安装JDBC驱动。
    请前往PostgreSQL官网下载JDBC驱动
    说明
    • 请您下载并使用42.2.18以上版本的JDBC驱动。
    • 您需要将下载的PostgreSQL的JDBC驱动包放置于<FineBI安装目录>\webapps\webroot\WEB-INF\lib目录下,并重启FineBI。
  3. 连接Hologres。
    1. 使用管理员账号登录FineBI,选择管理系统 > 数据连接 > 数据连接管理
    2. 单击新建数据连接,在所有页签下选择Hologres
      说明 如您的FineBI版本低于5.1.14,也可以使用PostgreSQL数据源连接Hologres。
      finbi截图
    3. 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官方文档
    4. 配置完以上参数,在页面中单击点击连接数据库,读取模式列表并从下拉列表中选择您需要使用的Schema。选择Schema
    5. 单击页面右上角的测试连接,如果提示连接成功表示FineBI能够正常连接Hologres数据库。
    6. 单击页面右上角的保存,完成数据连接的配置。
  4. 添加数据表。
    1. 在左侧导航栏单击数据准备,进入数据列表页。
    2. 单击进入目标业务包详情页,单击添加表添加表
    3. 您可以使用数据库表、SQL数据集等方式从Hologres中加载数据,此处以数据库表为例获取数据表信息。单击数据库表进入数据库选表页面,可以选择已创建的数据连接,右侧会列出数据连接的数据库对应Schema中的所有数据表。数据库表
    4. 选择需要加载的数据表,单击页面右上角的确定,FineBI即会加载选中的数据表,已添加的表灰化不可选择。
    5. 加载完成后,您可以在目标业务包的数据列表中选择具体的数据表,进行数据准备的相关操作。加载数据
  5. 数据分析。
    当您完成数据表的加载操作后,您可以利用这些数据表进行数据可视化相关操作,更多操作指导请参见FineBI官方文档

时间筛选控件最佳实践

在Hologres创建表时,我们可以设置Segment_key(别名event_time_column)属性,对时间类型过滤条件进行索引优化,防止全表扫描,能够加速查询。Hologres默认把表中第一个时间戳类型作为Segment_key。

您可以通过创建带参数的SQL数据集,当您的SQL的执行计划中有Segment Filter关键字出现时,即表示Segment_key已经生效,您可以使用带参数的SQL数据集创建的时间控件。验证生效

创建带参数的SQL数据集具体步骤如下:

  1. 登录FineBI,在左侧导航栏单击数据准备,进入数据列表页。
  2. 单击进入目标业务包详情页,单击添加表,选择SQL数据集添加表
    说明
    • FineBI支持带参数的数据集,详细的功能介绍,请参见FineBI官方文档
    • 您可以根据文档描述的带参数的SQL数据集功能,使用参数来设置日期控件。
  3. 表名处填写表名,并在SQL语句模块填写如下SQL。单击刷新,系统可自动识别参数,您可以手动选择参数类型,单击页面右上角的确定保存数据集。数据准备
    SELECT 
      id,
      log_timestamp 
    from test_bi_timestamp 
    where log_timestamp <='${time}'::timestamp;
  4. 在仪表盘中选择日期控件,选中绑定参数,从列表中选择time后单击确定绑定参数
  5. 在页面设置日期并进行过滤。设置日期并过滤
  6. 设置完成后,您可以通过日志查看执行的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数据集创建的时间控件。