数据湖构建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”,进?数据探索页面。
文章图片
数据分析的过程主要分为三步:
- 预览并检查数据信息。
- 简单的数据清洗。
- 进??户活跃度、漏?模型和商品热度分析。
在查询框输?下?的语句,查看?件中的数据信息。
-- 预览数据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 ?户?为分析
?先,我们基于漏?模型,对所有?户从点击到加购/收藏到购买的转化情况。
【数据湖构建DLF数据探索快速入门-淘宝用户行为分析】-- 漏?分析 耗时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/da...
Spark SQL ?期类型转换:https://spark.apache.org/docs...
近期数据湖活动
2021年6月24日至7月2日工作日期间 完成该场景,即可领取polo衫一件。先到先得
领取地址:https://developer.aliyun.com/...
推荐阅读
- Flutter的ListView
- 构建App(一)(框架与结构)
- 如何在手机上查看测试vue-cli构建的项目
- 用Go构建区块链——3.持久化和命令行
- 运用flutter|运用flutter 构建一个发布版(release)APK
- 8、Flask构建弹幕微电影网站-搭建后台页面-密码修改、主页控制面板
- 倾诉
- 构建你的知识体系,让你学习效能倍增!
- 理解和构建自我|理解和构建自我 ——致女儿的第三封信
- 有手就行7——*项目构建细节2-钩子(webhook)|有手就行7——*项目构建细节2-钩子(webhook) 配置