部分内容直接摘抄阿里官网作为背景和概述:

背景

在实时数据业务场景中,最常见的链路是将实时采集的数据,通过实时计算初步清洗,实时写入数据至数据库,再对接BI工具实现数据的可视化分析。数据处理流程如下图所示。
[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第1张图片
整个业务链路中,要求数据库提供高性能的计算服务,存储海量数据,同时对接多种BI分析工具。单一的数据库很难实现以上所有功能,您必须借助其他数据库的相关能力完成业务流程。
在导入导出数据时会产生冗余存储,浪费存储资源。同时需要维护多套系统,给开发及运维增加了一定难度。
概述
为解决实时场景的业务痛点,Hologres提供了实时数据API接口。业务数据及日志数据可以直接调用实时数据API接口,实时写入数据,再由Hologres提供高性能的计算服务和海量数据的存储服务。数据处理流程如下图所示。
[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第2张图片

整个业务链路中,您无需导入导出数据,写入的数据统一存储在Hologres中,无冗余存储,节省计算及存储资源。一套系统就能满足您的多种需求,节省了开发和运维的成本。
Blink实时写入数据:

请确保开通的实时计算与Hologres地域一致,以免连接失败。(不是跨Region的服务)
Blink 3.6之前的版本未内置Hologres Connector(注意版本),实时写入数据至Hologres需要引用JAR文件,您可以提交工单或通过Hologres交流群(钉钉群号:32314975)获取。
当Hologres中接收数据的表已设置主键,默认按照主键更新实时写入的数据。(按照PK的update time写入)
如果使用批处理方式导入数据,则需要设置BatchSize并使用HoloHub的Endpoint。

使用blink-3.4.4(默认的)版本~

操作步骤

本次案例演示如何在实时计算里随机生成随机数,并在交互式分析中实时查询数据。(本次演示的所有内容大家都可以参考文档:实时数据实时写入查询)
使用平台:实时计算平台、HoloStudio
注意事项:本案例侧重于操作步骤的演示,数据为随机生成的数据,实际业务请根据实际场景数据来做处理)

1.交互式分析建表

登录HoloStudio,并创建一张接收数据的内部表,示例建表语句如下:

create table test(a int, b text, c text, d float8, e int8);

[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第3张图片

2.实时计算准备实时作业

登录实时计算平台,新建作业开发,并填写作业。在作业中主要是建立实时计算与交互式分析的连接,并导入数据。示例SQL如下:
//模拟消息队列随机生成数据

create table randomSource (a int, b VARCHAR , c VARCHAR , d DOUBLE, e BIGINT) with (type = 'random');

//建立实时计算与交互式分析的连接表信息,下面的连接串信息为必填内容

create table blink_test_demo (
a INT ,
b VARCHAR ,
c VARCHAR ,
d DOUBLE,
e BIGINT,
PRIMARY KEY (a)
) with (
type = 'custom',
tableFactoryClass = 'com.alibaba.blink.connectors.hologres.HologresTableFactory',
`endpoint` = '交互式分析实例VPC网络地址:交互式分析实例VPC网络端口',
`userName` = '当前账号的Access ID',
`password` = '当前账号的Access Key',
`dbName` = '要连接的交互式分析数据库名',
`tableName` = '交互式分析中用于接收数据的表'
);

//将数据导入至连接表中

insert
into blink_test_demo
select
a,b,c,d,e
from
randomSource;

[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第4张图片
进行语法检查时会出错:这是因为缺少一个hologres的连接jar包的引用,下面开始导入jar包(blink-connector-hologres-07-demo.jar)

[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第5张图片
作业填写完成后,在实时计算左侧菜单栏处选择资源引用,并引用资源包(资源包:http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/170591/cn_zh/1591698479126/blink-connector-hologres-07-demo%281%29.jar?spm=a2c4g.11186623.2.23.ff644333ZjOaJX&file=blink-connector-hologres-07-demo%281%29.jar)
[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第6张图片
[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第7张图片

然后保存,再进行一次语法检查:

[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第8张图片
下一步开始上线实时job。选择上线:
[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第9张图片

启动作业:将作业提交到生产环境运行。单击左上角运维,手工启动作业。(作业启动并有输出信息需要1-2分钟,请耐心等待)

[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第10张图片

交互式分析实时读取数据

实时计算有了输出数据之后,可以前往HoloStudio进行数据实时查询
可以看到TPS是2 Blocks/s,你也可以调整bathSize;
[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第11张图片

随便执行两个SQL测试一下:

SELECT * FROM test;

SELECT COUNT (*) FROM test;

[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第12张图片

[Aliyun] 实时数仓Hologres Demo01实时计算实时写入数据至Hologres_第13张图片

Done!