2017云栖大会·杭州峰会:《在线用户行为分析:基于流式计算的数据处理及应用》之《流数据处理:通过StreamSQL分析视频日志》篇-阿里云开发者社区

开发者社区> 阿里巴巴大数据计算> 正文
登录阅读全文

2017云栖大会·杭州峰会:《在线用户行为分析:基于流式计算的数据处理及应用》之《流数据处理:通过StreamSQL分析视频日志》篇

简介: 2017云栖大会·杭州峰会:《在线用户行为分析:基于流式计算的数据处理及应用》之《流数据处理:通过StreamSQL分析视频日志》篇

实验背景介绍

了解更多2017云栖大会·杭州峰会 TechInsight & Workshop.

本手册为云栖大会·杭州峰会Workshop之《在线用户行为分析:基于流式计算的数据处理及应用》场的《流数据处理:通过StreamSQL分析视频日志》篇所需。主要帮助现场学员熟悉并掌握阿里云流计算StreamCompute的操作和使用。

实验涉及大数据产品

前提准备

  • 确保已经从云中沙箱中获取了实验所需的阿里云账号和密码。

进入阿里云流计算开发平台

前往授权

  • step2:在云资源访问授权页面,点击同意授权

同意授权

声明数据来源

该业务场景是以Log来采集的实时视频日志流,下面需要用StreamCompute来分析处理视频流日志。

  • step1:点击顶部菜单栏中的开发,进入开发页面。

进入开发

  • step2:右键选择新建文件夹,在弹出框中填写文件夹名称为workshop_log(可根据需求命名),点击创建

点击新建

点击新建文件夹

  • step3:在新建的workshop_log文件夹上右键选择新建作业,在新建作业弹出框中命名作业名称为workshop(可根据需求命名),点击新建

创建作业

配置作业

  • step4:根据需求修改代码备注信息,进入编写StreamSQL开始编写SQL。

创建StreamSQL

  • step5:引用数据来源于前面章节已经配置成功的Log信息。

引用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,右键并选择抽样数据

血缘关系图

数据抽样结果如下:

数据抽样

数据抽样结果如上图所示,至此我们针对实时在线人数的指标已经完成。其他相关指标大家可以专心听讲师分析和讲解,后续也会提供源码。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里巴巴大数据计算
使用钉钉扫一扫加入圈子
+ 订阅

阿里大数据官方技术圈

官方博客
链接