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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 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,右键并选择抽样数据

血缘关系图

数据抽样结果如下:

数据抽样

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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3天前
|
消息中间件 监控 搜索推荐
OpenFeign日志组件Logger原理与应用
该文章详细解释了如何在OpenFeign中配置并使用请求和响应的GZIP压缩功能。
|
13天前
|
弹性计算 缓存 监控
基于“日志审计应用”的 DNS 日志洞察实践
DNS 解析日志是一种记录 DNS 请求和响应的基础信息,监控 DNS 服务可以帮助用户识别网络活动并保持系统安全。日志审计服务支持采集 DNS 内网解析日志、公网权威解析日志、GTM 日志。理解 DNS 日志的字段含义,洞察 DNS 日志背后所代表的网络信息,既可以帮助发现和诊断 DNS 解析相关的问题,还可以检测和识别潜在的安全威胁。
7786 10
|
5天前
|
人工智能 数据库连接 Go
Golang 搭建 WebSocket 应用(五) - 消息推送日志
Golang 搭建 WebSocket 应用(五) - 消息推送日志
9 1
|
11天前
|
存储 Kubernetes 网络安全
[k8s]使用nfs挂载pod的应用日志文件
[k8s]使用nfs挂载pod的应用日志文件
|
23天前
|
消息中间件 Kubernetes Kafka
日志采集/分析
日志采集/分析
36 7
|
4天前
|
开发框架 .NET API
如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
|
4天前
|
监控 程序员 数据库
分享一个 .NET Core Console 项目中应用 NLog 写日志的详细例子
分享一个 .NET Core Console 项目中应用 NLog 写日志的详细例子
|
29天前
|
消息中间件 容灾
共识协议的技术变迁问题之Share Log在哪些场景中被广泛应用
共识协议的技术变迁问题之Share Log在哪些场景中被广泛应用
|
12天前
|
应用服务中间件 Shell nginx
shell分析nginx日志的一些指令
shell分析nginx日志的一些指令
|
1月前
|
存储 监控 数据可视化
如何优化Java应用的日志管理?
如何优化Java应用的日志管理?

热门文章

最新文章