数据湖构建DLF数据探索快速入门-淘宝用户行为分析-阿里云开发者社区

开发者社区> 云起实验室小助手> 正文

数据湖构建DLF数据探索快速入门-淘宝用户行为分析

简介: 本教程通过使⽤数据湖构建(DLF)产品对于淘宝⽤户⾏为样例数据的分析,介绍DLF产品的数据发现和数据探索功能。教程内容包括:1. 服务开通:开通阿⾥云账号及DLF/OSS相关服务2. 样例数据集下载和导⼊:下载样例数据(csv⽂件),并上传⾄OSS3. DLF数据发现:使⽤DLF⾃动识别⽂件Schema并创建元数据表4. DLF数据探索:使⽤DLF数据探索,对⽤户⾏为进⾏分析,包括⽤户活跃度、漏⽃模型等
+关注继续查看

简介

本教程通过使⽤数据湖构建(DLF)产品对于淘宝⽤户⾏为样例数据的分析,介绍DLF产品的数据发现和数据探索功能。教程内容包括:1. 服务开通:开通阿⾥云账号及DLF/OSS相关服务2. 样例数据集下载和导⼊:下载样例数据(csv⽂件),并上传⾄OSS3. DLF数据发现:使⽤DLF⾃动识别⽂件Schema并创建元数据表4. DLF数据探索:使⽤DLF数据探索,对⽤户⾏为进⾏分析,包括⽤户活跃度、漏⽃模型等

数据说明

本次测试的数据集来⾃阿⾥云天池⽐赛中使⽤的淘宝⽤户⾏为数据集,为了提⾼性能,我们做了⼀定的裁剪。数据集中以csv的格式存储了⽤户⾏为及商品样例数据。数据范围:2014年12⽉1⽇ - 2014年12⽉7⽇数据格式:

开通DLF和OSS服务(如已开通,直接跳转⾄第⼆步)

1.1 登录阿⾥云账号,点击进⼊DLF控制台⻚⾯

1.2 开通DLF及其依赖OSS服务,并完成授权。(如果已开通可直接跳过)

若之前未开通过DLF服务,会提示⽤户开通服务。点击“开通服务”,进⼊服务开通⻚⾯。
在这里插入图片描述
开通服务后,返回DLF控制台⻚⾯。会提示开通OSS服务,以及授予DLF访问依赖数据源的权限。点击按 钮完成OSS开通及授权。回到DLF控制台⻚⾯,点击刷新检查状态。⻚⾯⾃动跳转⾄DLF控制台主⻚⾯。

在这里插入图片描述
1.3 开通完成后,进⼊DLF控制台主⻚:

在这里插入图片描述

在OSS中导⼊需要分析的数据

2.1 点击链接,下载样例代码⾄本地磁盘。

解压后得到⽂件夹:user_behavior_data,包含item和user个⽂件夹,⾥⾯分别包含了各⾃的csv数据⽂ 件。本次分析主要集中在user⽂件中,数据内容如下。
在这里插入图片描述
2.2 将⽂件上传⾄OSS 进⼊OSS控制台,上传⽂件使⽤已有的Bucket,或创建新的Bucket。
在这里插入图片描述

上传解压后的user_behavior_data⽂件夹。上传后⽬录结构如下所示,item和user为两个表的数据⽂件夹。
在这里插入图片描述

在DLF上抽取元数据

3.1 创建元数据表
DLF中元数据库可以理解为在关系型数据库中的Database,其下⼀级为Table。

DLF控制台中,进⼊元数据库⻚⾯,创建元数据库。
在这里插入图片描述
填⼊数据库名称。并选择刚才存有⽤户⾏为分析的
在这里插入图片描述
如下图所示,元数据库创建成功。

在这里插入图片描述
3.2 发现OSS⽂件中的元数据表信息

进⼊DLF元数据抽取⻚⾯,点击“新建抽取任务”
在这里插入图片描述
填写数据源相关配置,点击下⼀步
在这里插入图片描述
选择过程中需要⽤到的RAM⻆⾊,默认为开通阶段已经授权的“AliyunDLFWorkFlowDefaultRole”。运⾏模式 选择“⼿动执⾏”。抽取策略选择“快速模式”以最快的速度完成元数据发现。

在这里插入图片描述
核对信息后,点击“保存并⽴即执⾏”。

