文档首页/ 数据湖探索 DLI/ 最佳实践/ 数据分析/ 使用DLI进行电商BI报表分析
更新时间:2024-04-29 GMT+08:00

使用DLI进行电商BI报表分析

应用场景

某商城作为中国一家自营式电商,在保持高速发展的同时,沉淀了数亿的忠实用户,积累了海量的真实数据。如何利用BI工具从历史数据中找出商机,是大数据应用在精准营销中的关键问题,也是所有电商平台在做智能化升级时所需要的核心技术。

本案例以某商城真实的用户、商品、评论数据(脱敏后)为基础,利用华为云数据湖探索、数据仓库服务以及永洪BI来分析用户和商品的各种数据特征,可为营销决策、广告推荐、信用评级、品牌监控、用户行为预测提供高质量的信息。

流程指导

使用DLI进行电商数据分析的操作过程主要包括以下步骤:

步骤1:上传数据。将数据上传到对象存储服务OBS,为后面使用DLI完成数据分析做准备。

步骤2:分析数据。使用DLI对待分析的数据进行查询。

数据说明

为保护用户的隐私和数据安全,所有数据均已进行了采样和脱敏。

  • 用户数据
    表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,为后面使用DLI完成数据分析做准备。
  1. 下载OBS Browser+。下载地址请参考《对象存储服务工具指南》。
  2. 安装OBS Browser+。安装步骤请参考《对象存储服务工具指南》。
  3. 登录OBS Browser+。OBS Browser+支持AK方式登录,以及授权码登录两种登录方式。登录步骤请参考《对象存储服务工具指南》。
  4. 通过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:分析数据

  1. 创建数据库、表
    1. 在portal页面上方菜单栏中单击“产品”,单击“大数据”分类中的“数据湖探索 DLI”。
    2. 创建demo数据库,在DLI控制台总览页面,选择“作业管理 > SQL作业”,单击“创建作业”,进入SQL作业编辑器。
    3. 在SQL作业编辑器左侧,选择“数据库”页签,单击创建demo数据库,请参见图1
      图1 创建数据库

      “default”为内置数据库,不能创建名为“default”的数据库。

    4. 选择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路径。

    5. 单击“执行”,创建用户信息表user。
    6. 用相同的方法创建商品表,评价表,行为表。
      • 商品表
        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");
  2. 执行查询

    常用查询语句可以设置为模板,下次查询的时候在模板管理页面可以查看,具体操作可参见《数据湖探索用户指南》中的《模板管理》

    • 分析出10大用户点赞数最多的产品
      1. 执行以下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. 单击“执行”,运行结果如图2所示:
        图2 查询结果
      3. 单击“结果图形化”,对结果进行图形展示:
        图3 结果图形化
    • 分析出10大评级最差的商品
      1. 执行以下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
      2. 单击“执行”,运行结果如图4所示:
        图4 查询结果
      3. 单击“结果图形化”,对结果进行图形展示:
        图5 结果图形化

    此外,还可以分析用户的年龄分布、性别比例、商品评价情况、购买情况、浏览情况等。