0%

大数据相关的一些名词

据仓库(data warehouse) 也可以简称为 DW DH

数据仓库中的分层:

1. 数据运营层 ODS

  • ODS(Operation Data Store): 数据准备区,最接近数据源的一层, 也称为 贴源层. 数据仓库中 源头系统的数据通常会原封不动的存储一份. 这称为为 ODS. 是后续数据仓库加工数据的来源.

  • ODS 数据来源的方式:

    • 业务数据库
      • 经常会使用sqoop来抽取,例如每天定时抽取一次。
      • 实时方面,可以考虑用canal监听mysql的binlog,实时接入即可.
    • 埋点日志
      • 日志一般以文件的形式保存,可以选择用flume定时同步
      • 也可以采用 spark Streaming, flink 来做实时同步
      • kafka也ok
    • 消息队列
      • kafka, rabbitMQ

2. 数据仓库层 DW

DW 数据分层,由上至下 可以分为: DWD, DWB, DWS

  • DWD(data warehouse deatils): 细节数据层,是业务层与数据仓库层的隔离层, 主要是对 ODS做一些数据清洗和 规范化的操作.

    • 去除空值,脏数据,超过规范极限的…
  • DWB(data warehouse base): 数据基础层, 存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层.

    • 一般是由数据明细层 按照一定的业务需求,生成轻度汇总表. 明细层需要复杂清洗的数据和需要MR处理的数据也经过处理后接入到轻度汇总层.
    • 日志存储方式: 内表,parquet文件格式.
    • 日志删除方式: 长久存储.
    • 表schema: 一般按天创建分区,没有时间概念的按具体业务选择分区字段.
    • 库与表命名: 库名:dwb,表名:初步考虑格式为:dwb日期业务表名,待定.
    • 旧数据更新方式: 直接覆盖
  • DWS(data warehouse service): 数据服务层, 基于 DWB的基础数据,整合汇总成分析某一个主题域的数据服务层. 一般是宽表. 用于提供后续的业务查询. OLAP 数据分析, 数据分发…

    • 用户行为轻度聚合
    • 主要是对 DWD DWB 的数据做一些轻度汇总.
    • 数据宽表, 按照业务划分,如流量、订单、用户等, 生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等.
    • 数据生成方式: 由轻度汇总层和明细层数据计算生成.
    • 日志存储方式:使用impala内表,parquet文件格式
    • 日志删除方式:长久存储
    • 表schema:一般按天创建分区,没有时间概念的按具体业务选择分区字段.
    • 库与表命名:库名:dm,表名:初步考虑格式为:dm日期业务表名,待定.
    • 旧数据更新方式: 直接覆盖

3. 数据服务层,应用层 ADS

  • ADS(Application Data Service): 应用数据服务,该层主要是提供数据产品和数据分析使用的数据,一般会存储在ES、mysql等系统中供线上系统使用。
    我们通过说的报表数据,或者说那种大宽表,一般就放在这里

  • ETL(Extract-Transform-Load): 用于描述将数据从来源端经过抽取、转换、加载到目的端的过程。

  • 宽表: 指字段比较多的数据库表. 通常是指业务主体相关的指标,纬度,属性关联在一起的一张数据库表.

    • 宽表由于把不同的内容都放在同一张表,宽表已经不符合三范式的模型设计规范:
      • 坏处:数据有大量冗余
      • 好处:查询性能的提高和便捷
    • 宽表的设计广泛应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提供数据挖掘模型训练过程中迭代计算的消息问题.

简单的分层图

[参考]

数据仓库分层中的ODS、DWD、DWS
【漫谈数据仓库】 如何优雅地设计数据分层 ODS DW DM层级
数据仓库–通用的数据仓库分层方法

欢迎关注我的其它发布渠道