数仓模型

一、数仓分层

为什么要分层
清晰数据架构 血缘跟踪 减少重复开发 复杂问题简单化 屏蔽业务的影响(易迁移)

  1. 清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
  2. 数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
  3. 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
  4. 把复杂问题简单化。讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
  5. 屏蔽业务的影响,不必改一次业务就需要重新接入数据

将数据仓库分为三层,自下而上为:数据引入层(ODS,Operation Data Store)、数据公共层(CDM, Common Data Model)和数据应用层(ADS,Application Data Service)

ODS (数据引入层,Operation Data Store)
存放从业务系统获取的最原始的数据
存储方式:全量(全量快照),增量,拉链,日志流水,缓慢渐变维

CDM(数据公共层,Common Data Model)

  1. dim:公共维度层。
    统一口径,采用宽表设计的原则
    确定维度属性,主要包括两个阶段。第一个阶段是从主维表中选择维度属性或生成新的维度属性;第二个阶段是从相关维表中选择维度属性或生成新的维度属性。以商品维度为例,从主维表(商品信息表)和类目 、卖家、店铺等相关维表中选择维度属性或生成新的维度属性。

  2. dwd:明细粒度事实层。以业务过程作为建模驱动
    明细事实表的设计可以分为五个步骤:
    ● 选择业务过程,如淘宝电商业务过程有创建订单、买家付款、卖家发货、买家确认收货
    ● 声明粒度
    ● 确定维度,完成粒度声明以后,也就意味着确定了主键,对应的维度组合以及相关的维度字段就可以确定了
    ● 确定事实,即度量,分为可加性,半可加性,不可加性
    ● 冗余维度,即维度退化(维度属性可以存储到事实表中)

  3. dws:公共汇总粒度事实层。
    以分析的主题对象作为建模驱动,基于上层的应用和产品的指标需求构建公共粒度的汇总指标事实表

ADS(数据应用层,Application Data Service)
存放数据产品个性化的统计指标数据

ps 数据仓库模型设计除横向的分层外,通常也需要根据业务情况进行纵向划分数据域。数据域是联系较为紧密的数据主题的集合

二、事实表分类

事实表分为事务事实表,周期快照事实表,累积快照事实表
事务事实表
分为单事务事实表,多事务事实表
多事务事实表在设计时有两种方法进行事实的处理

  1. 不同业务过程的事实使用不同的事实字段进行存放,如同时有下单时间,支付时间,完成时间
  2. 不同业务过程的事实使用同一个事实字段进行存放,但增加一个业务过程标签,如收藏还是取消收藏

周期快照事实表
快照事实表以预定的间隔采样状态度量

  1. 单维度的每天快照事实表,采样周期为每天,针对卖家、买家、商品、类目 、地 区等维度的快照事实表 ,比如淘宝卖家历史至今汇总事实表、淘宝商品自然月至今汇总事实

  2. 混合维度相对于单维度,只是在每天的采样周期上针对 个维度进行采样。比如淘宝买卖家历史至今快照事实 ,采样周期依然是每天,维度是卖家加买家,反映的是不同 家对于不同卖家的下单支付金额

累积快照事实表
特点:1数据不断更新,2多个业务过程日期,用于计算业务过程之间的时间间隔

三、 主题

主题:较高层次的抽象,每个主题对应一个宏观分析领域。同时一定程度上也是为了把数据仓库这么一个大的工程做横向拆分。主题一般在dws层划分。
主题在信息图包只占据标题位置,当主题定义好后,需要增加属性组
典型的主题包括顾客,订单,产品,财务。
公司管理层需要的主题:仓库,商品,供应商,客户
银行十大主题:当事人、产品、协议、事件、资产、财务、机构、地域、营销、渠道
美旅数仓划分为客服、流量、运营、订单、门店、产品、参与人、风控、结算和公用等十大主题
传统行业如银行、制造业、电信、零售等行业中,都有比较成熟的主题划分,如BDWM、FS-LDM、MLDM 等等。但从实际调研情况来看,主题划分太抽象会造成对业务理解和开发成本较高,不适用互联网行业。因此,结合各层的特性,我们提出了两类主题的划分:面向业务、面向分析。如销售分析域,组织分析域。

四、 总线矩阵

在Kimball的维度建模的数据仓库中,关于多维体系结构(MD)有三个关键性概念:总线架构(Bus Architecture),一致性维度(Conformed Dimension)和一致性事实(Conformed Fact)

总线矩阵:实际设计过程中,我们通常把总线架构列表成矩阵的形式,其中列为一致性维度,行为不同的业务处理过程,即事实,在交叉点上打上标记表示该业务处理过程与该维度相关。这个矩阵也称为总线矩阵(Bus Matrix)。

在同一个集市内,一致性维度的意思是两个维度如果有关系,要么就是完全一样的,要么就是一个维度在数学意义上是另一个维度的子集

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值