大数据workshop:《在线用户行为分析:基于流式计算的数据处理及应用》之《流数据处理:通过StreamSQL分析用户行为》篇

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

大数据workshop:《在线用户行为分析:基于流式计算的数据处理及应用》之《流数据处理:通过StreamSQL分析用户行为》篇

实验背景介绍

了解更多2017云栖大会·成都峰会 TechInsight & Workshop.

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

实验涉及大数据产品

前提准备

必备条件:如果您已经创建了StreamCompute Project,即可跳过创建StreamCompute项目空间章节,直接进入通过StreamSQL分析用户行为章节。

创建StreamCompute项目空间

目前阿里云流计算StreamCompute处于邀测阶段,为让大家深度体验到StreamCompute的便利性,在实验开始之前,幕后码农已为大家开通。

  • step1:保证账号在登录状态,点击进入阿里云流计算首页。
  • step2:点击创建项目,跳出创建项目对话框。
    创建项目
  • step3:填写项目名称、项目备注,点击创建。创建项目空间成果后,系统会自动刷新进入如下页面。
    配置项目
  • step4:创建项目空间成果后,系统会自动刷新进入如下页面,并点击开始使用进入流计算。
    开始使用

项目名需要字母或下划线开头,只能包含字母下划线和数字。

【注意】建议项目名称与DataHub Project规则保持一致为workshop_abc,其中abc为账号后三位数。

过StreamSQL分析用户行为

流计算角授权

前往授权

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

同意授权

编写StreamSQL分析数据

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

进入开发

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

点击新建

点击新建文件夹

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

创建作业

配置作业

  • step4:修改代码备注信息,进入编写StreamSQL开始分析数据。

创建StreamSQL

  • step5:将DataHub Topic作为“输入表引用”,具体说明如下:

为了大家能够体验流式计算的实时计算能力,在下一章节大屏中也能具象体会到数据的实时刷新,本workshop特意为大家准备了一个实时产生日志的DataHub Topic。大家直接引用即可。

输入表引用

CREATE STREAM TABLE ods_log (
    remote                 STRING,
    ident                  STRING,
    auth                   STRING,
    dt                     STRING,
    method                 STRING,
    requestpath            STRING,
    httpversion            STRING,
    code                   STRING,
    bytes                  STRING,
    referrer               STRING,
    agent                  STRING,
    city                   STRING,
    province               STRING
) WITH (
        type='datahub',
        endpoint='http://dh-cn-hangzhou-internal.aliyuncs.com',
        accessId='LTAICO76WC1rREmW',
        accessKey='a89c1T96KMA2tOrEnb0SiBOA7GMMP3',
        projectName='workshop',
        topic='nginx_log'
);
  • step6:需要对源头DataHub的数据进行清洗和加工。逻辑如下:

创建临时表

CREATE TMP TABLE adm_log (
    remote                 STRING,
    identity               STRING,
    device                 STRING,
    dt                     STRING,
    method                 STRING,
    url                    STRING,
    httpversion            STRING,
    code                   STRING,
    bytes                  STRING,
    referrer               STRING,
    agent                  STRING,
    city                   STRING,
    province               STRING
);

创建处理逻辑

INSERT INTO adm_log SELECT
    remote,
    CASE 
        WHEN TOLOWER(agent) RLIKE '(bot|spider|crawler|slurp)' THEN 'crawler'
        WHEN TOLOWER(agent) RLIKE 'feed'
        OR requestpath RLIKE 'feed' THEN 'feed'
        WHEN TOLOWER(agent) NOT RLIKE '(bot|spider|crawler|feed|slurp)'
        AND agent RLIKE '^\"[Mozilla|Opera]'
        AND requestpath NOT RLIKE 'feed' THEN 'user'
        ELSE 'unknown'
    END AS identity,
    CASE 
        WHEN TOLOWER(agent) RLIKE 'android' THEN 'android'
        WHEN TOLOWER(agent) RLIKE 'iphone' THEN 'iphone'
        WHEN TOLOWER(agent) RLIKE 'ipad' THEN 'ipad'
        WHEN TOLOWER(agent) RLIKE 'macintosh' THEN 'macintosh'
        WHEN TOLOWER(agent) RLIKE 'windows phone' THEN 'windows_phone'
        WHEN TOLOWER(agent) RLIKE 'windows' THEN 'windows_pc'
        ELSE 'unknown'
    END AS device,
    dt,
    method,
    requestpath,
    httpversion,
    code,
    bytes,
    regexp_extract(referrer, '^[^/]+://([^/]+){1}') as referrer,
    agent,
    city,
    province
    FROM ods_log
    WHERE requestpath NOT LIKE '^[/]+wp-';  --wp来自于主体请求的其他附加请求
  • step7:统计每天的实时浏览量pv的计算逻辑分别如下。

统计每小时的实时浏览量pv、统计各设备实时访问量、统计请求来源分布、统计热力图分布的计算逻辑此次操作中将不涉及,讲师会深度解析SQL处理逻辑,待大会结束后会统一将源码在此贴中披露供大家学习。请认证听讲师分享他的使用之道哦~~

每一个计算逻辑都需要“输出表引用”,即引用上一章节《实时数据分析:海量日志数据多维透视》创建的AnalyticDB表。特别注意需要替换自建创建的输出表名。

统计每天的实时浏览量pv

天pv

SQL逻辑如下:

CREATE RESULT TABLE pv_day (
    pv_time             STRING,
    pv_count            BIGINT,
    PRIMARY KEY (pv_time)
) WITH (
    type='ads',
    url='jdbc:mysql://workshop-demo-114ae71f.cn-hangzhou-1.ads.aliyuncs.com:10078/workshop_demo',
    username='LTAICO76WC1rREmW',
    password='a89c1T96KMA2tOrEnb0SiBOA7GMMP3',
    tableName='pv_day_620'  --记得替换成自己的AnalyticDB表名
);

