数仓分成


数据库分层图

数据库各层的功能解析

  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 !
  目录