Quick BI

Quick BI为您提供海量数据的实时在线分析服务以及丰富的可视化效果,您可以通过拖拽式操作或SQL语句方式,轻松地完成数据分析、业务数据探查及报表制作。本文为您介绍如何使用实时数仓Hologres连接Quick BI,并进行可视化分析。

前提条件

背景信息

Hologres与Quick BI高效连通,支持通过Hologres数据源直接连接Quick BI,将Hologres高效查询的数据直接进行可视化分析。

说明

当前Quick BI高级版和专业版支持Hologres数据源,其余版本请使用PostgreSQL数据源,更多关于PostgreSQL数据源的操作请参见阿里云数据源PostgreSQL

本文以高级版Quick BI为例,为您演示连接Hologres并进行可视化分析的相关操作。

使用限制

  • Quick BI当前仅支持使用公共网络和经典网络连接Hologres,不支持使用VPC网络连接Hologres。

  • 您无需在Hologres中配置白名单即可连接至Quick BI。

  • Hologres连接Quick BI时,您需要根据Quick BI的版本选择相应的数据源,推荐使用Hologres数据源。

  • Quick BI当前仅支持在使用公网或者指定VPC网络时,进行白名单限制。

使用Quick BI进行可视化分析

  1. 登录Quick BI管理控制台

  2. 添加数据源。

    1. 在Quick BI管理控制台页面,单击顶部菜单栏的工作空间

    2. 工作空间页面左侧导航栏,单击数据源

    3. 数据源页面,单击右上角的新建数据源

    4. 选择目标数据源并配置相应参数。

      1. 选择Alibaba Hologres数据源。Alibaba Hologres

      2. 配置添加Hologres数据源的各项参数。配置连接

        • 参数配置(使用指定VPC网络连接Hologres)。

          参数名称

          描述

          说明

          显示名称

          按照您的需求填写,用于分辨数据源使用。

          数据库地址

          Hologres实例的指定VPC网络域名。

          您可以登录管理控制台,进入实例详情页,从网络信息域名列获取指定VPC的域名。

          说明

          此处不包含端口,例如:hgpostcn-cn-nwy364b5v009-cn-shanghai-vpc-st.hologres.aliyuncs.com

          端口

          Hologres实例的指定VPC网络端口。

          您可以登录管理控制台,进入实例详情页,从网络信息域名列获取指定VPC的域名的端口。

          数据库

          连接的Hologres实例的数据库名称。

          您可以登录管理控制台,进入实例详情页,从数据库管理页面获取。

          Schema

          默认为public Schema。

          您可以使用新创建的Schema,在数据源配置了Schema后,列表中会展示当前Schema下所有的表。但是在使用即席SQL时,还需要在表名称前手动添加对应的Schema名(即schema.table),才能正确索引到Schema下面的表。

          用户名

          当前账号的AccessKey ID。

          您可以单击AccessKey 管理,获取AccessKey ID。

          密码

          当前账号的AccessKey Secret。

          您可以单击AccessKey 管理,获取AccessKey Secret。

          VPC数据源开关

          需要勾选该开关

          购买者accessId

          购买实例用户的AccessKey ID。

          购买者accessKey

          购买实例用户的AccessKey Secret。

          实例id

          Hologres实例ID

          区域

          Hologres实例所在的地域。

        • 参数配置(使用公网连接Hologres)。

          参数名称

          描述

          说明

          显示名称

          按照您的需求填写,用于分辨数据源使用。

          数据库地址

          Hologres实例的公网网络域名。

          您可以登录管理控制台,进入实例详情页,从网络信息域名列获取公网的域名。

          说明

          此处不包含端口。

          端口

          Hologres实例的公网网络端口。

          您可以登录管理控制台,进入实例详情页,从网络信息域名列获取公网域名的端口。

          数据库

          连接的Hologres实例的数据库名称。

          您可以登录管理控制台,进入实例详情页,从DB管理页面获取。

          Schema

          默认为public Schema。

          您可以使用新创建的Schema,在数据源配置了Schema后,列表中会展示当前Schema下所有的表。但是在使用即席SQL时,还需要在表名称前手动添加对应的Schema名(即schema.table),才能正确索引到Schema下面的表。

          用户名

          当前账号的AccessKey ID。

          您可以单击AccessKey 管理,获取AccessKey ID。

          密码

          当前账号的AccessKey Secret。

          您可以单击AccessKey 管理,获取AccessKey Secret。

          VPC数据源开关

          需要关闭该开关

        • 参数配置(使用经典网络连接Hologres)。

          参数名称

          描述

          说明

          显示名称

          按照您的需求填写,用于分辨数据源使用。

          数据库地址

          Hologres实例的经典网络域名。

          您可以登录管理控制台,进入实例详情页,从网络信息域名列获取经典网络的域名。

          说明

          此处不包含端口,例如:hgpostcn-cn-nwy364b5v009-cn-shanghai-vpc.hologres.aliyuncs.com

          端口

          Hologres实例的经典网络端口。

          您可以登录管理控制台,进入实例详情页,从网络信息域名列获取经典网络域名的端口。

          数据库

          连接的Hologres实例的数据库名称。

          您可以登录管理控制台,进入实例详情页,从DB管理页面获取。

          Schema

          默认为public Schema。

          您可以使用新创建的Schema,在数据源配置了Schema后,列表中会展示当前Schema下所有的表。但是在使用即席SQL时,还需要在表名称前手动添加对应的Schema名(即schema.table),才能正确索引到Schema下面的表。

          用户名

          当前账号的AccessKey ID。

          您可以单击AccessKey 管理,获取AccessKey ID。

          密码

          当前账号的AccessKey Secret。

          您可以单击AccessKey 管理,获取AccessKey Secret。

          VPC数据源开关

          需要关闭该开关

    5. 参数配置完成后,您可以单击连接测试,测试Quick BI与Hologres的连接状态:

      • 如果显示数据源连通性正常,则表示Quick BI与Hologres连接成功。

      • 如果显示数据源连通性异常,请检查参数是否正确,则表示Quick BI与Hologres连接失败。请根据报错信息处理异常。

    6. 单击确定,完成配置。

  3. 可视化分析数据。

    成功连接数据源后,在数据源 > 我的数据源页面,单击已创建的数据源,显示当前数据库中的所有表。

    • 如果您希望使用界面化操作完成数据的可视化分析,则可以使用拖拽方式。

    • 如果您希望使用SQL语句完成数据的可视化分析,则可以使用即席分析SQL方式。

    两种方式的具体操作如下:

    • 拖拽方式。

      1. 单击目标表操作列的创建数据集图标,创建数据集。

      2. 配置创建数据集对话框的名称位置参数。创建数据集

      3. 单击确定

      4. 我的数据集页面,您可以单击目标数据集操作列下的图标,进行相应操作:数据集操作列描述

        • 单击编辑图标,查看当前数据集的数据。

        • 单击新建仪表盘图标,新建仪表盘,将表数据导入并生成图表,进行可视化展示。

        • 单击新建电子表格图标,新建电子表格,将目标表数据导入并生成电子表格,进行可视化展示。

        • 单击更多图标,执行更多操作。例如,数据脱敏、缓存配置及清除缓存等。

        具体功能的操作,详情请参见概述

        示例新建仪表板,在仪表板编辑页面创建堆积柱状图,并设计图表样式展示数据。

    • 即席分析SQL方式。

      1. 数据源页面,单击右上角的即席分析SQL,进入即席分析SQL页面。

      2. 您可以根据业务需求输入查询SQL语句,并单击执行示例即席查询SQL语句

      3. 获取需要查询的数据后,单击创建数据集

      4. 配置保存自定义SQL对话框的名称位置SQL参数。配置保存自定义SQL

      5. 单击确定

      成功创建数据集后,您可以在数据集中可视化分析表数据,详情请参见自定义SQL

