跳到主要内容

统计架构

1 统计优化思路

传统的统计功能为统计整个数据库中的数据进行整理,在前端展示,这样的统计主要有以下几个问题:

  1. 表结构复杂,在统计业务中,很多数据、字段用不到,造成性能浪费,影响响应时间。新的统计独立与原库表之外,从新构造新的表结构,对表的字段进行精简。
  2. 统计多数业务会使用联合查询。因为原始的关系型数据库,表结构一般只存储显示字段以及与其他表关联的字段,通常情况下不会为其它业务提供字段的冗余,这样的数据查询起来的联合查询sql会格外的复杂,不易与开发,且性能较低。新的统计对表结构进行了调整,相当于生成一个专门为统计服务的表结构,提高统计性能。
  3. 提高服务器性能的路上,为了提高数据库性能,分库/分表 是必不可少的选择之一,对于分表后的数据进行统计,那么难度更是复杂,核心业务需要兼顾统计业务来进行 分库/分表 操作,包袱很重。拆离统计之后,统计可以专心为自己的业务,数据进行优化操作,不再需要

2 统计库数据生成策略

9F60E60-0C75-43B1-A99E-7E3D777E3ED

3 数据库结构

  1. 会员数据表
字段名提示文字类型长度是否主键
idid整数10
member_id会员id整数10
member_name会员名字字符串255
create_time注册日期整数12
  1. 订单数据表
字段名提示文字类型长度是否主键
idid整数10
create_time订单创建时间整数12
ship_cityid市id整数10
ship_provinceid省id整数10
goods_num订单商品数量字符串255
order_price订单金额字符串255
pay_status付款状态字符串255
order_status订单状态字符串255
seller_id商家id整数10
buyer_id会员id整数10
sn订单编号字符串255
seller_name商家名称大文本255
buyer_name商家名称大文本255
  1. 订单商品表
字段名提示文字类型长度是否主键
idid整数10
create_time创建时间整数12
category_id分类id整数10
category_path分类path字符串255
sub_total小计浮点型20,2
price商品单价浮点型20,2
goods_num数量整数10
goods_name商品名称字符串255
goods_id商品id整数10
order_sn订单编号字符串255
industry_id行业id长整型10

  1. 售后数据表
字段名提示文字类型长度是否主键
idid整数10
member_id会员id整数10
seller_id商家id整数10
order_sn订单sn字符串255
refund_sn售后订单sn字符串255
refund_price退还金额浮点型20,2
create_time创建日期整数12
  1. 店铺流量数据表
字段名提示文字类型长度是否主键
idid整数10
seller_id店铺id整数10
vs_year年份整数4
vs_month月份整数4
vs_day日期整数4
vs_num访问量整数10
  1. 商品流量数据年表
字段名提示文字类型长度是否主键
idid整数10
seller_id店铺id整数10
goods_id商品id整数10
goods_name商品名称字符串50
vs_year年份整数4
vs_num访问量整数10
  1. 商品流量数据年表
字段名提示文字类型长度是否主键
idid整数10
seller_id店铺id整数10
goods_id商品id整数10
goods_name店铺名称字符串50
vs_month月份整数4
vs_num访问量整数10

4 统计错误码

  1. 异常类

    StatisticsException

  2. 错误码

    类:StatisticsErrorCode

错误码含义CODE
801错误的请求参数INVALID_REQUEST_PARAMETER
802数据查询异常BUSINESS_ERROR

5 返回模型(VO)

通用模型

0180412-05514

地图模型

0180412-05532

6 分表查询说明

  1. 目前进行分表的表包含 订单数据、订单商品数据、页面流量
  2. 分表规则:一年一张。(例如:es_xxx_xxx 表进行分表,2018年统计表为es_xxx_xxx_2018 )