• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

数据仓库分层标准

武飞扬头像
机灵小布衣
帮助1

数据仓库分层的好处

  • 复杂问题简单化

通过将复杂的计算任务分解到多个阶段执行,将所有的复杂计算,拆分成多个简单计算来进行,逻辑更清晰,单个任务更简单。

  • 混沌数据结构化

将所有的数据按照不同的加工程度分层,明确了取用某一种加工程度的数据应该去哪一层,通过分层梳理了所有数据的结构。

  • 用空间换取时间

将不同程度的聚合数据全部存储起来,避免了使用数据时的二次聚合,减轻了计算量。

  • 串行任务并行化

分层数仓的每一层的任务可以并行处理,可以最大限度发挥计算引擎的性能,提升计算性能。

数据仓库如何分层

学新通

原始数据层(Operational Data Store)

存放未经过处理的原始数据,结构上与源系统保持一致,是数据仓库的数据准备区。本层的数据需要做到以下几点:

  • 保持数据原貌不做任何修改,起到备份数据的作用。
  • 创建分区表,防止后续的全表扫描。

举例:以 App Store 数据为例,我们将每天通过 API 接口抓取的数据存储在 ODS 层表中,并按日期创建分区,每个分区的数据即为当日抓取的所有数据。

明细数据层(Data Warehouse Detail)

存放经过清洗的明细数据,此处应该让数据摆脱 ODS 层的结构,准备进行进一步的关联和聚合。本层的数据处理任务应当完成以下几项工作:

  • 将原始数据进行清洗,字段名称改为标准化的命名
  • 进行 IP 解析等需要对基础数据进行处理的 UDF 操作
  • 将脏数据、不合规数据、垃圾数据等不符合预期的数据过滤掉
  • 应当尽量将 ODS 层中的所有信息提取出来,保证其他层的任务不需要再访问 ODS 层

举例:以 App Store 数据为例,DWD 层的处理任务会将原始数据中包含的信息从 ODS 层提取出来,从 JSON 格式变成列式存储的 ORC 格式。

基础数据层(Data Warehouse Base)

在 DWD 层表的基础上,进行维度关联,生成拥有所有维度的明细汇总宽表。本层的数据处理任务应当完成一下几项工作:

  • 将 DWD 层中的关于某一主题的所有信息关联在一起,生成一张没有聚合的明细汇总表
  • 使用 DIM 维度表将明细汇总表打宽,变成一张明细汇总宽表

举例:以 OmniSDK 数据为例,在 DWB 层将订单的创建、完成等多个 DWD 层表按照订单 ID 关联,形成一张包含了所有订单主题事件的明细汇总宽表

轻度聚合层(Data Warehouse Service)

在 DWD 或者 DWB 层的基础上,进行轻度聚合,主要用于多维度 OLAP 分析:

  • 所谓轻度聚合,指的是结果中的数据仍保留了较多的维度,还有再次聚合的空间
  • 对于一些 DWD 层维度齐全,没有必要制作 DWB 表的数据,可以直接按照 DWD 聚合

举例:以 App Store 数据为例,在 DWS 将商品这一维度抹去,按照游戏、币种、版本、地区其他维度进行轻度聚合,用于 App Store 收入的多维度分析

主题聚合层(Data Warehouse Topic)

在 DWD 或 DWB 或 DWS 的基础上,进行聚合,直接产生相关的结论,用于后续展示:

  • 所谓主题聚合,指的是为具体的某个分析任务或者报表服务,保留较少的维度,通常没有多少再次聚合的空间
  • 对于某些可以直接通过 DWB 甚至 DWD 计算产生具体结论,且 DWS 没有必要创建相关表的情况,可以直接进行计算

举例:以游戏留存计算为例,依赖 DWB 层的活跃明细,计算多日留存、经过模型处理的真实留存等具体指标,存入 DWT 层。

维度表(Dimension)

维度表,主要包含配置表、枚举含义表或者商品资料表等数据。需要注意,维度表中的数据应该是变化相对不频繁的数据,基于 ODS 数据计算出来的维度表应该放在 DWD 层,命名以 dwd_dim 开头。包含的数据例如:

  • 高基数维度数据表,如用户资料表,包含用户手机号、用户ID、注册时间、所在省份/城市、性别、生日、用户等级等各种信息。此表需要依赖于 ODS 层表,则需要放在 DWD 层。
  • 低基数维度数据表以 App Store 数据为例,依据苹果官网提供的资料建立。包括货币维度表 dim_currency(币种的英文缩写和中文名字对照关系)、地区维度表 dim_region(地区英文缩写和中文名字的对照关系)等

数仓分层后的任务依赖关系

  • 分层后,构建数据仓库的任务应当由互相独立的多组任务组成。
  • 按照数据仓库自底向上的顺序串行执行(ODS -> DWD -> DWB -> DWS -> DWT)。
  • 每一组任务内的任务应该互相没有依赖和影响,可以并行执行。
  • 原则上每一层的任务可以依赖的层如下表所示:

任务所属层

可以依赖的表所属层

DWD

ODS

DWB

DWD

DWS

DWD、DWB

DWT

DWD、DWB、DWS

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiabigh
系列文章
更多 icon
同类精品
更多 icon
继续加载