在这里插入图片描述
系统会跳转到元数据抽取列表⻚⾯,新建的任务开始创建并⾃动运⾏。

在这里插入图片描述
约10秒后任务运⾏完成。约10秒后任务运⾏完成。⿏标移到状态栏的问号图标,会看到已经成功创建了两张元数据表。
在这里插入图片描述
点击浮层中的“元数据库”链接,可直接查看该库中相关的表信息。

在这里插入图片描述
点击浮层中的“元数据库”链接,可直接查看该库中相关的表信息。
在这里插入图片描述

点击表详情,查看并确认抽取出来的表结构是否符合预期。
在这里插入图片描述

⾄此,我们通过DLF⾃动发现数据湖CSV⽂件Schema的过程已经完成。下⼀步我们开始针对数据湖内的数 据做分析。

⽤户⾏为数据分析

4.1 数据分析概述
在DLF控制台⻚⾯,点击菜单“数据探索”-“Spark SQL”,进⼊数据探索页面。
在这里插入图片描述
数据分析的过程主要分为三步:

  1. 预览并检查数据信息。
  2. 简单的数据清洗。
  3. 进⾏⽤户活跃度、漏⽃模型和商品热度分析。

4.2 预览并检查数据
在查询框输⼊下⾯的语句,查看⽂件中的数据信息。

-- 预览数据

select * from `dlf_demo ` . ` user ` limit 10;

select * from `dlf_demo ` . `item ` limit 10;

-- ⽤户数 17970

select COUNT(DISTINCT user_id) from `dlf_demo ` . ` user ` ;

-- 商品数 422858

select COUNT(DISTINCT item_id) from `dlf_demo ` . `item ` ;

-- ⾏为记录数 746024

select COUNT(*) from `dlf_demo ` . ` user ` ;

数据内容如下:

在这里插入图片描述
4.3 数据预处理
我们对原始数据进⾏⼀定的处理,已提⾼数据的可读性,并提⾼分析的性能。 将behavior_type修改成更好理解的字符串信息;将⽇志+时间的格式打平到两个单独的列,再加上周信 息,便于分别做⽇期和⼩时级别的分析;过滤掉不必要的字段。并将数据存⼊新表user_log,表格式为 Parquet,按⽇期分区。后续我们会基于新表做⽤户⾏为分析。

-- 数据转换 耗时约40秒-- 创建新表user_log,parquet格式,按⽇期分区

 -- 导⼊数据,拆分⽇期和⼩时,并将behavoior转换成可读性更好的值 

-- 1-click; 2-collect; 3-cart; 4-pay

create table `dlf_demo ` . ` user_log ` 

USING PARQUET 

PARTITIONED BY (date) 

as select 

    user_id, 

    item_id, 

    CASE

     WHEN behavior_type = 1 THEN 'click' 

    WHEN behavior_type = 2 THEN 'collect' 

    WHEN behavior_type = 3 THEN 'cart'

     WHEN behavior_type = 4 THEN 'pay' 

END as behavior, 

item_category, 

time, 

date_format(time, 'yyyy-MM-dd') as date, 

date_format(time, 'H') as hour,

 date_format(time, 'u') as day_of_week 

from `dlf_demo ` . ` user ` ;

-- 查看运⾏后的数据

select * from `dlf_demo ` . ` user_log ` limit 10;

4.4 ⽤户⾏为分析
⾸先,我们基于漏⽃模型,对所有⽤户从点击到加购/收藏到购买的转化情况。

-- 漏⽃分析 耗时13秒

SELECT behavior, COUNT(*) AS total FROM `dlf_demo ` . ` user_log ` GROUP BY behavior ORDER BY total DESC

结果如下:

在这里插入图片描述
然后我们⼀周内每天的⽤户⾏为做统计分析

-- ⽤户⾏为分析 耗时 14秒

SELECT date, day_of_week

COUNT(DISTINCT(user_id)) as uv, 

SUM(CASE WHEN behavior = 'click' THEN 1 ELSE 0 END) AS click, 

SUM(CASE WHEN behavior = 'cart' THEN 1 ELSE 0 END) AS cart, 

SUM(CASE WHEN behavior = 'collect' THEN 1 ELSE 0 END) AS collect,

 SUM(CASE WHEN behavior = 'pay' THEN 1 ELSE 0 END) AS pay 

