美文网首页数据仓库大数据那些事
数仓基础入门-10-实践篇

数仓基础入门-10-实践篇

作者: 乌拉乌拉儿 | 来源:发表于2019-12-10 23:20 被阅读0次

有不少没涉及过数仓的同学问我一些比较基础的问题,为了更好的理解前面讲到的一些理论,写一个小小的demo体会一下~~
我们要构建一个订单主题,构建订单明细,订单sku,订单粒度三张表。(假设我们只有一个数据域,单纯的为了举个例子,有一个大概的理解)
模型设计及概念可阅读《数仓基础入门》系列历史文章,三言两语就打发了,具体深意自己体会~
ods层表
日志表:ods_order_detail_logs_di

字段 字段含义 字段类型
dt 日期 string
log_time 日志时间 string
order_id 订单id string
user_id 用户id string
store_id 店铺id string
sku_detail 商品列表 string
address 地址 string
order_price 结算金额 decimal(28,6)
dicount_price 折扣金额 decimal(28,6)

user库下user_info表:ods_user_user_info_di

字段 字段含义 字段类型
dt 日期 string
user_id 用户id string
name 用户昵称 string
gender 性别 tinyint
age 年龄 int

sku库下sku_detail表:ods_sku_sku_detail_di

字段 字段含义 字段类型
dt 日期 string
sku_id 商品id string
name 商品名称 string
category_id 分类id string
category_name 分类名称 string
unit_price 单价 decimal(28,6)

shop库下shop_detail表:ods_shop_shop_detail_di

字段 字段含义 字段类型
dt 日期 string
shop_id 商铺id string
name 商铺名称 string
industry_id 行业id string
industry_name 行业名称 string
phone 联系电话 string

模型设计如下:

模型设计

每张表的结构及逻辑如下:
dwd层表
表:dwd_order_detail_logs_di
处理点:

  • 修改store_id 为shop_id,统一字段
  • 解析address结构 国家,省份,城市,街道详细信息
  • 解析sku_detail,分摊每个sku价格
字段 字段含义 字段类型
dt 日期 string
log_time 日志时间 string
order_id 订单id string
user_id 用户id string
shop_id 店铺id string
sku_id 商品id string
country_id 国家id string
province_id 省份id string
city_id 城市id string
street_address 街道详细地址 string
order_price 结算金额 decimal(28,6)
dicount_price 折扣金额 decimal(28,6)

dim层表
1.dim_user_info

  • 处理点:字段name修改
字段 字段含义 字段类型
dt 日期 string
user_id 用户id string
user_name 用户昵称 string
gender 性别 tinyint
age 年龄 int

2.dim_sku_info

  • 处理点:字段name,unit_price修改
字段 字段含义 字段类型
dt 日期 string
sku_id 商品id string
sku_name 商品名称 string
category_id 分类id string
category_name 分类名称 string
sku_unit_price 商品单价 decimal(28,6)

3.dim_shop_info

  • 处理点:字段name,phone修改
字段 字段含义 字段类型
dt 日期 string
shop_id 商铺id string
shop_name 商铺名称 string
industry_id 行业id string
industry_name 行业名称 string
shop_phone 商铺联系电话 string

dws层
dws_order_detail_di

  • 处理点:退化维度到事实表,删掉不必要字段log_time
  • 唯一键:concat(order_id,sku_id)
字段 字段含义 字段类型
dt 日期 string
order_id 订单id string
user_id 用户id string
user_name 用户昵称 string
gender 性别 tinyint
age 年龄 int
shop_id 店铺id string
shop_name 商铺名称 string
industry_id 行业id string
industry_name 行业名称 string
shop_phone 商铺联系电话 string
sku_id 商品id string
sku_name 商品名称 string
category_id 分类id string
category_name 分类名称 string
sku_unit_price 商品单价 decimal(28,6)
country_id 国家id string
province_id 省份id string
city_id 城市id string
street_address 街道详细地址 string
order_price sku结算金额 decimal(28,6)
dicount_price sku折扣金额 decimal(28,6)

dws_order_di

  • 处理点:聚合粒度到订单粒度,聚合指标
  • 唯一键:order_id
字段 字段含义 字段类型
dt 日期 string
order_id 订单id string
user_id 用户id string
user_name 用户昵称 string
gender 性别 tinyint
age 年龄 int
shop_id 店铺id string
shop_name 商铺名称 string
industry_id 行业id string
industry_name 行业名称 string
shop_phone 商铺联系电话 string
country_id 国家id string
province_id 省份id string
city_id 城市id string
street_address 街道详细地址 string
order_price 订单结算金额 decimal(28,6)
dicount_price 订单折扣金额 decimal(28,6)

如有疑问,可关注公众号私信我猴~

相关文章

  • 数仓基础入门-10-实践篇

    有不少没涉及过数仓的同学问我一些比较基础的问题,为了更好的理解前面讲到的一些理论,写一个小小的demo体会一下~~...

  • 数仓入门基础-1-漫谈数仓

    百度百科的定义: 数据仓库,英文名称为Data Warehouse,可简写为DW[https://baike.ba...

  • 数仓入门基础-7-数仓规范

    数仓规范,看似是无关紧要,实则是数仓实施最重要要素,也是衡量数仓标准的重要条件,有了规范,才能尽可能避免一些坑。 ...

  • 数仓入门基础-6-数仓建模

    个人博客:https://renwula.github.io/,本系列基于互联网公司数仓,使用hive搭建数仓 ...

  • 数仓入门基础-3-数仓方法论

    三范式(3NF): 第一范式[https://baike.baidu.com/item/%E7%AC%AC%E4...

  • 数仓基础

    业务流程 三户模型 客户、账户、用户 产品模型 品牌->营销方案->新业务、促销活动 账户模型 数据仓库项目实施矩...

  • dart入门潜修系列教程

    dart入门潜修基础篇之基本语法和内置类型dart入门潜修基础篇之方法dart入门潜修基础篇之操作符dart入门潜...

  • 数仓入门基础-8-模型设计

    1.事实表模型设计 事实表有三种类型 : 事务事实表、周期快照事实表和累积快照事实表。事务事实表用来描述业务过程,...

  • 数仓入门基础-2-技术栈

    1.hive sql >> 五星 在大多数的工作中,主要用的语言就是sql,说难不难,只要做的多了,基本就可以...

  • 适合python基础学习的好书籍

    分享几本python基础学习的书籍给大家 《Python编程:从入门到实践》 《Python编程:从入门到实践》 ...

网友评论

    本文标题:数仓基础入门-10-实践篇

    本文链接:https://www.haomeiwen.com/subject/hnymgctx.html