Quick BI为您提供海量数据的实时在线分析服务以及丰富的可视化效果,您可以通过拖拽式操作或SQL语句方式,轻松地完成数据分析、业务数据探查及报表制作。本文为您介绍如何使用交互式分析Hologres连接Quick BI,并进行可视化分析。
前提条件
- 开通Hologres,详情请参见购买Hologres。
- 开通Quick BI,详情请参见Quick BI购买、升级、降级、续费、欠费。
背景信息
Hologres与Quick BI高效连通,支持通过Hologres数据源直接连接Quick BI,将Hologres高效查询的数据直接进行可视化分析。
本文以高级版Quick BI为例,为您演示连接Hologres并进行可视化分析的相关操作。
使用限制
- Quick BI当前仅支持使用公共网络和经典网络连接Hologres,不支持使用VPC网络连接Hologres。
- 您无需在Hologres中配置白名单即可连接至Quick BI。
- Hologres连接Quick BI时,您需要根据Quick BI的版本选择相应的数据源,推荐使用Hologres数据源。
使用Quick BI进行可视化分析
- 登录Quick BI管理控制台。
- 添加数据源。
- 在Quick BI管理控制台页面,单击顶部菜单栏的工作空间。
- 在工作空间页面左侧导航栏,单击数据源。
- 在数据源页面,单击右上角的+新建数据源。
- 选择目标数据源并配置相应参数。
- 选择云数据库 > Hologres。
- 配置添加Hologres数据源的各项参数。
参数说明如下表所示。
参数 描述 显示名称 自定义的显示名称。
数据库地址 连接的Hologres实例的服务器地址。
您可以登录管理控制台,进入实例详情页,从实例配置页面获取。
说明 Quick BI当前仅支持使用公共网络和经典网络连接Hologres,不支持使用VPC网络连接Hologres。端口 连接的Hologres实例的端口。
您可以登录管理控制台,进入实例详情页,从实例配置页面获取。
说明 Quick BI当前仅支持使用公共网络和经典网络连接Hologres,不支持使用VPC网络连接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数据源 不勾选。 Quick BI当前仅支持使用公共网络和经典网络连接Hologres,不支持使用VPC网络连接Hologres。
- 如果显示数据源连通性正常,则表示Quick BI与Hologres连接成功。
- 如果显示数据源连通性异常,请检查参数是否正确,则表示Quick BI与Hologres连接失败。请根据报错信息处理异常。
- 选择云数据库 > Hologres。
- 单击确定,完成配置。
- 可视化分析数据。成功连接数据源后,在数据源 > 我的数据源页面,单击已创建的数据源,显示当前数据库中的所有表。
- 如果您希望使用界面化操作完成数据的可视化分析,则可以使用拖拽方式。
- 如果您希望使用SQL语句完成数据的可视化分析,则可以使用即席分析SQL方式。
两种方式的具体操作如下:
- 拖拽方式。
- 单击目标表操作列的
图标,创建数据集。
- 配置创建数据集对话框的名称和位置参数。
- 单击确定。
- 在我的数据集页面,您可以单击目标数据集操作列下的图标,进行相应操作:
- 单击
图标,查看当前数据集的数据。
- 单击
图标,新建仪表盘,将表数据导入并生成图表,进行可视化展示。
- 单击
图标,新建电子表格,将目标表数据导入并生成电子表格,进行可视化展示。
- 单击
图标,执行更多操作。例如,数据脱敏、缓存配置及清除缓存等。
示例新建仪表板,在仪表板编辑页面创建堆积柱状图,并设计图表样式展示数据。
- 单击
- 单击目标表操作列的
- 即席分析SQL方式。
- 在数据源页面,单击右上角的即席分析SQL,进入即席分析SQL页面。
- 您可以根据业务需求输入查询SQL语句,并单击执行。
- 获取需要查询的数据后,单击创建数据集。
- 配置保存自定义SQL对话框的名称、位置及SQL参数。
- 单击确定。
成功创建数据集后,您可以在数据集中可视化分析表数据,详情请参见自定义SQL。
时间筛选控件最佳实践
在Hologres创建表时,您可以设置Segment_key(别名event_time_column)属性,对时间类型过滤条件进行索引优化,防止全表扫描并加速查询。Hologres默认把表中第一个时间戳类型作为Segment_key。
Quick BI支持高级的SQL占位符功能,您可以使用SQL占位符来设置时间控件。更多SQL占位符信息,请参见自定义SQL。
- 设置时间筛选字段占位符。执行以下步骤前,需要在Hologres创建名称为LINEITEM的内部表,并且将MaxCompute公共空间MAXCOMPUTE_PUBLIC_DATA中public.odps_lineitem_10g表的数据导入到LINEITEM表中,详细步骤请参见Hologres查询体验快速入门。
- 在Quick BI管理控制台的数据源页面,单击右上角的SQL创建数据集,进入新建代码片段对话框。
- 输入以下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')
- 单击参数设置,设置SQL占位符。
- 在变量类型下拉列表选择“日期-年月日时分秒 > YYYY-MM-DD HH-MI-SS”。
- 单击确定后,单击确认编辑。
- 在仪表板编辑页面,单击新建筛选项,在查询条件设置对话框,字段选择所设置的SQL占位符。
- 在仪表板编辑页面,单击查看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
- 验证Segment_key是否生效。
您可查看SQL的执行计划中是否有Segment Filter的关键字出现以验证Segment_key是否生效。
- 登录Hologres管理控制台,单击左侧实例列表。
- 在实例详情页左侧导航栏,单击Database管理。
- 在DB授权页面,单击SQL编辑器。
- 在SQL编辑器页面,单击左上角的新建SQL窗口。
- 在新增的临时Query查询页面,选择已创建的实例名和数据库后,请您在SQL查询的编辑框输入如下语句,单击运行。
以下SQL语句用来查看获取到SQL的执行计划,用于验证Segment_key是否生效。
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
- 在结果页签中获取执行计划,如下。
-> 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占位符创建的时间控件。