数仓分成


数据库分层图

数据库各层的功能解析

  1. ODS:元数据层,对于原始数据的一个备份

  2. DWD:数据明细层,对数据的一个清洗(判空过滤,去除脏数据),保存业务事实明细,一行数据代表用户的一次业务行为。如:一次下单。

  3. ADS:数据应用层,为各种报表提供数据支持。

  4. DIM:维度层,对数据的维度建模主要是业务事实信息的描述。何人,何时,何地

  5. DWS:服务数据层,按天进行轻度汇总。一行信息代表一个主题对象的一天汇总行为。

  6. DWT:主题数据层,数据累计汇总,一行信息代表一个主题对象的一段时间数据的累计汇总。

为什么要数据分层:

  1. 隔离原始数据:对数据进行备份,解耦(将原始数据和统计数据据解耦开)。

  2. 减少重复开发:规范数据分层,通过中间层数据,减少数据的重复开发,一次计算多次复用。

  3. 把复杂任务简单化: 把任务分层处理,每层只处理简单问题。方便问题的定位。
    命名规范


  • 表名

Ø ODS层命名为ods_表名

Ø DIM层命名为dim_表名

Ø DWD层命名为dwd_表名

Ø DWS层命名为dws_表名

Ø DWT层命名为dwt_表名

Ø ADS层命名为ads_表名

Ø 临时表命名为tmp_表名

  • 脚本名
    数据源_to_目标_db/log.sh
    行为数据:log
    业务数据:db
  • 字段类型
    金钱:decimal(16,2), edit:16表示16位有效数字,2表示,其中小数部分为2位
    数量:bigint
    时间戳类型:bigint

主外键类型为:string
建模理论


关系建模

遵循三范式

  1. 属性不可切

  2. 部分函数依赖不可有
    非主键不可部分函数依赖于主键

  3. 传递函数依赖不可有
    非主键不可传递函数依赖于主键

维度建模

维度表

对事实的描述。包含大量属性。

事实表

业务事件

维度表的外键+度量值

  • 事实表的类型分类:
  1. 事务型事实表
    使用增量同步
  2. 周期型快照事实表
    使用全量同步
  3. 累积周期性快照事实表
    使用增量修改同步

业务总线矩阵

事实\维度 时间 用户 地区 商品 优惠券 活动 度量值
订单 √ √ √ 运费,优惠金额
订单明细 √ √ √ √ √ √ 商品件数,订单金额,优惠金额
支付 √ √ √ 支付金额
加购 √ √ √ 商品件数,金额
收藏 √ √ √ 收藏次数(1)
退单 √ √ √ 商品件数,退单金额
退款 √ √ √ 商品件数,退款金额
评价 √ √ √ 评价次数(1)
优惠券领用 √ √ √ 领券次数(1)
  • 理解没有

文章作者: tzkTangXS
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 tzkTangXS !
赏
  目录