实验背景介绍
了解更多2017云栖大会·杭州峰会 TechInsight & Workshop.
本手册为云栖大会·杭州峰会Workshop之《在线用户行为分析:基于流式计算的数据处理及应用》场的《流数据处理:通过StreamSQL分析视频日志》篇所需。主要帮助现场学员熟悉并掌握阿里云流计算StreamCompute的操作和使用。
实验涉及大数据产品
前提准备
- 确保已经从云中沙箱中获取了实验所需的阿里云账号和密码。
进入阿里云流计算开发平台
- step1:进入 阿里云流计算开发平台,点击前往授权。
- step2:在云资源访问授权页面,点击同意授权。
声明数据来源
该业务场景是以Log来采集的实时视频日志流,下面需要用StreamCompute来分析处理视频流日志。
- step1:点击顶部菜单栏中的开发,进入开发页面。
- step2:右键选择新建文件夹,在弹出框中填写文件夹名称为workshop_log(可根据需求命名),点击创建。
- step3:在新建的workshop_log文件夹上右键选择新建作业,在新建作业弹出框中命名作业名称为workshop(可根据需求命名),点击新建。
- step4:根据需求修改代码备注信息,进入编写StreamSQL开始编写SQL。
- step5:引用数据来源于前面章节已经配置成功的Log信息。
SQL逻辑如下:
CREATE TABLE client_operation_log (
userid VARCHAR,
`timestamp` VARCHAR
) WITH (
type='sls',
endPoint='http://cn-shanghai-intranet.log.aliyuncs.com',
AccessId='账号对应的accessID',
AccessKey='账号对应的accesskey',
project='前一章节中日志服务的project名称',
logStore='client-operation-log'
);
声明数据目标
经过StreamCompute分析处理的数据最终写入RDS存储中。
- 创建结果表,其将结果输出到RDS表中。
出品方为大家准备了RDS,每个学员的数据库名称均为workshop_[abc],其中[abc]为您的云账号后三位数字,比如云账号为train00620@aliyun-inc.com,那么您需要替换为workshop_620.
SQL逻辑如下:
create table online_num(
start_time TIMESTAMP,
count_value BIGINT,
PRIMARY KEY(start_time)
)
with (
type='rds',
url='jdbc:mysql://rm-uf6t1mym355i3qdsw.mysql.rds.aliyuncs.com:3306/workshop_[abc]',--记得替换为自己的数据库名
tableName='online_num',
username='root',
password='Workshop001'
);
编写StreamSQL分析数据
进入核心逻辑编写阶段,计算指标为统计当前在线人数。
- 编写当前在线人数的StreamSQL计算逻辑。
SQL逻辑如下:
INSERT INTO
online_num
SELECT
CAST(from_unixtime(CAST(`timestamp` AS BIGINT)/1000) AS TIMESTAMP),
COUNT(DISTINCT userid)
FROM
client_operation_log
GROUP BY
CAST(from_unixtime(CAST(`timestamp` AS BIGINT)/1000) AS TIMESTAMP);
提交作业
- step1:点击右侧的资源配置tab页,展开具体信息。
- step2:点击蓝色获取自动生成JSON配置,等待数秒后生成完毕。
直到生成完毕,如下图所示:
- step3:点击保存按钮保存当前配置信息,即后点击提交将代码提交至Blink引擎。
启动作业
通过上述步骤将已经创建好的StreamSQL作业提交至生产集群上,但还需要在运维中进行启动作业,方可执行流式作业。
- step1:点击顶部菜单栏中的运维进入运维中心。
- step2:找到自己的流式作业workshop,点击操作栏中的启动。
- step3:在启动作业对话框中,点击按以上配置启动。
通过上述步骤作业处于启动中,直至状态显示运行,表示作业上线并启动成功。
- step4:点击任务操作栏中的查看详情进入运维大屏查看任务概况。
- step5:在作业仪表盘中开启实时刷新,并关注数据输入和数据输出,如下图显示正常表示流式任务处理正常。
开启实时刷新后,底下的监控图会由于作业提交集群执行过程有所1分钟左右延迟刷出。
确认数据产生
流式作业跑起来,还需要确认是否数据已经写入目标端。
- step1:首先在作业仪表盘中确认数据输入和数据输出是否正常。
- step2:从作业仪表盘中确认数据输入和输出都正常,也可在血缘关系图中进行数据抽样。
- step3:切换至血缘关系图找到目的端RDS,右键并选择抽样数据。
数据抽样结果如下:
数据抽样结果如上图所示,至此我们针对实时在线人数的指标已经完成。其他相关指标大家可以专心听讲师分析和讲解,后续也会提供源码。