电商App项目的离线数仓

参考项目网址:(1)https://hub.fastgit.org/HammingMa/gmall-dw

                          (2)warehouse: 电商数据仓库

相关概念 

SKU,SPU

首先通过检索搜索出来的商品列表中,每个商品都是一个SKU。每个SKU都有自己独立的库存数。也就是说每一个商品详情展示都是一个SKU。

比如,咱们购买一台iPhoneX手机,iPhoneX手机就是一个SPU,但是你购买的时候,不可能是以iPhoneX手机为单位买的,商家也不可能以iPhoneX为单位记录库存。必须要以什么颜色什么版本的iPhoneX为单位。比如,你购买的是一台银色、128G内存的、支持联通网络的iPhoneX ,商家也会以这个单位来记录库存数。那这个更细致的单位就叫库存单元(SKU)。

维度建模:
维度建模是一种将数据结构化的逻辑设计方法。首先介绍两个最重要的概念:事实,维度。

维度建模将业务过程分为度量和上下文。度量是由业务过程和支持它们的业务源系统获取的,常常以数值形式体现,我们称它们为“事实”。

事实由大量的文本形式的上下文包围着,这些文本形式的上下文是伴随着事实产生而确定的。这些上下文被直观的分割成多个独立的模块我们将其称作“维”。维度描述了事实的相关信息,比如who,what,when,where,why等等。

例如小明在淘宝上下单100元买了两箱牛奶,100元和2箱就是事实,而小明,牛奶,时间,配送地址等等这些信息就是维
维度模型主要应用于OLAP系统中,因为关系模型虽然冗余少,但是在大规模数据,跨表分析统计查询过程中,会造成多表关联,这会大大降低执行效率。

所以把相关各种表整理成两种:事实表和维度表两种。所有维度表围绕着事实表进行解释。

数据仓库里表的分类

1)实体表:

一个现实存在的业务对象,比如用户,商品,商家,销售员等等。

例如用户表可以包含

id

姓名

生日

性别

邮箱

用户等级

创建时间

同步策略:数据量比较小,通常可以做每日全量,就是每天存一份完整数据。即每日全量。

 2)维度表:

一般是指对应一些业务状态,代码的解释表。也可以称之为码表。

比如地区表,订单状态,支付方式,审批状态,商品分类等等。,

例如订单状态表可以包含 

编号

订单状态名称

 同步策略:

  针对可能会有变化的状态数据可以存储每日全量。

  没变化的客观世界的维度(比如性别,地区,民族,政治成分,鞋子尺码)可以就存一份固定值。

3)事务型事实表,一般指随着业务发生不断产生的数据。特点是一旦发生不会再变化。

一般比如,交易流水,操作日志,出库入库记录等等。

例如交易流水表包含

编号

对外业务编号

订单编号

用户编号

支付宝交易流水编号

支付金额

交易内容

支付类型

支付时间

同步策略:以做成每日增量表,即每日创建一个分区存储。

4)周期型事实表,一般指随着业务发生不断产生的数据。

与事务型不同的是,数据会随着业务周期性的推进而变化。

 比如订单,其中订单状态会周期性变化。再比如,请假、贷款申请,随着批复状态在周期性变化。

例如订单表包含:

订单编号

订单金额

订单状态

用户id

支付方式

支付流水号

创建时间

操作时间 

 同步策略:需要得到每日新增及变化量。为方便的取到某个时间切片的快照数据,用利用每日新增和变化表,制作一张拉链表。

原始数据

从日志中抽取用户行为数据(json格式),包括启动数据和事件行为数据(这里模拟生成),存到指定文件。还有从数据库表里获得的相关数据,也存到指定文件。

(1)启动数据包括 :

  //设备id // 用户id // 程序版本号 5,6等 //程序版本名 v1.1.1 // 安卓系统版本 //设置日志类型 start appStart.setEn("start"); // 语言 es,en,pt // 渠道号 从哪个渠道来的 appStart.setSr(getRandomChar(1)); // 区域 // 手机品牌 ba ,手机型号 md,就取2位数字了 // 嵌入sdk的版本 // gmail // 屏幕宽高 hw // 客户端产生日志时间 // 手机网络模式 3G,4G,WIFI // 拉丁美洲 西经34°46′至西经117°09;北纬32°42′至南纬53°54′ // 经度 // 纬度 // 入口 // 开屏广告类型 // 状态 // 加载时长 // 失败码 // 扩展字段

数据例子

{"action":"1","ar":"MX","ba":"HTC","detail":"201","en":"start","entry":"1","extend1":"","g":"RWT7HN31@gmail.com","hw":"750*1134","l":"pt","la":"-9.0","ln":"-54.0","loading_time":"1","md":"HTC-17","mid":"31","nw":"WIFI","open_ad_type":"2","os":"8.2.6","sr":"C","sv":"V2.0.8","t":"1632675539796","uid":"31","vc":"11","vn":"1.3.6"}

(2)事件行为数据分为下面几种:

1.商品点击,展示 2.商品详情页 3. 商品列表页 4.广告 5.消息通知 6.用户前台活跃 7.用户后台活跃 8. 故障日志 9.用户评论 10. 用户收藏 11.用户点赞

数据例子

1632709453025|{"cm":{"ln":"-44.7","sv":"V2.8.4","os":"8.1.1","g":"TTF03B8I@gmail.com","mid":"32","nw":"3G","l":"en","vc":"17","hw":"750*1134","ar":"MX","uid":"32","t":"1632706083536","la":"13.4","md":"sumsung-5","vn":"1.0.3","ba":"Sumsung","sr":"M"},"ap":"app","et":[{"ett":"1632637800076","en":"loading","kv":{"extend2":"","loading_time":"0","action":"3","extend1":"","type":"2","type1":"201","loading_way":"2"}},{"ett":"1632628780999","en":"notification","kv":{"ap_time":"1632652229365","action":"2","type":"3","content":""}},{"ett":"1632652586798","en":"active_foreground","kv":{"access":"","push_id":"1"}},{"ett":"1632649878013","en":"favorites","kv":{"course_id":7,"id":0,"add_time":"1632616387020","userid":3}},{"ett":"1632631836363","en":"praise","kv":{"target_id":5,"id":8,"type":3,"add_time":"1632668604153","userid":4}}]}

&#x

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值