这里主要结合自己使用阿里云实时计算平台的经验,介绍下阿里云实时计算开发流程,虽然阿里云实时计算有官方文档,但有些地方对于新手来说可能有些难于理解。第一次使用阿里云实时计算的同学可以参考。
我所在的项目使用阿里实时计算大概的一个链路是:
程序在服务器打印log日志—>阿里云日志服务收集各服务器日志解析—>阿里云实时计算平台实时统计各参数指标—>统计结果回流到mysql库—>报表或程序调用mysql库
阿里云实时计算流程大致流程如下:
1、定义输入表
CREATE TABLE log_submit (
user_id VARCHAR,
WATERMARK FOR log_time AS withOffset (log_time, 10000) -- to add your columns
-- LogHub service use KV pairs to persist data, for example name: stream, age: 18
-- The following is StreamCompute LogHub DDL, please use Key in LogHub as Column and VARCHAR as the type of field.
) WITH (
type = 'sls',
endPoint = 'xxxx',
roleArn = 'xxxxx',
project = 'xxxx',
logStore = 'log_submit'
);
type='sls'代表来源于阿里日志服务,也可以指定其他数据源,可同时指定多个数据源;
2、定义输出表
create table flk_a (
`user_id` varchar,
`count` bigint,
PRIMARY KEY (
`user_id`
)
) WITH (
type= 'rds',
url = 'xxxxxx',
userName = 'xxxxxx',
password = 'xxxxxx',
tableName = 'flk_a'
);
primary key 中定义的参数必须是数据库的主键或者唯一索引
3、将输入表数据统计汇总到输出表
INSERT INTO flk_a
SELECT user_id, COUNT(*)
FROM
log_submit
GROUP BY user_id;
4、资源配置
分配好每个节点的core、heap memory等参数,点击“应用当前配置”。
5、点击“上线”
设置启动位点,即任务从什么时候开始执行,点击“确定”即可。