数仓规划
数仓规划
一、数仓分层
数仓分层是结合对业务场景、实际数据、使用系统的综合分析,对数据模型进行的整体架构设计及物理层的详细划分。用于将不同用途的数据,归类划分至不同的分层,便于您更好地组织、管理、维护数据。
数据仓库是所有数据的集合,包括日志信息、数据库数据、文本数据、外部数据等都集成在数据仓库中。数仓分层、数据域、业务过程、数据集市、主题域等要素,共同确定了您此次建模的逻辑数仓架构。其中,数据域
及业务过程
位于公共层
,用于公共层数据模型的构建。数据集市
及主题域
位于应用层
,用于面向具体业务应用的模型构建。 数仓分层保障了数据在进入数据仓库之前都经过清洗和过滤,使原始数据不再杂乱无章,优化了查询过程,有效的提高了数据获取、统计和分析的效率。同时,数仓分层实现了各种不同维度数据的关联,使多维分析更加方便,为从多角度、多层次地数据分析和决策制定提供便捷。
1.1 规划数仓分层
- 数据引入层 ODS(Operational Data Store) ODS层用于接收并处理需要存储至数据仓库系统的原始数据,其数据表的结构与原始数据所在的数据系统中的表结构一致,是数据仓库的数据准备区。ODS层对原始数据的操作具体如下:
- 将原始的结构化数据增量或全量同步至数据仓库中。
- 将原始的非结构化数据(例如,日志信息)进行结构化处理,并存储。
- 根据实际业务需求,记录原始数据的历史变化或对原始数据进行简单的清洗。
ODS层的数据表,命名必须以
ods
开头,并且生命周期为366天。 - 明细数据层 DWD(Data Warehouse Detail) DWD层通过企业的业务活动事件构建数据模型。基于具体业务事件的特点,构建
最细粒度的明细数据表
。您可以结合企业的数据使用特点,将明细数据表的某些重要维度属性字段适当冗余,即宽表化处理。同时,也可以减少明细数据表及维度表的关联,提高明细表的易用性。 - 数据中间层 DWM(Data Warehouse Middle)
- 该层是在 DWD 层的数据基础上,对数据做一些轻微的聚合操作,生成一些列的中间结果表,提升公共指标的复用性,减少重复加工的工作。
- 汇总数据层 DWS(Data Warehouse Summary) DWS层通过分析的主题对象构建数据模型。基于上层的应用和产品的指标需求,构建公共粒度的汇总指标事实表。 例如,从ODS层中对用户的行为做一个初步的归类汇总,抽象出来一些通用的维度,假设维度为时间、IP、ID,并根据这些维度统计出相关数据,比如用户每个时间段在不同登录IP购买的商品数。则在DWS层可以进一步添加一层
轻度的汇总
,可以让计算更加的高效。例如在此基础上计算仅7天、30天、90天的行为会节省很多时间。 - 应用数据层 ADS(Application Data Service) ADS层用于存放数据产品
个性化
的统计指标数据,输出各种报表。例如,某电商企业,在6月9日至6月19日,杭州地域出售的各大球类商品的数量及排行情况。 - 公共维度层 DIM(Dimension) DIM层使用维度构建数据模型。基于实际业务,通过定义维度,确定维度主键,添加维度属性,关联不同维度等操作,构建整个企业的一致性数据分析维表,帮助您降低数据计算口径和算法不统一的风险。
二、业务分类
数仓分层是结合对业务场景、实际数据、使用系统的综合分析,对数据模型进行的整体架构设计及物理层的详细划分。用于将不同用途的数据,归类划分至不同的分层,便于您更好地组织、管理、维护数据。本文为您介绍如何创建并管理数仓分层。
例如:天猫精灵
,销售业务
三、公共层
3.1 数据域
数据域是联系较为紧密的数据主题的集合,通常是根据业务类别、数据来源、数据用途等多个维度,对企业的业务数据进行的区域划分,将同类型数据存放在一起,便于您快速查找需要的内容。不同使用目的数据,分类标准不同。 例如:客服(crm)
,市场(mk)
,用户(user)
数据域是一个较高层次的数据归类标准,是对企业业务过程进行抽象、提炼、组合的集合,是企业业务人员在使用数据时第一个分组入口,可以帮助企业业务人员快速的从海量的数据中快速圈定到自己的业务数据。
3.2 业务过程
业务过程是企业在指定的数据域中所执行的业务活动,是数据建模所需要分析的逻辑主体。例如,交易域中可以有加入购物车、下单、支付等业务过程。本文为您介绍如何创建并使用业务过程。
前提条件:已根据规划准备好对应数据域
业务过程是对业务活动流程的描述,例如在电商领域,加购
、下单
、支付
等都可以是一个业务过程。进行业务效果分析时,业务过程有非常典型的应用,例如常用漏斗分析,即将购买商品的业务活动分解为浏览商品、加入购物车、下订单、付款、确认收货等业务过程,统计每个业务过程的“订单数”,即可以针对“订单数”这一指标做漏斗分析。
四、应用层
4.1 数据集市
数据集市是基于业务分类,面向特定应用场景或者产品的数据组织。通常位于数据应用层,依赖于公共层的整合数据。本文为您介绍如何创建数据集市并管理主题域。
前提条件:已创建业务分类,用于对指定业务进行特定场景化的细分。
数据集市是对某个业务分类制定细化的业务主题,并通过主题域,基于不同分析视角对目标集市中的数据进行主题划分,最终面向业务应用统计分析数据。例如,运营平台数据集市。
4.2 主题域
主题域用于将数据集市按照分析视角进行划分,通常是联系较为紧密的数据主题的集合。您可以根据业务的关注点,将这些数据主题划分至不同的主题域。例如,电商行业通常分为交易域、会员域、商品域等。
前提条件: 已创建数据集市,用于确定主题域分析的业务类别主题。