使用DolphinDB进行淘宝用户行为分析
本页是一篇教程文章:介绍作者与发布日期,概述 DolphinDB 的定位,并说明使用淘宝用户行为数据集开展分析的目标与数据来源。
Source: https://dolphindb.cn/blogs/63
What this page covers
- 活动提示与报名引导信息。
- 文章信息、DolphinDB定位、教程目的与数据集来源。
- Docker 环境封装与 DFS 表结构、分区与字段说明。
- 部署包下载、镜像导入、容器启动、Notebook 访问与 license 处理。
- 用户行为指标计算与按日/时段统计方法(含 Map-Reduce 示例)。
- 商品规模、浏览/销量 Top 与转化相关观察。
- 扩展练习与使用声明。
技能认证特训营第二期限时报名活动
页面顶部包含活动提示与限时报名链接,用于引导参与与获取优惠信息。
- 该区域用于展示活动报名引导信息。
- 该区域提供限时报名入口链接。
使用DolphinDB进行淘宝用户行为分析(文章信息与概述)
本节给出文章信息,并概述 DolphinDB 定位、教程目的、数据集来源与总体分析目标。
- 作者为 Junxi。
- 发布日期为 2021-08-05。
- DolphinDB 被描述为高性能分布式时序数据库,并具备数据分析与分布式计算功能。
- 教程用例是分析淘宝 APP 用户行为数据以进一步分析业务问题。
- 数据集来源为“User Behavior Data from Taobao for Recommendation(阿里云天池数据集)”。
数据与环境封装(Docker + DolphinDB DFS 表结构与分区)
本节说明将 DolphinDB 与数据集封装到 Docker,并介绍 DFS 库、user 表的数据范围、规模、分区方式与字段/行为含义。
- 本教程将 DolphinDB 及数据集封装到 Docker 中。
- Docker 包含分布式数据库 dfs://user_behavior。
- user 表数据时间范围为 2017年11月25日到2017年12月3日。
- user 表被描述为接近一百万用户行为记录(描述性表述)。
- 分区为组合分区:按日期分区与按 userID 哈希分区,总计 180 个分区。
字段与行为类型(摘要)
- 表字段包含:userID、itemID、categoryID、behavior、behaveTime。
- pv 表示浏览商品详情页。
- buy 表示商品购买。
- cart 表示将商品加入购物车。
- fav 表示收藏商品。
下载docker部署包
本节给出 Docker 部署包获取与部署步骤,包括解压、导入镜像、启动容器、访问 Notebook,以及 license 过期处理。
- 使用前需确保 Docker 环境已部署,并提供安装教程链接:https://docs.docker.com/install/。
- 部署包下载地址为 http://www.dolphindb.cn/downloads/bigdata.tar.gz 。
- 解压命令示例:gunzip bigdata.tar.gz。
- 镜像导入命令示例:cat bigdata.tar | docker import - my/bigdata:v1。
- 查看镜像命令示例:docker images。
- 启动容器命令示例包含端口映射与启动脚本:docker run -dt -p 8888:8848 --name test <image id> /bin/bash ./dolphindb/start.sh。
- 浏览器访问 本机IP地址:8888(如 localhost:8888)进入 DolphinDB Notebook。
- 该 Docker license 的有效期信息为 2019年9月1日。
- 若 license 过期,建议用社区版 license 替换 bigdata.tar/dolphindb/dolphindb.lic。
- 社区版下载页面链接为 http://www.dolphindb.cn/alone/alone.php?id=10。
用户行为分析(总体量、转化、UV、按日/时段统计与Map-Reduce示例)
本节通过 DolphinDB 查询统计总体记录量与 PV/UV 等指标,并展示跳失率、转化率与付费用户占比的示例计算,以及按天/按时段的统计方法(含函数封装与 Map-Reduce)。
- user 表记录数为 98,914,533。
- 数据期内 PV 为 88,596,903。
- 数据期内 UV 为 987,984。
- 仅有一次行为记录的用户数为 92。
- 跳失率(onceUserNum/UV*100)为 0.009312。
- 意向行为(fav+cart)次数为 8,318,654。
- 转化率(fav+cart)/PV*100 为 9.389328。
- 购买行为次数为 1,998,976。
- 转化率 buy/PV*100 为 2.256259。
- 转化率 buy/(fav+cart)*100 为 24.030041。
- 付费用户率(buy UV / total UV)为 67.852313。
- exec 与 select 的差异包含:exec 可返回向量/标量/矩阵等结果形式。
- iif 定义为条件运算符 iif(cond, trueResult, falseResult)。
- 周五、周六与周日的访问量被观察到明显增加。
- 方法1:按时间区间分别统计并合并(示例使用 unionAll)。
- 示例包含将统计逻辑封装为函数 calculateBehavior(startTime,endTime)。
- 方法2:使用 Map-Reduce(repartitionDS 生成数据源,mr 并行应用函数并 unionAll 合并)。
- 工作日凌晨(0点到6点)使用率最高,其次为下午(14点到16点)。
- 提供周六与周日的 repartitionDS + mr 计算示例(SatBehavior、SunBehavior)。
- 周末各时间段使用率均高于工作日,且高峰为凌晨(0点到6点)。
商品分析(商品规模、销量/浏览Top、行为汇总与转化观察)
本节统计商品数量与购买分布,并给出销量 Top 与浏览 Top 的示例结果,以及对浏览与购买转化差异的观察。
- 统计期内去重商品数为 4,142,583。
- 销量最高商品示例为 itemID=3122135,购买次数=1,408。
- 被购买一次的商品为 370,747 种,占所有商品的 8.94%。
- 观察:购买次数越多,涉及到的商品数量越少。
- 浏览次数最高商品示例为 itemID=812879,浏览次数=29,720。
- itemID=812879 的销量为 135,且未进入销量前20。
- itemID=3122135 的浏览量为 1777,且未进入浏览量前20。
- itemID=3122135 的“从浏览到购买”转化率被给出为 79.2%。
扩展练习与使用声明
本节提供扩展练习方向,并声明教程用途限制。
- 扩展练习包含:2017.11.25 每小时购买率(购买次数/总行为次数*100%)。
- 扩展练习包含:购买次数最多的用户及其购买最多的商品。
- 扩展练习包含:商品 3122135 各时段购买次数。
- 扩展练习包含:每类别每行为次数。
- 扩展练习包含:每类别销量最高商品。
- 本教程仅供学习使用。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| Blog post | author | Junxi | high |
| Blog post | publication_date | 2021-08-05 | high |
| DolphinDB | positioning | 新一代的高性能分布式时序数据库(time-series database),同时具有丰富的数据分析和分布式计算功能 | medium |
| Tutorial | use_case | 使用DolphinDB对淘宝APP的用户行为数据进行分析,以进一步分析业务问题 | high |
| Dataset | source | User Behavior Data from Taobao for Recommendation(阿里云天池数据集) | high |
| Environment | packaging | 本教程将DolphinDB及数据集封装到docker中 | high |
| DolphinDB Docker package | contains_database | 分布式数据库 dfs://user_behavior | high |
| dfs://user_behavior.user table | data_time_range | 2017年11月25日到2017年12月3日 | high |
| dfs://user_behavior.user table | data_scale | 将近一百万淘宝APP用户的行为记录(描述性) | medium |
| dfs://user_behavior.user table | partitioning_scheme | 组合分区:第一层按日期分区(每天一个分区),第二层按userID哈希分区;共180个分区 | high |
| user table schema | core_fields | userID、itemID、categoryID、behavior(pv/buy/cart/fav)、behaveTime(时间戳) | medium |
| Behavior type | pv_meaning | 浏览商品详情页 | high |
| Behavior type | buy_meaning | 商品购买 | high |
| Behavior type | cart_meaning | 将商品加入购物车 | high |
| Behavior type | fav_meaning | 收藏商品 | high |
| Docker environment | prerequisite | 使用前确保docker环境已经部署好;提供docker安装教程链接 https://docs.docker.com/install/ | high |
| Deployment package | download_url | http://www.dolphindb.cn/downloads/bigdata.tar.gz | high |
| Deployment step | unpack_command | gunzip bigdata.tar.gz | high |
| Deployment step | import_image_command | cat bigdata.tar | docker import - my/bigdata:v1 | high |
| Deployment step | list_images_command | docker images | high |
| Deployment step | run_container_command | docker run -dt -p 8888:8848 --name test <image id> /bin/bash ./dolphindb/start.sh | high |
| DolphinDB Notebook | access | 浏览器访问 本机IP地址:8888(如 localhost:8888)进入DolphinDB Notebook;后续代码在Notebook中执行 | high |
| DolphinDB Docker license | valid_until | 2019年9月1日 | high |
| License replacement | instructions | 若license过期:到DolphinDB官网下载社区版,用社区版license替换 bigdata.tar/dolphindb/dolphindb.lic | high |
| DolphinDB community edition download | url | http://www.dolphindb.cn/alone/alone.php?id=10 | high |
| DolphinDB login example | credentials | login("admin","123456") | high |
| user table | record_count | 98,914,533 | high |
| Taobao app (dataset period) | page_views_PV | 88,596,903 | high |
| Taobao app (dataset period) | unique_visitors_UV | 987,984 | high |
| DolphinDB exec | difference_from_select | select总返回表;exec选择一列返回向量;与聚合函数一起使用返回标量;与pivot by一起使用返回矩阵,便于后续计算 | high |
| Users with exactly one behavior record | count | 92 | high |
| Jump rate (onceUserNum/UV*100) | value_percent | 0.009312 | high |
| Taobao app user stickiness | interpretation | 只浏览一次离开的用户占比几乎可忽略不计,说明淘宝有足够吸引力让用户停留在APP中 | low |
| Intent actions (fav+cart) | count | 8,318,654 | high |
| Conversion rate (fav+cart)/PV*100 | value_percent | 9.389328 | high |
| Buy actions | count | 1,998,976 | high |
| Conversion rate buy/PV*100 | value_percent | 2.256259 | high |
| Conversion rate buy/(fav+cart)*100 | value_percent | 24.030041 | high |
| Purchase intent vs immediate purchase | interpretation | 大部分用户会把中意的商品收藏或加入购物车,但不一定会立即购买 | low |
| Paid user rate (buy UV / total UV) | value_percent | 67.852313 | high |
| Taobao app purchasing behavior | interpretation | 这9天中付费用户占67.8%,说明大部分用户会在淘宝APP上购物 | low |
| DolphinDB iif | definition | 条件运算符 iif(cond, trueResult, falseResult),cond通常是布尔表达式 | high |
| Daily traffic pattern | observation | 周五、周六和周日(2017.11.25、2017.11.26、2017.12.02、2017.12.03)访问量明显增加 | medium |
| Method 1 (time-slice queries) | approach | 分别统计各个时间段数据再合并(示例:2017.11.29多个时间区间查询并unionAll) | high |
| Code reuse | function_example | def calculateBehavior(startTime,endTime){ ... where behaveTime between startTime : endTime } | high |
| Method 2 (Map-Reduce) | approach | 通过DolphinDB Map-Reduce框架:repartitionDS按时间范围生成数据源,mr并行应用caculate函数并unionAll合并结果(示例:2017.11.29) | high |
| Weekday time-of-day usage pattern | observation | 工作日凌晨(0点到6点)使用率最高,其次是下午(14点到16点) | medium |
| Weekend behavior computation examples | examples | 提供周六2017.11.25与周日2017.11.26的repartitionDS + mr计算示例(SatBehavior, SunBehavior) | high |
| Weekend vs weekday app usage | observation | 周六和周日各时间段使用率都比工作日高;周末使用高峰是凌晨(0点到6点) | medium |
| Distinct items in period | count | 4,142,583 | high |
| Top-selling item | item_id_and_buy_count | itemID=3122135,购买次数=1,408 | high |
| Items bought exactly once | count_and_share | 370,747种商品只被购买一次,占所有商品的8.94% | high |
| Distribution of purchases across items | observation | 购买次数越多,涉及到的商品数量越少 | medium |
| Most-viewed item | item_id_and_page_views | itemID=812879,浏览次数=29,720 | high |
| Most-viewed item (812879) | sales_note | 销量仅为135,未进入销量前20 | high |
| Top-selling item (3122135) | page_views_and_conversion | 浏览量为1777;未进入浏览量前20;从浏览到购买的转化率高达79.2% | medium |
| Top-selling item (3122135) | interpretation | 可能是刚需用品,用户不需要太多浏览就决定购买 | low |
| Extension exercises | exercise_list | (1)2017.11.25每小时购买率(购买次数/总行为次数*100%);(2)购买次数最多的用户及其购买最多的商品;(3)商品3122135各时段购买次数;(4)每类别每行为次数;(5)每类别销量最高商品 | high |
| Tutorial | usage_notice | 本教程仅供学习使用 | high |