FROM `dlf_demo ` . ` user_log ` 

GROUP BY date, day_of_week

ORDER BY date

分析结果如下:(由于数据集经过裁剪,对于⼯作⽇和⾮⼯作⽇的结果有失真)
在这里插入图片描述
最后,我们结合商品表,分析出数据集中最受欢迎的是个商品品类

-- 销售最多的品类 耗时 1分10秒

SELECT item.item_category, COUNT(*) AS times

FROM `dlf_demo ` . `item ` item

JOIN `dlf_demo ` . ` user_log ` log

ON item.item_id = log.item_id

WHERE log.behavior= 'pay'

GROUP BY item.item_category

ORDER BY times DESC

LIMIT 10;

结果如下:
在这里插入图片描述
4.5 下载分析结果
DLF提供将分析结果以CSV⽂件的形式下载的功能,启⽤该功能需要提前设置分析结果的保存路径(OSS 路径)。设置后,查询结果会被保存到该路径下。⽤户可以通过DLF⻚⾯上的“下载”按钮直接下载,也可 以直接通过OSS访问和下载该⽂件。 通过点击⻚⾯上的“路径设置”按钮进⾏设置。

在这里插入图片描述
可以选择已有⽂件夹或者新建⽂件夹。
在这里插入图片描述
4.6 保存SQL
通过点击“保存”按钮,可以将该次分析⽤到的sql保存,后续可以直接在“已存查询”中打开做进⼀步的调⽤ 及修改。
在这里插入图片描述

总结
本⽂通过⼀个简单的淘宝⽤户⾏为分析案例,介绍并实践了数据湖构建(DLF)产品的元数据发现和数据 探索功能。

有任何问题,或希望进⼀步探讨数据湖技术,欢迎扫码加⼊数据湖技术群,关注数据湖技术圈。

参考

天池 淘宝⽤户⾏为数据集:https://tianchi.aliyun.com/dataset/dataDetail?dataId=46

Spark SQL ⽇期类型转换:https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html

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

相关文章
我花10个小时,写出了小白也能看懂的阿里数据中台分析
数据中台被誉为大数据的下一站,由阿里兴起,核心思想是数据共享,2015年阿里提出“大中台,小前台”的策略。2018 年因为“腾讯数据中台论”,中台再度成为了人们谈论的焦点。 2019年,似乎人人都在提数据中台,但却不是所有人都清楚数据中台到底意味着什么。
3842 0
《中国人工智能学会通讯》——3.10 社会媒体情感分析:观点、用户、行为
本节书摘来自CCAI《中国人工智能学会通讯》一书中的第3章,第3.10节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。
846 0
MaxCompute 数据计算入门
阿里云的MaxCompute是大数据存储和分析平台。使用DataHub、SLS可以将海量数据轻松同步到MaxCompute,然后使用SQL查询、UDF和Map Reduce进行数据处理、分析和挖掘等任务。
2080 0
保洁A/B test——用户数据分析的魔力
    在1990年代中期,宝洁公司的高管们开始一项研发全新除异味产品的秘密计划。宝洁公司花费了几百万美元开发了一种无色且成本低廉的液体,这种液体能够喷涂在有油烟味的衬衣、发臭的沙发、陈旧的夹克以及污损的汽车内饰上来除去异味。
1091 0
阿里大数据产品Dataphin上线公共云,将助力更多企业构建数据中台
日前,由阿里数据打造的智能数据构建与管理Dataphin,重磅上线阿里云-公共云,开启智能研发版本的公共云公测!在此之前,Dataphin以独立部署方式输出并服务线下客户,已助力多家大型客户高效自动化构建企业数据中台,不仅大幅度提升大数据研发效率,实现数据资产的标准化管理,更通过数据服务体系让数据智能驱动业务。
2338 0
1 游戏逻辑架构,Cocos2d-x游戏项目创建,HelloWorld项目创建,HelloWorld程序分析,(CCApplicationProtocol,CCApplication,AppDeleg
 1 游戏逻辑架构 详细介绍 A 一个导演同一时间只能运行一个场景,场景当中,可以同时加载多个层,一个层可以可载多个精灵。层中亦可以加层。 B  场景切换 sceneàaddChild(layer); layeràaddChild(sprite);
1209 0
95
文章
46
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载