Quick BI为您提供海量数据的实时在线分析服务以及丰富的可视化效果,您可以通过拖拽式操作或SQL语句方式,轻松地完成数据分析、业务数据探查及报表制作。本文为您介绍如何使用实时数仓Hologres连接Quick BI,并进行可视化分析。
前提条件
开通Hologres,详情请参见购买Hologres。
开通Quick BI,详情请参见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进行可视化分析
添加数据源。
在Quick BI管理控制台页面,单击顶部菜单栏的工作空间。
在工作空间页面左侧导航栏,单击数据源。
在数据源页面,单击右上角的新建数据源。
选择目标数据源并配置相应参数。
选择Alibaba Hologres数据源。
配置添加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数据源开关
需要关闭该开关
无
参数配置完成后,您可以单击连接测试,测试Quick BI与Hologres的连接状态:
如果显示数据源连通性正常,则表示Quick BI与Hologres连接成功。
如果显示数据源连通性异常,请检查参数是否正确,则表示Quick BI与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表中。
在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管理控制台,单击左侧实例列表。
在实例详情页左侧导航栏,单击数据库管理。
在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占位符创建的时间控件。