【转载】阿里云MVP Meetup:《云数据·大计算:海量日志数据分析与应用》之《数据加工:用户画像》篇

实验背景介绍

本手册为阿里云MVP Meetup Workshop《云计算·大数据:海量日志数据分析与应用》的《数据加工:用户画像》篇而准备。主要阐述在使用大数据开发套件过程中如何将已经采集至MaxCompute上的日志数据进行加工并进行用户画像,学员可以根据本实验手册,去学习如何创建SQL任务、如何处理原始日志数据。

实验涉及大数据产品

  • 大数据计算服务 MaxCompute
  • 大数据开发套件 DataWorks

实验环境准备

必备条件:

  • 开通大数据计算服务MaxCompute
  • 创建大数据开发套件项目空间

进入大数据开发套件

确保阿里云账号处于登录状态。

  • step1:点击进入大数据开发套件项目列表
  • step2:点击已经创建的项目空间名称,进入大数据开发套件。

新建数据表

若在实验《数据采集:日志数据上传》中已经新建脚本文件,可以直接切换至脚本开发tab下,双击打开create_table_ddl脚本文件。若无新建脚本文件可通过如下详细步骤进行创建脚本文件。

1.新建ods_log_info_d表

  • step1:点击数据开发,进入数据开发首页中点击新建脚本
  • step2:配置文件名称为create_table_ddl,类型选择为ODPS SQL,点击提交
  • step3:编写DDL创建表语句。

DDL建表语句如下:

CREATE TABLE ods_log_info_d (
  ip STRING COMMENT 'ip地址',
  uid STRING COMMENT '用户ID',
  time STRING COMMENT '时间yyyymmddhh:mi:ss',
  status STRING COMMENT '服务器返回状态码',
  bytes STRING COMMENT '返回给客户端的字节数',
  region STRING COMMENT '地域,根据ip得到',
  method STRING COMMENT 'http请求类型',
  url STRING COMMENT 'url',
  protocol STRING COMMENT 'http协议版本号',
  referer STRING COMMENT '来源url',
  device STRING COMMENT '终端类型 ',
  identity STRING COMMENT '访问类型 crawler feed user unknown'
)
PARTITIONED BY (
  dt STRING
);
  • step4:选择需要执行的SQL语句,点击运行,直至日志信息返回成功表示表创建成功。
  • step5:可以使用desc语法来确认创建表是否成功。
  • step6:点击保存,保存编写的SQL建表语句。

2.新建dw_user_info_all_d表

创建表方法同上,本小节附建表语句:

--创建dw_user_info_all_d表
drop table if exists dw_user_info_all_d;

CREATE TABLE dw_user_info_all_d (
  uid STRING COMMENT '用户ID',
  gender STRING COMMENT '性别',
  age_range STRING COMMENT '年龄段',
  zodiac STRING COMMENT '星座',
  region STRING COMMENT '地域,根据ip得到',
  device STRING COMMENT '终端类型 ',
  identity STRING COMMENT '访问类型 crawler feed user unknown',
  method STRING COMMENT 'http请求类型',
  url STRING COMMENT 'url',
  referer STRING COMMENT '来源url',
  time STRING COMMENT '时间yyyymmddhh:mi:ss'
)
PARTITIONED BY (
  dt STRING
);

3.新建rpt_user_info_d表

创建表方法同上,本小节附建表语句:

--创建rpt_user_info_d表
DROP TABLE IF EXISTS rpt_user_info_d;

CREATE TABLE rpt_user_info_d (
  uid STRING COMMENT '用户ID',
  region STRING COMMENT '地域,根据ip得到',
  device STRING COMMENT '终端类型 ',
  pv BIGINT COMMENT 'pv',
  gender STRING COMMENT '性别',
  age_range STRING COMMENT '年龄段',
  zodiac STRING COMMENT '星座'
)
PARTITIONED BY (
  dt STRING
);

上述三张表创建成功后,保存脚本文件。

工作流设计

