数据仓库之分层模型

作者: JouyPub | 来源:发表于2018-08-29 21:02 被阅读18次

一、各行业使用的分层模型

不同的行业使用的分层也有所不同,但思想都差不多

1.电信通讯

stage层 ->bdl层 ->analysis层

2.传统金融/保险

ods层 ->pdm层 ->dm层

3.互联网金融/电商

odl层 ->bdl层 ->idl层 ->adl层

二、专业术语

ODL层 (Operational Data Layer):操作数据层
  保存原始数据。外部数据什么样,该层数据就是什么样(关系型数据库、JSON格式等)。

BDL层 (Base Data Layer):基础数据层
  做统一的清洗处理。去重、去噪、字典翻译、空值转化,日期格式化等操作。

IDL层 (Interface Data Layer):接口层,也称主题表,宽表
  业务数据底表。在bdl层上,join各表后产生业务所需要的完整数据。

ADL层(Application Data Layer):应用层 ,也称数据集市**
  与需求对接。由idl层基于某些维度的深度加工统计汇总等操作转化而来,涉及到多个主题以及tmp数据之间的关联JOIN后的结果。

DIM层(Dictionary Data Layer):字典层,又称dic层
  存储一些诸如省、市、县区域表、渠道列表、商品类目等等表数据,可以从数据源sqoop导入。

TMP层(Temporary Data Layer):临时层
  存储一些中间计算结果

image
  1. 层次间的转换没必要循规蹈矩,按部就班,适当做到灵活,避免重复清洗浪费资源
  2. ODL层干净的关系型数据可以直接转换为IDL层数据,减少计算量
  3. ODL层侧重与外部对接,BDL层/TMP层/IDL层侧重清洗,IDL层和ADL层侧重对外提供应用服务
  4. 层数太少不够灵活,太多则在数据推翻重洗耗时,时间成本(一个坑)
  5. 数据源提供的数据越详细越好,避免后期大量重复的清洗工作。

此外,大家可能经常听到“星型模型”和“雪花模型”,简单解释下
(1)星型模型:事实表+维度表(区域、类目、性别...)等多表通过预先JOIN冗余到一张宽表里去,常见IDL层。
(2)雪花模型:在计算的时候,才将事实表跟维度表做join。

现在一般都是采用(1)的模式,为什么呢? 预先计算,提高性能,避免后续重复计算。CPU和内存的资源永远比磁盘空间宝贵的多。至于(2)的方式,有点就是灵活,不需要太多的重复清洗,但是性能不如(1).

  数据仓库的建设需要从从需求出发,逆推应用层ADL结构,进而推导出它涉及的主题表IDL表结构,再推导可能涉及的基础表BDL表结构,最后分析所需的数据源取自何处。需求需要包含“明确”需求和“潜在”需求。

三、开发步骤

  1. 创建ODL、BDL、IDL、ADL层表结构(HQL)
  2. 确定数据抽取方案(增量或全量)
  3. 编写sqoop脚本将数据同步到dim层、使用脚本将源数据同步到odl层
  4. 编写ODL->BDL->IDL->ADL层ETL清洗脚本(HQL)
  5. 确保上一层的数据稳定,减少对下一层的影响
  6. 编写azkaban、Ooize脚本
  7. 打通Kylin、FineBI、Hive关系,实现数据可视化、可导出目标

四、HIVE开发规范

表命名规范

ODL层:表名前缀 odl_
BDL层:表名前缀 bdl_
IDL层:表名前缀 idl_
ADL层:表名前缀 adl_
TMP表:表名前缀 tmp_
DIM表:表名前缀 dim_

外部表和内部表

尽量使用内部表。从数据安全的角度考虑,源数据可能被丢失,损坏,而这些情况在hadoop集群上发生的几率更小

建表规范

  • 每个表增加个ds时间分区,表示数据是哪一天的,也方便重跑数据
  • boolean类型统一使用0或1
  • 钱相关的金额建议使用decimal,而非double ,避免一些计算导致精度不准确
  • 日期格式使用 YYYY-MM-DD HH:MM:SS 、YYYY-MM-DD或 YYYYMMDD格式
  • ...

相关文章

  • 数据仓库设计

    数据仓库--事实表 数据仓库--事实表和维度表 DW数据仓库分层模型设计 如何优雅地设计数据分层 ODS DW D...

  • 数仓相关文章索引(1)

    基本常识 数据仓库的源数据类型 数据仓库的多维数据模型 BI数据仓库数据分层 即席查询 算法架构 浅谈数据仓库的基...

  • 数据仓库系列10- 数据仓库规范

    一. 数据模型架构原则 1.1 数据仓库分层 分层的好处: 清晰数据结构; 数据血缘追踪; 减少重复开发; 数据关...

  • 数据仓库模型分层

    PS:无法复制表格样式,只能截图了

  • A/B实验平台

    一、A/B实验数据仓库到指标 简介:数据仓库的建设是公司的基础数据基建,目前数仓的建立模型主要包括分层宽表建模或者...

  • 数据仓库之分层模型

    一、各行业使用的分层模型 不同的行业使用的分层也有所不同,但思想都差不多 1.电信通讯 stage层 ->bdl层...

  • 数仓建模 - 维度 vs 关系

    数据仓库模型建设 模型概念 维度建模 关系建模 建模实现对比 模型选择 Data Vault 简介 数据仓库模型建...

  • 数据仓库之数据分析

    数据仓库之数据分析 一、课前准备 二、课堂主题 本课程主要为大家揭秘数据仓库的基本概念,以及数据仓库的模型构建,并...

  • 离线数仓二

    数据仓库维度模型设计 维度建模基本概念 维度模型是数据仓库领域大师Ralph Kimall所倡导,他的《数据仓库工...

  • 5000字长文分享!数据仓库的建设与框架终于有人给讲明白了

    数据仓库,这个几乎是所有大数据开发面试必问的话题。比如数据仓库的分层架构?为什么需要数据仓库建模?数据仓库建模的原...

网友评论

    本文标题:数据仓库之分层模型

    本文链接:https://www.haomeiwen.com/subject/qxflwftx.html