数据湖构建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”,进⼊数据探索页面。
数据分析的过程主要分为三步:
预览并检查数据信息。
简单的数据清洗。
进⾏⽤户活跃度、漏⽃模型和商品热度分析。
4.2 预览并检查数据
在查询框输⼊下⾯的语句,查看⽂件中的数据信息。
-- 预览数据select * from `dlf_demo ` . ` user ` limit 10;select * from `dlf_demo ` . `item ` limit 10;-- ⽤户数 17970select COUNT(DISTINCT user_id) from `dlf_demo ` . ` user ` ;-- 商品数 422858select COUNT(DISTINCT item_id) from `dlf_demo ` . `item ` ;-- ⾏为记录数 746024select COUNT(*) from `dlf_demo ` . ` user ` ;
数据内容如下:
4.3 数据预处理
我们对原始数据进⾏⼀定的处理,已提⾼数据的可读性,并提⾼分析的性能。 将behavior_type修改成更好理解的字符串信息;将⽇志+时间的格式打平到两个单独的列,再加上周信 息,便于分别做⽇期和⼩时级别的分析;过滤掉不必要的字段。并将数据存⼊新表user_log,表格式为 Parquet,按⽇期分区。后续我们会基于新表做⽤户⾏为分析。
-- 数据转换 耗时约40秒-- 创建新表user_log,parquet格式,按⽇期分区-- 导⼊数据,拆分⽇期和⼩时,并将behavoior转换成可读性更好的值 -- 1-click; 2-collect; 3-cart; 4-paycreate table `dlf_demo ` . ` user_log ` USING PARQUET PARTITIONED BY (date) as select user_id, item_id, CASEWHEN 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_weekCOUNT(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_weekORDER BY date
分析结果如下:(由于数据集经过裁剪,对于⼯作⽇和⾮⼯作⽇的结果有失真)
最后,我们结合商品表,分析出数据集中最受欢迎的是个商品品类
-- 销售最多的品类 耗时 1分10秒SELECT item.item_category, COUNT(*) AS timesFROM `dlf_demo ` . `item ` itemJOIN `dlf_demo ` . ` user_log ` logON item.item_id = log.item_idWHERE log.behavior= 'pay'GROUP BY item.item_categoryORDER BY times DESCLIMIT 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
近期数据湖活动
2021年6月24日至7月2日工作日期间 完成该场景,即可领取polo衫一件。先到先得
领取地址:https://developer.aliyun.com/adc/series/activity/dlf
数据湖构建DLF数据探索快速入门-淘宝用户行为分析相关推荐
- 云起实验室:数据湖构建DLF数据探索快速入门-淘宝用户行为分析
点击立即参与云产品场景体验https://developer.aliyun.com/adc/scenario/c46e97cc1ccf4a31881296ee95bb607a?spm=a2c6h.13 ...
- 体验实验室之数据湖构建DLF专场,动手实践完成小任务,领取定制polo衫!
阿里云体验实验室 是为开发者打造的一站式体验学习平台,在这里你可以了解并亲自动手体验各类云产品和云计算基础,无需关注资源开通和底层产品,无需任何费用.只要有一颗想要了解云.学习云.体验云的心,这里就是 ...
- MySQL数据项目分析实战——淘宝用户行为分析
MySQL数据项目分析实战--淘宝用户行为分析 一.项目背景 二.项目目标 2.1分析目的 2.2分析维度 三.数据的收集与整理 3.1数据来源 3.2数据说明 3.3理解数据 3.4导入数据 四.数 ...
- 数据湖构建DLF快速入门 实验笔记
一.登录阿里云账号,点击进入DLF控制界面 DLF控制台⻚⾯https://dlf.console.aliyun.com/cn-hangzhou/home?spm=a2c6h.13858378.0.0 ...
- 【数据分析实战经验】淘宝用户行为分析①-AARRR、RMF模型(数据量:百万级,工具mysql)
电商平台的用户行为分析,能一定程度的推动运营.产品等迭代,提供决策支持. 数据集来源: 阿里云池 样本量: 3835331 方法工具: 本文用2017年11月至12月的淘宝用户行为,AARRR模型及R ...
- 探索用户行为(淘宝用户行为分析)
一.项目介绍 数据来源:天池,基于淘宝APP平台数据 数据内容:网购订单信息 字段: User_id:用户身份 item_id:商品ID behavior_type:用户行为类型(点击.收藏.加购.支 ...
- 【入门数据分析】淘宝用户行为分析
前言 分析目的:本文基于淘宝1年的交易数据对其用户行为进行多角度分析,对相关问题进行解释并提供建议. 分析工具:MySQL.excel 主要模型:AARRR模型 一.分析问题和思路 本文采用淘宝电商的 ...
- DLF +DDI 一站式数据湖构建与分析最佳实践
简介: 本文由阿里云数据湖构建 DLF 团队和 Databricks 数据洞察团队联合撰写,旨在帮助您更深入地了解阿里云数据湖构建(DLF)+Databricks 数据洞察(DDI)构建一站式云上数据 ...
- DLF + DDI 一站式数据湖构建与分析最佳实践
数据湖技术圈 作者 陈鑫伟(熙康), 阿里云计算平台事业部技术专家 冯加亮(加亮), 阿里云计算平台事业部技术研发 1 背景 随着数据时代的不断发展,数据量爆发式增长,数据形式也变得更加多样.传 ...
最新文章
- myeclipse定位代码文件位置
- Android 滑动显示下一层界面
- tutorial_coreos 01-01-install 2015-05-27
- php内容管理系统开源源码,fcontex 开源内容管理系统 php版 v1.0.3
- Zookeeper之java api详解
- W3100SM-S 短信猫代码发送 上
- WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿
- 用C语言数组编写贪吃蛇
- andorid studio 无法识别app项目解决
- Java项目(SpringBoot+MyBatis-Plus):国内新冠肺炎疫情大数据可视化平台+疫情数据后台管理系统
- 计算机程序计算排列组合(规避溢出)
- 机器学习之手写字体(digits)识别——利用sklearn实现
- 【Java】认识Sring、String的常见操作和StringBuffer 和StringBuilder的区别【字符串详解】
- 发外链的平台有哪些,六个免费发外链的优秀平台
- 初创跨境电商公司,让Callnovo的海外客服成为您出海的桨
- vmware虚拟机无法u盘启动的解决办法
- C语言实现乘方运算---m的n次方(附完整源码)
- java中的轮子是什么意思_后端的轮子(一)
- 论文参考文献格式标准
- android好玩界面,哪些好玩的APP富有好看界面?推荐一波设计独到的APP