若成功完成实验《数据采集:日志数据上传》,即可切换至任务开发tab中,双击打开workshop工作流任务。

向画布中拖入三个ODPS SQL节点,依次命名为ods_log_info_d、dw_user_info_all_d、rpt_user_info_d,并配置依赖关系如下:

若未完成实验《数据采集:日志数据上传》篇,可通过进入查看如何创建工作流任务。

创建自定义函数

  • step1:点击下载ip2region.jar
  • step2:切换至资源管理tab页,点击上传按钮。

  • step3:点击选择文件,选择已经下载到本地的ip2region.jar。
  • step4:点击提交
  • step5:切换至函数管理tab,点击创建函数按钮。
  • step6:资源选择ip2region.jar,其他配置项如下所示。

配置项说明如下:

  • 函数名:getregion
  • 类名:org.alidata.odps.udf.Ip2Region
  • 资源:ip2region.jar
  • step7:点击提交

配置ODPS SQL节点

1)配置ods_log_info_d节点:

  • step1:双击ods_log_info_d节点,进入节点配置界面,编写处理逻辑。

附SQL逻辑如下:

INSERT OVERWRITE TABLE ods_log_info_d PARTITION (dt=${bdp.system.bizdate})

SELECT ip
  , uid
  , time
  , status
  , bytes --使用自定义UDF通过ip得到地域
  , getregion(ip) AS region --通过正则把request差分为三个字段
  , regexp_substr(request, '(^[^ ]+ )') AS method
  , regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') AS url
  , regexp_substr(request, '([^ ]+$)') AS protocol --通过正则清晰refer,得到更精准的url
  , regexp_extract(referer, '^[^/]+://([^/]+){1}') AS referer --通过agent得到终端信息和访问形式
  , 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
  , CASE
    WHEN TOLOWER(agent) RLIKE '(bot|spider|crawler|slurp)' THEN 'crawler'
    WHEN TOLOWER(agent) RLIKE 'feed'
    OR regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') RLIKE 'feed' THEN 'feed'
    WHEN TOLOWER(agent) NOT RLIKE '(bot|spider|crawler|feed|slurp)'
    AND agent RLIKE '^[Mozilla|Opera]'
    AND regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') NOT RLIKE 'feed' THEN 'user'
    ELSE 'unknown'
  END AS identity
  FROM (
    SELECT SPLIT(col, '##@@')[0] AS ip
    , SPLIT(col, '##@@')[1] AS uid
    , SPLIT(col, '##@@')[2] AS time
    , SPLIT(col, '##@@')[3] AS request
    , SPLIT(col, '##@@')[4] AS status
    , SPLIT(col, '##@@')[5] AS bytes
    , SPLIT(col, '##@@')[6] AS referer
    , SPLIT(col, '##@@')[7] AS agent
  FROM ods_raw_log_d
  WHERE dt = ${bdp.system.bizdate}
) a;
  • step2:点击保存
  • step3:点击返回,返回至工作流开发面板。

2)配置dw_user_info_all_d节点:

  • step1:双击dw_user_info_all_d节点,进入节点配置界面,编写处理逻辑。

附SQL语句如下:

INSERT OVERWRITE TABLE dw_user_info_all_d PARTITION (dt='${bdp.system.bizdate}')

SELECT COALESCE(a.uid, b.uid) AS uid
  , b.gender
  , b.age_range
  , b.zodiac
  , a.region
  , a.device
  , a.identity
  , a.method
  , a.url
  , a.referer
  , a.time
FROM (
  SELECT *
  FROM ods_log_info_d
  WHERE dt = ${bdp.system.bizdate}
) a
LEFT OUTER JOIN (
  SELECT *
  FROM ods_user_info_d
  WHERE dt = ${bdp.system.bizdate}
) b
ON a.uid = b.uid;
  • step2:点击保存
  • step3:点击返回,返回至工作流开发面板。

配置rpt_user_info_d节点

  • step1:双击进入rpt_user_info_d节点进入配置界面。

附SQL代码如下:

INSERT OVERWRITE TABLE rpt_user_info_d PARTITION (dt='${bdp.system.bizdate}')

SELECT uid
  , MAX(region)
  , MAX(device)
  , COUNT(0) AS pv
  , MAX(gender)
  , MAX(age_range)
  , MAX(zodiac)
FROM dw_user_info_all_d
WHERE dt = ${bdp.system.bizdate}
GROUP BY uid;
  • step2:点击保存
  • step3:点击返回,返回至工作流开发面板。

提交工作流任务

  • step1:点击提交,提交已配置的工作流任务。
  • step2:在变更节点列表弹出框中点击确定提交

提交成功后工作流任务处于只读状态,如下:

通过补数据功能测试新建的SQL任务

鉴于在数据采集阶段已经测试了数据同步任务,本节中直接测试下游SQL任务即可,也保证了时效性。

  • step1:进入运维中心>任务列表,找到workshop工作流任务。
  • step2:单击名称展开工作流。
    ![进入节点试图]
  • step3:选中ods_log_info_d节点,单击补数据
    ![选择补数据节点]
  • step4:在补数据节点对话框中全选节点名称,选择业务日期,点击运行选中节点

自动跳转到补数据任务实例页面。

  • step5:输入字母‘d’,通过过滤条件刷新,直至SQL任务都运行成功即可。

确认数据是否成功写入MaxCompute相关表

  • step1:返回到create_table_ddl脚本文件中。
  • step2:编写并执行sql语句查看rpt_user_info_d数据情况。。

附录:SQL语句如下。

---查看rpt_user_info_d数据情况
select * from rpt_user_info_d limit 10;
时间: 2024-09-16 04:20:06

【转载】阿里云MVP Meetup:《云数据·大计算:海量日志数据分析与应用》之《数据加工:用户画像》篇的相关文章

云数据,大计算—海量日志数据分析与应用

课程介绍           网站日志分析是大数据应用场景中非常常见的一种,今天我们通过实例对网站日志数据进行分析,从日志采集-->日志数据清洗.加工做画像分析-->BI报表展现,更进一步,通过社交数据分析做好友推荐 ,对整个全链路过程做实验操作演练,希望能给大家提供一些帮助. 准备工作         杭州TI专场,workshop现场是在云中沙箱账号环境进行的实验操作,若您想在自己的项目中进行演练,请准备好如下事项:         1.购买MaxCompute         2.在数据

阿里云MVP Meetup:《云数据·大计算:海量日志数据分析与应用》之《数据分析展现:可视化报表及嵌入应用》篇

实验背景介绍 本手册为阿里云MVP Meetup Workshop<云计算·大数据:海量日志数据分析与应用>的<数据分析展现:可视化报表及嵌入应用>篇而准备.主要阐述如何使用Quick BI制作报表,将前面几个实验处理分析得来的数据进行有效的展现和洞察. <数据加工:用户画像>实验中的结果表数据已经事先导入RDS中,表名为rpt_user_info_all_d.该表包含了:用户id.地区.性别.年龄范围.星座.访问设备.PV 等访问信息. 实验目标 承接前述实验加工好的

阿里云MVP Meetup 《云数据·大计算:海量日志数据分析与应用》Workshop-入口

阿里云MVP Meetup 大数据Workshop入口 <云数据·大计算:海量日志数据分析与应用> 欢迎大家扫码加入阿里云数加MaxCompute交流群,后续相关项目支持都可以进行群里提问,数加小二也第一时间帮助解决. 数据采集:日志数据上传 数据加工:用户画像 数据分析展现:可视化报表及嵌入应用 该课程是基于大数据时代日志分析的基础需求的基础上,告知用户如果通过阿里云数加大数据解决方案来实现自己网站日志的用户画像.包括数据采集.数据加工以及数据最终的展现. 专场议程介绍 在大数据时代,无论是

大数据workshop:《云数据·大计算:海量日志数据分析与应用》之《数据加工:用户画像》篇

