业务需求

核心交易指标 :订单数、商品数、支付金额 , 并按销售区域、商品类型进行分析

业务数据库表结构

分析-核心交易 - 图1

业务数据库:

  • 交易订单表(trade_orders)
  • 订单产品表(order_product)
  • 产品信息表(product_info)
  • 产品分类表(product_category)
  • 商家店铺表(shops)
  • 商家地域组织表(shop_admin_org)
  • 支付方式表 ( payments )

导入数据 SQL :

create_sql.sql

交易订单表

订单产品表

产品信息表

产品分类表

商家店铺表

商家地域组织表

支付方式表

数据导入

分析-核心交易 - 图2

分析-核心交易 - 图3

增量数据导入

ODS层

ODS建表:

  • ODS层的表结构与源数据基本类似(列名及数据类型)
  • ODS层的表名遵循统一的规范

ODS层建表

装载数据

加载脚本

缓慢变化维

缓慢变化维

维表拉链表

周期性事实表

小结

分析-核心交易 - 图4

DIM层

分析-核心交易 - 图5

商品分类表

商品地域组织表

支付方式表

商品信息表

DWD层

要处理的表有两张:订单表、订单产品表。其中:
订单表是周期性事实表;为保留订单状态,可以使用拉链表进行处理;
订单产品表普通的事实表,用常规的方法进行处理;
如果有数据清洗、数据转换的业务需求,ODS => DWD
如果没有数据清洗、数据转换的业务需求,保留在ODS,不做任何变化。这
个是本项目的处理方式

订单状态:
-3:用户拒收
-2:未付款的订单
-1:用户取消
0:待发货
1:配送中
2:用户确认收货

DWD层建表

加载脚本

DWS层

DIM、DWD => 数据仓库分层、数据仓库理论

需求:计算当天

  • 全国所有订单信息
  • 全国、一级商品分类订单信息
  • 全国、二级商品分类订单信息
  • 大区所有订单信息
  • 大区、一级商品分类订单信息
  • 大区、二级商品分类订单信息
  • 城市所有订单信息
  • 城市、一级商品分类订单信息
  • 城市、二级商品分类订单信息

需要的信息:订单表、订单商品表、商品信息维表、商品分类维表、商家地域维表

  • 订单表 => 订单id、订单状态
  • 订单商品表 => 订单id、商品id、商家id、单价、数量
  • 商品信息维表 => 商品id、三级分类id
  • 商品分类维表 => 一级名称、一级分类id、二级名称、二级分类id、三级名称、三级分类id
  • 商家地域维表 => 商家id、区域名称、区域id、城市名称、城市id
  • 订单表、订单商品表、商品信息维表 => 订单id、商品id、商家id、三级分类id、单价、数量(订单明细表)
  • 订单明细表、商品分类维表、商家地域维表 => 订单id、商品id、商家id、三级分类名称、三级分类名称、三级分类名称、单价、数量、区域、城市 => 订单明细宽表

DWS层建表

dws_trade_orders(订单明细)由以下表轻微聚合而成:

  • dwd.dwd_trade_orders (拉链表、分区表)
  • ods.ods_trade_order_product (分区表)
  • dim.dim_trade_product_info(维表、拉链表)

dws_trade_orders_w(订单明细宽表)由以下表组成:

  • ads.dws_trade_orders (分区表)
  • dim.dim_trade_product_cat(分区表)
  • dim.dim_trade_shops_org(分区表)

加载脚本

ADS层

需求:计算当天

  • 全国所有订单信息
  • 全国、一级商品分类订单信息
  • 全国、二级商品分类订单信息
  • 大区所有订单信息
  • 大区、一级商品分类订单信息
  • 大区、二级商品分类订单信息
  • 城市所有订单信息
  • 城市、一级商品分类订单信息
  • 城市、二级商品分类订单信息

ADS层建表

加载脚本

数据导出

ads_trade_order_analysis 分区表,使用 DataX 导出到 MySQL

小结

分析-核心交易 - 图6