时间筛选控件最佳实践

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

Quick BI支持高级的SQL占位符功能,您可以使用SQL占位符来设置时间控件。更多SQL占位符信息,请参见自定义SQL

  1. 设置时间筛选字段占位符。

    执行以下步骤前,需要在Hologres创建名称为LINEITEM的内部表,并且将MaxCompute公共空间MAXCOMPUTE_PUBLIC_DATA中public.odps_lineitem_10g表的数据导入到LINEITEM表中。

    1. 在Quick BI管理控制台的数据源页面,单击右上角的SQL创建数据集,进入新建代码片段对话框。

    2. 输入以下SQL语句,从LINEITEM表中取出时间戳数据。

      SELECT
          *
      FROM
        "public"."lineitem" AS AME_T_1_
      WHERE
        AME_T_1_."l_shipdate" >= TO_TIMESTAMP('${report_date.get(0)}', 'yyyy-MM-dd hh24:mi:ss')
        AND AME_T_1_."l_shipdate" <= TO_TIMESTAMP('${report_date.get(1)}', 'yyyy-MM-dd hh24:mi:ss')

    3. 单击参数设置,设置SQL占位符。

    4. 变量类型下拉列表选择“日期-年月日时分秒 > YYYY-MM-DD HH-MI-SS”。

    5. 单击确定后,单击确认编辑

    6. 仪表板编辑页面,单击新建筛选项,在查询条件设置对话框,字段选择所设置的SQL占位符。

      选择SQL占位符

    7. 仪表板编辑页面,单击查看SQL,获取到如下SQL。

      SELECT
        AME_T_1_."l_shipmode" AS T_A0_2_,
        AME_T_1_."l_shipinstruct" AS T_A1_3_,
        SUM(AME_T_1_."l_extendedprice") AS T_A2_4_
      FROM
        "public"."lineitem" AS AME_T_1_
      WHERE
        AME_T_1_."l_shipdate" >= TO_TIMESTAMP('1993-01-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss')
        AND AME_T_1_."l_shipdate" <= TO_TIMESTAMP('1998-12-31 23:59:59', 'yyyy-MM-dd hh24:mi:ss')
      GROUP BY
        AME_T_1_."l_shipmode",
        AME_T_1_."l_shipinstruct"
      LIMIT
        1000 OFFSET 0
  2. 验证Segment_key是否生效。

    您可查看SQL的执行计划中是否有Segment Filter的关键字出现以验证Segment_key是否生效。

    1. 登录Hologres管理控制台,单击左侧实例列表

    2. 实例详情页左侧导航栏,单击数据库管理

    3. DB授权页面,单击SQL编辑器

    4. SQL编辑器页面,单击左上角的新建SQL窗口

    5. 在新增的临时Query查询页面,选择已创建的实例名数据库后,请您在SQL查询的编辑框输入如下语句,单击运行

      以下SQL语句用来查看获取到SQL的执行计划,用于验证Segment_key是否生效。

      SQL执行计划

      explain SELECT
        AME_T_1_."l_shipmode" AS T_A0_2_,
        AME_T_1_."l_shipinstruct" AS T_A1_3_,
        SUM(AME_T_1_."l_extendedprice") AS T_A2_4_
      FROM
        "public"."lineitem" AS AME_T_1_
      WHERE
        AME_T_1_."l_shipdate" >= TO_TIMESTAMP('1993-01-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss')
        AND AME_T_1_."l_shipdate" <= TO_TIMESTAMP('1998-12-31 23:59:59', 'yyyy-MM-dd hh24:mi:ss')
      GROUP BY
        AME_T_1_."l_shipmode",
        AME_T_1_."l_shipinstruct"
      LIMIT
        1000 OFFSET 0
    6. 结果页签中获取执行计划,如下。

      ->  Limit  (cost=0.00..1.01 rows=1 width=24)
            ->  Partial HashAggregate  (cost=0.00..1.01 rows=1 width=24)
                  Group Key: l_shipmode, l_shipinstruct
                  ->  Redistribute Motion  (cost=0.00..1.01 rows=10 width=24)
                        ->  Result  (cost=0.00..1.01 rows=10 width=24)
                              ->  Partial HashAggregate  (cost=0.00..1.01 rows=10 width=24)
                                    Group Key: l_shipmode, l_shipinstruct
                                    ->  Parallelism (Gather Exchange)  (cost=0.00..1.01 rows=32 width=24)
                                          ->  Result  (cost=0.00..1.01 rows=32 width=24)
                                                ->  DecodeNode  (cost=0.00..1.01 rows=32 width=24)
                                                      ->  Partial HashAggregate  (cost=0.00..1.01 rows=32 width=24)
                                                            Group Key: l_shipmode, l_shipinstruct
                                                            ->  Index Scan using holo_index:[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)

      执行计划中,出现了Segment Filter,说明Segment_key已生效,您可以使用SQL占位符创建的时间控件。