首页 > 其他分享 >数据仓库之商品订单数仓开发

数据仓库之商品订单数仓开发

时间:2023-06-03 09:15:20浏览次数:51  
标签:订单数 ods 数据仓库 用户 开发 user dwd 数据 order

ods 层

在 ods_mall 中需要创建以下针对商品订单数据的表

表名                    说明             导入方式
ods_user               用户信息表        全量
ods_user_extend        用户扩展表        全量
ods_user_addr          用户收货地址表    全量
ods_goods_info         商品信息表        全量
ods_category_code      商品类目码表      全量
ods_user_order         订单表            增量
ods_order_item         订单商品表        增量
ods_order_delivery     订单收货表        增量
ods_payment_flow       支付流水表        增量

dwd 层

针对 ods 层表中的数据进行清洗,参考数据清洗规则,按照实际情况对数据进行清洗

由于数据库中的数据都是比较规整的,其实可以直接迁移到 dwd 层,不过为了以防万一,还是对 ods 层的数据进行过滤,主要过滤表中的 id 字段为 null 的数据,在关系型数据库中表中的 id 字段都是主键,肯定是不为 null 的,我们在这里进行判断主要是为了避免数据在采集过程中出现问题。

需求分析

需求一:用户信息宽表
需求二:电商 GMV
需求三:商品相关指标
需求四:用户行为漏斗分析

需求一:用户信息宽表

宽表主要是便于使用,在使用的时候不至于每次都要关联很多张表

用户信息宽表包括服务端中的 user 表、user_extend 表

如果有需求的话其实还可以把用户的一些其它维度的数据关联过来,例如:当日的下单数量、消费金额等等指标,

实现思路如下:
对 dwd_user 表和 dwd_user_extend 表执行 left join 操作,通过 user_id 进行关联即可,将结果数据保存到 dws_user_info_all 表中

问题:如何将服务端的数据和客户端的数据通过用户维度关联起来?
之前统计的客户端数据(用户行为数据)针对用户相关的指标都是使用的 xaid。但是在服务端数据中用户信息只有 user_id。这两份数据如果先要关联起来,还需要在用户行为数仓中提取一个表,表里面只需要有两列:

user_id 和 xaid。这样就可以把客户端数据和服务端数据中的用户关联起来了。

需求二:电商 GMV

GMV:Gross Merchandise Volume,是指一定时间段内的成交总金额

GMV 多用于电商行业,这个实际指的是拍下的订单总金额, 包含付款和未付款的部分。
我们在统计的时候就可以将订单表中的每天的所有订单金额全部都累加起来就可以获取到当天的 GMV 了

实现思路:
对 dwd_user_order 表中的数据进行统计即可,通过 order_money 字段可以计算出来 GMV,将结果数据保存到表 app_gmv 中

需求三:商品相关指

针对这个需求我们主要统计两个指标

  1. 商品销售情况(商品名称,一级类目,订单总量,销售额)
  2. 商品品类偏好 Top10(商品一级类目,订单总量)

商品销售情况

这个指标主要统计商品名称,一级类目,订单总量,销售额这些字段信息

订 单 中 的 详 细 信 息 是 在 dwd_order_item 表 中 , 需 要 关 联 dwd_goods_info 和dwd_category_code 获取商品名称和商品一级类目信息

在这最好是基于这些表先构建一个商品订单信息的宽表 dws_order_goods_all_info,便于后期其它需求复用。

然后基于这个宽表统计出来这个指标需要的信息,保存到表 app_goods_sales_item

商品品类偏好 Top10

这个指标可以在第一个指标的基础之上,根据一级类目进行分组,按照类目下的订单总量排序,取 Top10,保存到表 app_category_top10 中

问题:如果想要统计商品品类内最受用户喜欢的 Top10 商品,如何统计?
基于 dws_order_goods_all_info 表中的数据,根据商品品类进行分区,根据商品的订单总量进行排序,获取每个品类中用户喜欢的 Top10 商

需求四:漏斗分析

其实就是根据用户的行为一层一层分析用户的转化率。

活跃-->商品详情页-->下单-->支付

每一个指标对应的表:

  • 活跃:dws_user_active_history
  • 商品详情页:dwd_good_item
  • 下单:dwd_user_order
  • 支付:dwd_user_order

