一文带你了解亿级流量外卖平台-数仓分层架构

一.概述

在阅读本文之前,我们先来了解几个基本的概念。

1 什么是数据仓库?

数据仓库(Data Warehouse)简称DW或DWH,是数据库的一种概念上的升级,可以说是为满足新需求设计的一种新数据库,而这个数据库是需容纳更多的数据,更加庞大的数据集。
数据仓库主要是用于数据挖掘和数据分析,让不同来源的数据能够联系在一起,为消灭消息孤岛和支持决策为目的而创建的。

2 为什么要设计数据分层?

这是每个数据仓库同学在设计数据分层时第一个要被挑战的灵魂问题。
作为一名数据的规划者,我们肯定希望自己的数据能够有秩序地流转,数据的整个生命周期能够清晰明确被设计者和使用者感知到。但是,大多数情况下,我们完成的数据体系却是依赖复杂、层级混乱的。这样子后期不仅维护起来困难,并且还会产生很多重复的计算,造成资源大量的浪费。

3 数据仓库有什么特点?

  • 面向主题
    数据仓库都是基于某个明确主题,仅需要与该主题相关的数据,其他的无关细节数据将被排除掉
  • 集成的
    从不同的数据源采集数据到同一个数据源,此过程会有一些ETL操作
  • 随时间变化
    关键数据隐式或显式的基于时间变化
  • 数据仓库的数据是不可更新的
    数据装入以后一般只进行查询操作,没有传统数据库的增删改操作。数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。

二.分层架构

1 常见通用的数仓分层

数仓常见基础模型分为三层:原始数据层( ODS )、数据仓库层(DW)和数据应用层(APP)。简单来讲,我们可以理解为:ODS层存放的是接入的原始数据,DW层是存放我们要重点设计的数据仓库中间层数据,APP层是面向业务定制的应用数据。
在这里插入图片描述

2 外卖数仓分层

2.1 分层情况

  • ADL(应用数据层)
    该层级的主要功能是提供差异化的数据服务、满足业务方的需求。
  • MDL(数据集市层)
    该层次主要功能是加工多维度冗余的宽表(解决复杂的查询)、多角度分析的汇总表。
  • CDL (元件数据层)
    该层级以分析需求为驱动进行模型设计,实现跨业务主题域数据的关联计算或者轻度汇总计算,因此会有大数据量的多表关联汇总计算。
  • IDL (集成数据层)
    该层的主要功能是基于主题域的划分,面向业务主题、以数据为驱动设计模型,并且基于范式3NF建模,完成数据整合,提供统一的基础数据来源。在该层级完成数据的清洗、重定义、整合分类功能。
  • ODL(操作数据层)
    该层级主要功能是存储从源系统直接获得的数据(数据从数据结构、数据之间的逻辑关系上都与源系统基本保持一致)。
    在这里插入图片描述
    由于数据来源较多,且数据量较大,我们在常见分层模型基础上,对DW层做了进一步拆分。拆分成了 集成数据层 、元件数据层、数据集市层 。 这么拆分后发现数据血缘链路会显得更加清晰,维护起来也比较方便,同时数据分析同学使用起来非常方便。

2.2 不同层级数据特点

数据特点

  • ODL(操作数据层)
    (1)数据集结构及数据集间关系都和数据源基本保持一致;
    (2)数据集多为增量抽取,产生大量的Delta数据集;
  • IDL (集成数据层)
    (1)明细数据,按照业务主题分类,以业务为驱动设计表结构和表间关系;
    (2)数据集成,基于3NF设计模型,并在语义层达到统一和标准
  • CDL (元件数据层)
    (1)数据模型相对稳定,无衍生指标,轻度汇总;
    (2)多维模型:分析对象的状态(静态、描述)数据和相关事实表或维表关联形成以冗余宽表为中心的雪花或星型模型;
    (3)基础指标库:分析对象的行为(主动、被动)数据汇总而成的一系列基础指标库;
  • MDL(数据集市层)
    (1)数据模型相对稳定,有衍生指标;
    (2)宽表模型:基础指标群、多维模型数据和相关事实表或维表关联形成通用或定制的冗余宽表;
    (3)多角度汇总:从多个角度分析的汇总模型;
  • ADL(应用数据层)
    (1)数据模型不稳定,随着应用的变更随时变化或下线;
    (2)数据高度汇总,可做交叉分析等多维分析操作;
    (3)更高级的数据分析或挖掘应用,衍生出信息类、知识类数据

猜你喜欢

转载自blog.csdn.net/Lyx_____h/article/details/107516652