使用DLI进行电商BI报表分析
应用场景
某商城作为中国一家自营式电商,在保持高速发展的同时,沉淀了数亿的忠实用户,积累了海量的真实数据。如何利用BI工具从历史数据中找出商机,是大数据应用在精准营销中的关键问题,也是所有电商平台在做智能化升级时所需要的核心技术。
本案例以某商城真实的用户、商品、评论数据(脱敏后)为基础,利用华为云数据湖探索、数据仓库服务以及永洪BI来分析用户和商品的各种数据特征,可为营销决策、广告推荐、信用评级、品牌监控、用户行为预测提供高质量的信息。
流程指导
使用DLI进行电商数据分析的操作过程主要包括以下步骤:
步骤1:上传数据。将数据上传到对象存储服务OBS,为后面使用DLI完成数据分析做准备。
步骤2:分析数据。使用DLI对待分析的数据进行查询。
具体样例数据及详细SQL语句可以通过数据包进行下载。
数据说明
为保护用户的隐私和数据安全,所有数据均已进行了采样和脱敏。
- 用户数据
表1 用户数据 字段名称
字段类型
字段说明
取值范围
user_id
int
用户ID
脱敏
age
int
年龄段
-1表示未知
gender
int
性别
- 0表示男
- 1表示女
- 2表示保密
rank
Int
用户等级
有顺序的级别枚举,越高级别数字越大
register_time
string
用户注册日期
单位:天
- 商品数据
表2 商品数据 字段名称
字段类型
字段说明
取值范围
product_id
int
商品编号
脱敏
a1
int
属性1
枚举,-1表示未知
a2
int
属性2
枚举,-1表示未知
a3
int
属性3
枚举,-1表示未知
category
int
品类ID
脱敏
brand
int
品牌ID
脱敏
- 评价数据
表3 评价数据 字段名称
字段类型
字段说明
取值范围
deadline
string
截止时间
单位:天
product_id
int
商品编号
脱敏
comment_num
int
累计评论数分段
- 0表示无评论
- 1表示有1条评论
- 2表示有2-10条评论
- 3表示有11-50条评论
- 4表示大于50条评论
has_bad_comment
int
是否有差评
0表示无,1表示有
bad_comment_rate
float
差评率
差评数占总评论数的比重
- 行为数据
表4 行为数据 字段名称
字段类型
字段说明
取值范围
user_id
int
用户编号
脱敏
product_id
int
商品编号
脱敏
time
string
行为时间
-
model_id
string
模块编号
脱敏
type
string
- 浏览(指浏览商品详情页)
- 加入购物车
- 购物车删除
- 下单
- 关注
- 点击
-
步骤1:上传数据
- 下载OBS Browser+。下载地址请参考《对象存储服务工具指南》。
- 安装OBS Browser+。安装步骤请参考《对象存储服务工具指南》。
- 登录OBS Browser+。OBS Browser+支持AK方式登录,以及授权码登录两种登录方式。登录步骤请参考《对象存储服务工具指南》。
- 通过OBS Browser+上传数据。
在OBS Browser+页面单击“创建桶”,按照要求选择“区域”和填写“桶名”(例如:DLI-demo),创建桶成功后,返回桶列表,单击桶DLI-demo。OBS Browser+提供强大的拖拽上传功能,您可以将本地的一个或多个文件或者文件夹拖拽到对象存储的对象列表或者并行文件系统的对象列表中;同时您也可以将文件或文件夹拖拽到指定的目录上,这样可以上传到指定的目录中。
单击Best_Practice_04.zip获取本示例的测试数据,解压“Best_Practice_04.zip”压缩包,解压后将data文件夹上传到OBS桶根目录下。测试数据目录说明如下:
- user表数据:data/JData_User
- product表数据:data/JData_Product
- comment表数据:data/JData_Product/JData_Comment
- action表数据:data/JData_Action
步骤2:分析数据
- 创建数据库、表
- 在portal页面上方菜单栏中单击“产品”,单击“大数据”分类中的“数据湖探索 DLI”。
- 创建demo数据库,在DLI控制台总览页面,选择“作业管理 > SQL作业”,单击“创建作业”,进入SQL作业编辑器。
- 在SQL作业编辑器左侧,选择“数据库”页签,单击创建demo数据库,请参见图1。
“default”为内置数据库,不能创建名为“default”的数据库。
- 选择demo数据库,在编辑框中输入以下SQL语句:
create table user( user_id int, age int, gender int, rank int, register_time string ) USING csv OPTIONS (path "obs://DLI-demo/data/JData_User")
上述SQL语句中的文件路径为实际存放数据的OBS路径。
- 单击“执行”,创建用户信息表user。
- 用相同的方法创建商品表,评价表,行为表。
- 商品表
create table product( product_id int, a1 int, a2 int, a3 int, category int, brand int ) USING csv OPTIONS (path "obs://DLI-demo/data/JData_Product")
- 评价表
create table comment( deadline string, product_id int, comment_num int, has_bad_comment int, bad_comment_rate float ) USING csv OPTIONS (path "obs://DLI-demo/data/JData_Comment")
- 行为表
create table action( user_id int, product_id int, time string, model_id string, type string ) USING csv OPTIONS (path "obs://DLI-demo/data/JData_Action");
- 商品表
- 执行查询
常用查询语句可以设置为模板,下次查询的时候在模板管理页面可以查看,具体操作可参见《数据湖探索用户指南》中的《模板管理》。
- 分析出10大用户点赞数最多的产品
- 执行以下SQL语句,可以分析出10大用户点赞数最多的产品。
SELECT product.brand as brand, COUNT(product.brand) as like_count from action JOIN product ON (action.product_id = product.product_id) WHERE action.type = 'like' group by brand ORDER BY like_count desc limit 10
- 单击“执行”,运行结果如图2所示:
- 单击“结果图形化”,对结果进行图形展示:
图3 结果图形化
- 执行以下SQL语句,可以分析出10大用户点赞数最多的产品。
- 分析出10大评级最差的商品
- 执行以下SQL语句,可以分析出10大评级最差的商品。
SELECT DISTINCT product_id, comment_num, bad_comment_rate from comment where comment_num > 3 order by bad_comment_rate desc limit 10
- 单击“执行”,运行结果如图4所示:
- 单击“结果图形化”,对结果进行图形展示:
图5 结果图形化
- 执行以下SQL语句,可以分析出10大评级最差的商品。
此外,还可以分析用户的年龄分布、性别比例、商品评价情况、购买情况、浏览情况等。
- 分析出10大用户点赞数最多的产品