实现思路:

  • 首先统计当天活跃用户数量
  • 接着统计当天进入了多少个商品详情页
  • 接着统计当天下单的数量
  • 最后统计当天支付的数量

并且计算每一层的转化率。最终把结果数据保存到表 app_user_conver_funnel 中

参考

【腾讯文档】13-2 慕课网-学习资料预览
数据仓库-CSDN

标签:订单数,ods,数据仓库,用户,开发,user,dwd,数据,order
From: https://www.cnblogs.com/strongmore/p/17369095.html

相关文章

  • 数据仓库之订单拉链表实战
    什么是拉链表针对订单表、订单商品表,流水表,这些表中的数据是比较多的,如果使用全量的方式,会造成大量的数据冗余,浪费磁盘空间。所以这种表,一般使用增量的方式,每日采集新增的数据。在这注意一点:针对订单表,如果单纯的按照订单产生时间增量采集数据,是有问题的,因为用户可能今天下单,明......
  • 移动开发之设计模式-组合模式(IOS&Android)
    组合模式组合模式(CompositePattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相......
  • 数据仓库项目介绍与分析
    项目效果展示本身我们这个数据仓库项目其实是一个纯后台项目,不过为了让大家能够更加直观的感受项目的效果,我们可以基于数据仓库中的数据统计一些指标进行展现。我们这个项目要讲的重点不是这个大屏,这个大屏只是一个效果,为了让大家感受更加直观一些而已,我们主要讲的是这些指标对......
  • 零声学院 音视频高级教程 ubuntu16.04 ffmpeg开发环境搭建
    配置环境ubuntudesktop16.04+ffmpeg4.2.1建议在《编译与安装》一节,都使用源码的方式编译和安装,本编译安装方式最终生成的皆为静态库。部分命令说明:git-C[git-command]指定其它路径的仓库执行命令注意,-C要在命令之前创建目录在home目录下创建ffmpeg_sources:用于下载源文......
  • Rust Web 全栈开发之增加教师管理功能
    RustWeb全栈开发之增加教师管理功能增加教师管理功能目标ActixHTTPServerActixAppRoutesGET/teachersGET/teachers/POST/teachersPUT/teachers/DELETE/teachers/Handlersget_all_teachersget_teacher_detailspost_new_teacherupdate_teacher_de......
  • 浅谈业务开发与非业务开发
    软件开发在谈及业务开发与非业务开发之前,首先他们都是软件开发,那么软件开发的流程是怎样的呢?我们先来了解一下软件开发的流程。通常情况下软件开发的流程是这样的在软件开发流程中每个阶段对应相应的内容如下:需求分析:在需求分析阶段,需要明确用户的需求和期望,定义软件的功能、特性和......
  • 关于开发- springBoot 的中间件
    数据库中间件:主要用于存储和管理应用程序的数据。消息队列中间件:主要用于异步处理任务、削峰填谷、分布式解耦等场景。缓存中间件:主要用于提供快速的数据访问和响应能力,降低系统负载。搜索引擎中间件:主要用于实现全文搜索、分析数据、大规模数据聚合等场景。消息......
  • 用esp8266开发板制作WiFi Killer
    一、esp8266开发板获取【ESP8266串口wifi模块NodeMCULuaV3物联网开发板CH340】我是用的这个,某宝可购买,14元左右,这个是使用的CH340串口芯片的。还有一种在某宝上可以看到是使用的CP21x型号的芯片的,这里两种都可以的。二、安装驱动以自己的开发板上的串口芯片的型号为准,按需选......
  • 【web 开发】PHP8中对数组操作的新变化
    自动创建元素的顺序改变在PHP8中,引用赋值时,自动创建的数组元素或者对象属性的顺序和PHP7版本相比发生了变化,下面我们通过例子来体验下变化在哪里.<?php$array=[];$array['a']=&$array['b'];$array['b']=1;echo"\n";var_dump($array);?>执行结果如下:这个结果是PHP8......
  • app开发公司哪家好?开发app为什么找app开发公司?
    开发app为什么找app开发公司?移动互联网时代已经开始,手机已经成为最重要的玩具",APP应用程序开发的这个大蛋糕也达到了井喷状态。对于企业来说,展示APP应用程序的开发,以前主要是通过网站展示,但现在,网站的入口太深,功能有限,开发APP已经成为最好的选择,开发APP全国最好的是广州的APP开发公......