阿里云MVP Meetup:<云数据·大计算:海量日志数据分析与应用>之<数据加工:用户画像>篇 实验背景介绍 本手册为阿里云MVP Meetup Workshop<云计算·大数据:海量日志数据分析与应用>的<数据加工:用户画像>篇而准备.主要阐述在使用大数据开发套件过程中如何将已经采集至MaxCompute上的日志数据进行加工并进行用户画像,学员可以根据本实验手册,去学习如何创建SQL任务.如何处理原始日志数据. 实验涉及大数据产品 大数据计算服务 Max

北京Workshop准备条件:《云数据·大计算:快速搭建互联网在线运营分析平台》

实验背景介绍 了解更多2017云栖大会·北京峰会 TechInsight & Workshop. 本手册为云栖大会Workshop之<云计算·大数据:海量日志数据分析与应用>场的前提准备条件所需.主要为保障各位学员在workshop当天能够顺畅进行动手实操,那么本场需要各位学员再参加之前确保自己云账号已免费开通表格存储TableStore.大数据计算服务MaxCompute.DataWorks和Quick BI. 实验涉及大数据产品 表格存储 TableStore 大数据计算服务 Ma

阿里云MVP Meetup极客开跑,与MVP一起玩转云计算

9月2日,在杭州科技寺创业空间,开展了一场开发圈的线下交流会,这是阿里云及MVP.合作伙伴们共同举办的首次MVP线下沙龙会,是增强与开发者感情的第一次尝试. 沙龙分为三个组成部分:MVP分享.提问.自由交流时间. 第一部分三位MVP的分享,他们是来自不同公司不同行业,使用着不同的产品,用着不同的解决方案.就此他们结合自己的业务场景,根据使用阿里云产品的经验,多纬度地分享了使用云过程中的经验. 尤其是第三位分享MVP王鹏翰,就如何通过阿里云日志事件序列打造高效搜索引擎进行了分享,他通过自己对日志服

大数据大热知易行难 企业必须充分积累各类数据

日前,国务院印发<促进大数据发展行动纲要>(下称<纲要>).<纲要>指出,2018年底前,建成国家政府数据统一开放平台.2020年底前,逐步实现信用.交通.医疗.卫生.就业.社保.地理.文化.教育.科技.资源.农业.环境.安监.金融.质量.统计.气象.海洋.企业登记监管等民生保障服务相关领域的政府数据集向社会开放.同时,强化中央财政资金引导,集中力量支持大数据核心关键技术攻关.产业链构建.重大应用示范和公共服务平台建设等. 海通证券表示,此次<纲要>的下发,

关于举办“天德π客”创业论坛——“基于阿里云的大数据实践—海量日志分析”的通知

随着互联网.云计算.物联网.社交网络等技术的兴起和普及,全球数据的增长快于任何一个时期,可以称作是爆炸性增长.收集大量数据,并在数据中发现趋势,能使企业能够更快.更平稳.更有效地发展.然而,大数据对许多企业和数据专业人员来说,它仍然很难理解,那么,什么是大数据分析?如何利用阿里云数加平台进行海量数据分析,帮助企业更好地利用数据资源?"天德π客"众创空间特举办本期论坛--"基于阿里云的大数据实践--海量日志分析",邀请华北电力大学电力系统及其自动化博士,阿里云大数据高

阿里云 MVP我们又相见在杭州

阿里云 MVP我们又相见在杭州了! 上周我们线上线下同步升级阿里云权益全面启动全球招募.在上海张江阿里巴巴创新中心,阿里云两位MVP从持续交付和数据可视化DataV技术分享踩坑实践,不仅是技术的分享还有项目管理的知识. 本周我们从数据出发,看业务驱动数据,经过大数据的分析挖掘,最终通过数据变现来洞察业务,提升运营策略?这在阿里云大数据团队都已经有了很明确的答案. 本次阿里云MVP Meetup除了邀请了阿里云大数据一线的研发及PD,也邀请到了阿里云MVP,驻云资深架构师翟永东为大家分享基于阿里云