本文为您介绍如何使用交互式分析Hologres对接实时计算,快速搭建实时数仓分析大屏的最佳实践。
背景信息
Hologres是阿里云的实时交互式分析产品,通过内置的实时数据API(详情请参见实时数据API)直接对接实时计算,实现高并发实时写入或查询实时数据,速度达到秒级。
Hologres兼容PostgreSQL,将查询到的数据直接对接BI分析工具,使用可视化方式快速分析和展现数据。
本文以搭建某电商店铺实时运营指标大屏为例,展示店铺的总流量、每个商店的访问量、区域销售量和热销商品数据。
使用Hologres搭建实时运营指标大屏的完整链路图如下所示。

- 采集源数据并实时写入实时计算,通过实时计算清洗并聚合数据。
- 实时写入处理后的数据至Holgres,使用Hologres进行交互式查询。
- Hologres对接数据大屏DataV,展示实时运营指标大屏。
操作步骤
- 获取源数据。
通过流式数据服务Datahub或者其他业务日志获取源数据。
为了方便流程操作,本试验从实时计算直接产生数据,详情请参见第3步。
- Hologres创建数据接收表。
使用
Holoweb创建
字段和
数据类型与源表相同的表,用于接收实时写入的数据。SQL语句示例如下。
begin;
drop table if exists order_details;
create table order_details(user_id bigint, user_name text, item_id bigint, item_name text, price numeric(38, 2), province text, city text, ip text, longitude text, latitude text, sale_timestamp timestamptz not null);
call set_table_property('order_details', 'distribution_key', 'user_id');
call set_table_property('order_details', 'segment_key', 'sale_timestamp');
call set_table_property('order_details', 'clustering_key', 'sale_timestamp');
call set_table_property('order_details', 'shard_count', '20');
commit;
- 实时计算清洗数据。
进入
实时计算开发平台,使用实时计算清洗并聚合源数据,通过实时数据API将数据实时写入Hologres。SQL语句示例如下。
//创建数据源
create table order_details(
user_id BIGINT,
user_name VARCHAR,
item_id BIGINT,
item_name VARCHAR,
price numeric(38, 2),
province VARCHAR,
city VARCHAR,
ip VARCHAR,
longitude VARCHAR,
latitude VARCHAR,
sale_timestamp TIMESTAMP
) with (
type = 'custom',
tableFactoryClass = 'com.alibaba.blink.connectors.hologres.table.factory.DemoDataGeneratorFactory');
//创建到Hologres的连接
create table hologres_sink(
user_id BIGINT,
user_name VARCHAR,
item_id BIGINT,
item_name VARCHAR,
price numeric(38, 2),
province VARCHAR,
city VARCHAR,
ip VARCHAR,
longitude VARCHAR,
latitude VARCHAR,
sale_timestamp TIMESTAMP
) with (
type = 'custom',
tableFactoryClass = 'com.alibaba.blink.connectors.hologres.table.factory.HologresTableFactory',
endpoint = 'Hologres实时数据API的VPC网络地址:端口',
dbName = 'Hologres的数据库名称',
tableName = 'Hologres用于接收数据的表名称',
username = '当前云账号的AccessKey ID',
password = '当前云账号的AccessKey Secret',
batchSize = '500',
bufferSize = '500'
);
//写入数据至Hologres
insert into hologres_sink
select
user_id
, user_name
, item_id
, item_name
, price
, province
, city
, latitude
, longitude
, ip
, sale_timestamp
from order_details;
在Hologres中执行以下命令获取实时数据API的VPC网络地址。
show hg_datahub_endpoints;
- 发布实时作业。
提交并发布填写完成的作业至生产环境。操作步骤如下:
- 引用资源包。
- 发布作业。
成功引用资源包后,保存作业。单击
上线,根据业务配置资源参数,提交作业至生产环境。

- 启动作业。
作业发布后,前往运维界面,手动启动作业。成功启动作业的界面如下图所示。

- 实时查询数据。
根据业务情况,在Hologres中从不同维度实时查询实时写入的数据,示例如下。
select sum(price) as "GMV" from order_details ;
select count(distinct user_id) as "UV" from order_details ;
select city as "城市", count(distinct user_id) as "购买用户数" from order_details group by "城市" order by "购买用户数" desc limit 100;
select item_name as "商品", sum(price) as "销售额" from order_details group by "商品" order by "销售额" desc limit 100;
select to_char(sale_timestamp, 'MM-DD') as "日期", sum(price) as "GMV" from order_details group by "日期" order by "GMV" desc limit 100;
- 展示DataV实时大屏。
Hologres中查询出的数据直接对接DataV,用于制作实时大屏。操作步骤如下:
- 添加数据源。
类型选择交互式分析Hologres。

- 创建实时大屏。
根据大屏需要显示的内容,选择相应组件并配置数据源信息。详情请参见
组件概览。
本试验中选择了基本柱状、轮播、基础平面地图和数字翻牌器。以配置多轮饼图示例。
- 配置数据源信息。如下图所示。

- 配置多轮饼图的标题、边框、字体和颜色。如下图所示。

- 展示实时大屏。
配置大屏的插件参数及数据源信息后,可根据实际业务添加装饰元素,美化插件。
如下图所示。
- 左侧实时显示商品的访问量以及城市的销售额。
- 中间地图实时显示每一笔交易订单的位置、总的销售额以及总访问次数。
- 右侧实时显示商品的销售额占比和商品的销售排行。
在文档使用中是否遇到以下问题
更多建议
匿名提交