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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本手册为云栖大会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;
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
54 4
|
27天前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
81 1
|
1月前
|
SQL 消息中间件 分布式计算
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
63 5
|
1天前
|
存储 监控 数据挖掘
【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器
ClickHouse 的物化视图是一种特殊表,通过预先计算并存储查询结果,显著提高查询性能,减少资源消耗,适用于实时报表、日志分析、用户行为分析、金融数据分析和物联网数据分析等场景。物化视图的创建、数据插入、更新和一致性保证通过事务机制实现。
25 14
|
8天前
|
数据采集 机器学习/深度学习 搜索推荐
大数据与社交媒体:用户行为分析
【10月更文挑战第31天】在数字化时代,社交媒体成为人们生活的重要部分,大数据技术的发展使其用户行为分析成为企业理解用户需求、优化产品设计和提升用户体验的关键手段。本文探讨了大数据在社交媒体用户行为分析中的应用,包括用户画像构建、情感分析、行为路径分析和社交网络分析,以及面临的挑战与机遇。
|
7天前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
33 1
|
8天前
|
机器学习/深度学习 搜索推荐 大数据
大数据与教育:学生表现分析的工具
【10月更文挑战第31天】在数字化时代,大数据成为改善教育质量的重要工具。本文探讨了大数据在学生表现分析中的应用,介绍学习管理系统、智能评估系统、情感分析技术和学习路径优化等工具,帮助教育者更好地理解学生需求,制定个性化教学策略,提升教学效果。尽管面临数据隐私等挑战,大数据仍为教育创新带来巨大机遇。
|
11天前
|
人工智能 供应链 搜索推荐
大数据分析:解锁商业智能的秘密武器
【10月更文挑战第31天】在信息爆炸时代,大数据分析成为企业解锁商业智能的关键工具。本文探讨了大数据分析在客户洞察、风险管理、供应链优化、产品开发和决策支持等方面的应用,强调了明确分析目标、选择合适工具、培养专业人才和持续优化的重要性,并展望了未来的发展趋势。
|
1月前
|
存储 分布式计算 druid
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
52 1
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
|
14天前
|
数据采集 算法 大数据
大数据中噪声数据处理
【10月更文挑战第20天】
94 2

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 下一篇
    无影云桌面