REPLACE INTO pv_day
SELECT
    SUBSTR(dt, 1, 8) as pv_time,
    COUNT(1) as pv_count
FROM
    adm_log
GROUP BY
    SUBSTR(dt, 1, 8);

参数配置

为了保障大家在workshop中的流式任务落在实验专有的集群中,需要加入galaxy.version参数。

点击右侧作业参数展开配置,加入参数galaxy.version=1.4.13.678即可。如下:

参数配置

上线StreamSQL作业

在日程代码开发中,作业上线之前都会有调试,关于流计算作业的调试说明可详见流计算官方文档(点击更多),此处不再赘述。

  • step1:在数据开发中点击上线,即可完成StreamCompute作业上线工作。

上线

  • step2:在上线作业弹出框中点击上线

上线新版本

启动作业

通过上述步骤将已经创建好的StreamSQL作业提交至集群线上,还需要在运维中进行启动作业,方可执行流式作业。

  • step1:点击顶部菜单栏中的运维进入运维中心。

进入运维

  • step2:找到自己的流式作业workshop,点击操作栏中的启动

点击启动

  • step3:在启动作业对话框中,点击按以上配置启动

启动作业

通过上述步骤作业处于启动中,直至状态显示运行,表示作业上线并启动成功。

启动中

启动

  • step4:点击任务操作栏中的查看进入运维大屏查看任务概况。

查看

  • step5:在作业仪表盘中开启实时刷新,并关注数据输入和数据输出,如下图显示正常表示流式任务处理正常。

开启实时刷新

开启实时刷新后,低下的监控图会由于作业提交集群执行过程有所1分钟左右延迟刷出。

作业仪表盘

确认数据产生

作业在运行中,可以通过在DMS for AnalyticDB中进行select查看数据产生情况。

  • step1:进入DMS for AnalyticDB并使用阿里云账号进行登录。
  • step2:选择进入区域华北2,继而点击操作栏中的进入,进入workshop_demo数据库。

进入ADS

  • step3:点击顶部SQL窗口进入SQL编辑视窗。

SQL窗口

  • step4:编辑SQL查看数据产生情况。

数据查看

可以尝试不断的执行该sql你会发现数据在不断的增加。

SQL代码如下:

SELECT * from pv_day_620;
相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
19天前
|
存储 消息中间件 监控
【Flume】Flume在大数据分析领域的应用
【4月更文挑战第4天】【Flume】Flume在大数据分析领域的应用
|
23天前
|
存储 大数据 数据处理
PHP 与大数据:构建高效数据处理系统
传统的数据处理系统往往难以应对大规模数据的处理需求,而PHP作为一种常用的服务器端脚本语言,在数据处理方面也有其独特的优势。本文将探讨如何利用PHP构建高效的大数据处理系统,结合实际案例分析其应用场景及优势所在。
15 2
|
1月前
|
Cloud Native 数据处理 云计算
探索云原生技术在大数据分析中的应用
随着云计算技术的不断发展,云原生架构作为一种全新的软件开发和部署模式,正逐渐引起企业的广泛关注。本文将探讨云原生技术在大数据分析领域的应用,介绍其优势与挑战,并探讨如何利用云原生技术提升大数据分析的效率和可靠性。
|
1月前
|
存储 消息中间件 大数据
Go语言在大数据处理中的实际应用与案例分析
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理中的实际应用,通过案例分析展示了Go语言在处理大数据时的优势和实践效果。文章首先介绍了大数据处理的挑战与需求,然后详细分析了Go语言在大数据处理中的适用性和核心技术,最后通过具体案例展示了Go语言在大数据处理中的实际应用。
|
1月前
|
数据采集 运维 数据挖掘
API电商接口大数据分析与数据挖掘 (商品详情店铺)
API接口、数据分析以及数据挖掘在商品详情和店铺相关的应用中,各自扮演着重要的角色。以下是关于它们各自的功能以及如何在商品详情和店铺分析中协同工作的简要说明。
|
29天前
|
数据采集 分布式计算 大数据
Java语言在大数据处理中的应用
传统的大数据处理往往依赖于庞大的数据中心和高性能的服务器,然而随着大数据时代的到来,Java作为一种强大的编程语言正在被广泛应用于大数据处理领域。本文将探讨Java语言在大数据处理中的优势和应用,以及其在分布式计算、数据处理和系统集成等方面的重要作用。
|
1月前
|
存储 大数据 数据挖掘
云计算与大数据:从基础设施到实际应用
云计算与大数据:从基础设施到实际应用
126 0
|
13天前
|
机器学习/深度学习 人工智能 安全
Azure Databricks实战:在云上轻松进行大数据分析与AI开发
【4月更文挑战第8天】Databricks在大数据分析和AI开发中表现出色,简化流程并提高效率。文中列举了三个应用场景:数据湖分析、实时流处理和AI机器学习,并阐述了Databricks的一体化平台、云原生弹性及企业级安全优势。博主认为,Databricks提升了研发效能,无缝集成Azure生态,并具有持续创新潜力,是应对大数据挑战和加速AI创新的理想工具。
37 0
|
21天前
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。
|
26天前
|
机器学习/深度学习 人工智能 数据可视化
基于Python的数据可视化技术在大数据分析中的应用
传统的大数据分析往往注重数据处理和计算,然而数据可视化作为一种重要的技术手段,在大数据分析中扮演着至关重要的角色。本文将介绍如何利用Python语言中丰富的数据可视化工具,结合大数据分析,实现更直观、高效的数据展示与分析。

相关产品

  • 云原生大数据计算服务 MaxCompute