zoukankan      html  css  js  c++  java
  • [数据仓库]数仓概念合集[转载]

    虽然作为数据分析或者商业分析师并不需要去做数据仓库,但在企业实际工作中,或多或少,还是需要接触或对接数仓部门,如提出需求、了解相关表的字段含义等,所以今天我们就简单说下数据分析师需要了解的 数据仓库基础知识。

    数仓分层

    • 为何数据仓库要分层?
    数据分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更易理解和使用。而目前网络中大部分可以被检索到相关文章只是简单地提及数据分层的设计,或缺少明确而详细的说明,或缺少可落地实施的方案,或缺少具体的示例说明。
    
    清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解
    减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算
    统一数据口径:通过数据分层,提供统一的数据出口,统一对外输出的数据口径
    复杂问题简单化:将复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。当数据出现问题之后,不用修复所有的数据,只需要从有问题的步骤开始修复。
    屏蔽原始数据的异常:不必改一次业务就需要重新接入数据。
    

    ODS层 / 贴源层

    数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的 ETL 之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。

    一般来讲,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可,至于数据的去噪、去重、异常值处理等过程可以放在后面的DWD层来做。

    ODS层数据还起到一个数据备份作用,如果是比较特殊行业,在ODS层的数据会保留一年甚至多年.不过普通公司一般就保存3–6个月,看数据量和存储压力以及存储预算决定.日志数据估算,如日活100万用户,每个用户访问1次,每次操作5min,每个用户平均3秒一条日志数据,一条数据1kb.最后体积是100w1560/31kb=100w*100kb=97656.25MB=95.36GB;

    DW层(Data Warehouse)

    数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从 ODS 层中获得的数据按照主题建立各种数据模型。

    DW层又细分为 DWD(Data Warehouse Detail)层、DWM(Data WareHouse Middle)层和DWS(Data WareHouse Service)层。

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

    该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化事实表中,减少事实表和维表的关联。

    另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性,后文会举例说明。

    数据中间层:DWM(Data WareHouse Middle)

    该层会在DWD层的数据基础上,对数据做轻度的聚合操作,生成一系列的中间表,提升公共指标的复用性,减少重复加工。

    直观来讲,就是对通用的核心维度进行聚合操作,算出相应的统计指标。

    数据服务层:DWS(Data WareHouse Service)

    又称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。

    一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。

    在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。

    数据应用层:ADS(Application Data Store)

    在这里,主要是提供给数据产品和数据分析使用的数据,一般会存放在 ES、PostgreSql、Redis等系统中供线上系统使用,也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。

    数仓技术

    ETL / Kettle

    事实(数据)表 / 明细(数据)表 / 维度(数据)表 / 指标表

    维度表

    统计指标时,通常地,需着重考虑的维度:
    地区范围,时间范围(N年?当年?当月?当日?),统计单位
    
    • 地区: 国家 / 省(自治区) / 州市 / 区县 / 乡镇(街道) / 村居
    • 时间: 年 / 月 / 日 / 时 / 分 / 秒
    • 单位: 元/年 | 元/月 | 元/次 | 次/年 | 次/月 | ...

    维度退化

    维度 / 度量

    拉链表

    X 参考文献

  • 相关阅读:
    面向对象三大特性之封装
    基本数据类型和引用数据类型
    面向对象三大特性之继承
    多表连接查询
    MySQL模糊查询
    MySQL数据查询入门
    Matlab 之 find()函数
    Matlab 之 字符串数组查找
    Matlab 之 数据元素访问
    让WIN10输入法变回传统模式
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/14265098.html
Copyright © 2011-2022 走看看