一、创建数仓分层

数仓分层是结合对业务场景、实际数据、使用系统的综合分析,对数据模型进行的整体架构设计及层级划分。用于将不同用途的数据,归类划分至不同的分层,便于您更好地组织、管理、维护数据。本文为您介绍如何创建并管理数仓分层。

1.1 背景信息

数据仓库是所有数据的集合,包括日志信息、数据库数据、文本数据、外部数据等都集成在数据仓库中。数仓分层、数据域、业务过程、数据集市、主题域等要素,共同确定了您此次建模的逻辑数仓架构。其中,数据域及业务过程位于公共层,用于公共层数据模型的构建。数据集市及主题域位于应用层,用于面向具体业务应用的模型构建。
数仓分层保障了数据在进入数据仓库之前都经过清洗和过滤,使原始数据不再杂乱无章,优化了查询过程,有效的提高了数据获取、统计和分析的效率。同时,数仓分层实现了各种不同维度数据的关联,使多维分析更加方便,为从多角度、多层次地数据分析和决策制定提供便捷。

1.2 数仓建模怎么建?

我们按照数仓工具箱中的维度建模四步走来建的:
Alt

  1. 选择业务过程:把 javeEE 涉及的业务表全部导入了,这些表包括实体表,维度表,事务型快照事实表,周期性快照事实表、累积型事实表。过来之后,将这些表作为矩阵的一个列。
  2. 声明粒度:粒度一般有:一行信息代表一次、按天、按周、按月等,参考了其他架构,考虑自己到后期想要分析的指标,合适选择最小的粒度,一行信息代表一次消费。
  3. 确认维度:采用标准数仓建模的思维,争取事实表周围都是 1 级维度。关系的就是什么时间、什么地点、什么人、具体什么活动、优惠券等主题的维度,同时将跟用户、商品相关的表进行维度退化,尽量把他们降成一级维度。
  4. 确认事实:这里我们确定的不是事实表,而是事实表的度量值,例如订单的个数、订单的金额、下单次数等可以累加的字段

1.3规划数仓分层

数仓分层需要结合业务场景、数据场景、系统场景进行综合考虑设计,您可以根据实际业务需求,规划您数据模型的分层。
数仓分层需要结合业务场景、数据场景、系统场景进行综合考虑设计,您可以根据实际业务需求,规划您数据模型的分层。
根据阿里云数仓分层是可以这样分的:

1.3.1 数据引入层 ODS(Operational Data Store)

ODS层用于接收并处理需要存储至数据仓库系统的原始数据,其数据表的结构与原始数据所在的数据系统中的表结构一致,是数据仓库的数据准备区。ODS层对原始数据的操作具体如下:
将原始的结构化数据增量或全量同步至数据仓库中。
将原始的非结构化数据(例如,日志信息)进行结构化处理,并存储至MaxCompute。
根据实际业务需求,记录原始数据的历史变化或对原始数据进行简单的清洗。
ODS层的数据表,命名必须以ods开头,并且生命周期为366天。

1.3.2 明细数据层 DWD(Data Warehouse Detail)

DWD层通过企业的业务活动事件构建数据模型。基于具体业务事件的特点,构建最细粒度的明细数据表。您可以结合企业的数据使用特点,将明细数据表的某些重要维度属性字段适当冗余,即宽表化处理。同时,也可以减少明细数据表及维度表的关联,提高明细表的易用性。

1.3.3 汇总数据层 DWS(Data Warehouse Summary)

DWS层通过分析的主题对象构建数据模型。基于上层的应用和产品的指标需求,构建公共粒度的汇总指标事实表。
例如,从ODS层中对用户的行为做一个初步的归类汇总,抽象出来一些通用的维度,假设维度为时间、IP、ID,并根据这些维度统计出相关数据,比如用户每个时间段在不同登录IP购买的商品数。则在DWS层可以进一步添加一层轻度的汇总,可以让计算更加的高效。例如在此基础上计算仅7天、30天、90天的行为会节省很多时间。2

1.3.4 应用数据层 ADS(Application Data Service)

ADS层用于存放数据产品个性化的统计指标数据,输出各种报表。例如,某电商企业,在6月9日至6月19日,杭州地域出售的各大球类商品的数量及排行情况。

1.3.5 公共维度层 DIM(Dimension)

DIM层使用维度构建数据模型。可基于实际业务,存放逻辑模型的维度表;或存放概念模型的维度定义,通过定义维度,确定维度主键,添加维度属性,关联不同维度等操作,构建整个企业的一致性数据分析维表,帮助您降低数据计算口径和算法不统一的风险。

Logo

数据库是今天社会发展不可缺少的重要技术,它可以把大量的信息进行有序的存储和管理,为企业的数据处理提供了强大的保障。

更多推荐