美文网首页数据仓库大数据那些事
数仓基础入门-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-实践篇

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