数据仓库基础介绍

定义

Data warehouse(可简写为DW或者DWH)数据仓库,是在数据库已经大量存在的情况下,它是一整套包括了etl、调度、建模在内的完整的理论体系。

数据仓库的方案建设的目的,是为前端查询和分析作为基础,主要应用于OLAP(on-line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。目前行业比较流行的有:AWS Redshift,Greenplum,Hive等。

数据仓库并不是数据的最终目的地,而是为数据最终的目的地做好准备,这些准备包含:清洗、转义、分类、重组、合并、拆分、统计等

一、数仓分层

ODS:数据运营层(Operation Data Store ),也称为贴源层
存放原始数据,没有经过处理的,日志表、离线数据。

DWD:数据细节层(data warehouse details)
该层是业务层和数据仓库的隔离层,保持和ODS层一样的数据颗粒度,保证口径一致性;主要是对ODS数据层做一些数据的初步清洗和规范化的操作,比如去除空数据、脏数据、离群值等。

DWB:数据主题划分。

DWM:数据中间层(Data Warehouse Middle)
该层是在DWD层的数据基础上,对数据做一些轻微的聚合操作,生成一些列的中间结果表,提升公共指标的复用性,减少重复加工的工作。
简单来说,对通用的核心维度进行聚合操作,算出相应的统计指标。

DWS:数据服务层(Data Warehouse Service)
该层是基于DWM上的基础数据,整合汇总成分析某一个主题域的数据服务层,用于提供后续的业务查询,OLAP分析,数据分发等。一般来说,该层的数据表会相对较少;一张表会涵盖比较多的业务内容,有很多维度,计算指标,由于其字段较多,因此一般也会称该层的表为宽表。

ADS:数据应用层(Application Data Service)
该层主要是提供给数据产品和数据分析使用的数据,一般会存放在ES、Redis、PostgreSql等系统中供线上系统使用;也可能存放在hive或者Druid中,供数据分析和数据挖掘使用,比如常用的数据报表就是存在这里的。

DIM:维度表(Dimension Table)或维表
是与事实表相对应的一种表,它保存了维度的属性值,可以跟事实表做关联,相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行管理。维度表主要是包含两个部分:
(1)高基数维度数据:一般是用户资料表、商品资料表类似的资料表,数据量可能是千万级或者上亿级别
(2)低基数维度数据:一般是配置表,比如枚举字段对应的中文含义,或者日期维表等;数据量可能就是个位数或者几千几万。

二、为什么分层

1、拆分计算逻辑,按照路径追踪数据,可溯源;
2、减少重复开发、有中间层的数据,可以复用计算结果;

三、数仓建模方式

范式建模:
关系型数据库,遵循第三范式3NF,数据冗余少,但效率低。

维度建模:
星型模型-以事实表为中心,所有维表连在事实表上,维表之间没有关联;(有冗余)
雪花模型-维表之间有关联;
星座模型-多个维表多个事实表关联;

四、数仓表设计

按照时间分区(天pdate、小时phour)、大类分区(pdev_big_type_cd)、上报方式6d7d(pdata_type)等等。
事实表:具有业务含义的、实际发生的、数据表。
①增量表:某时间段内有变化的上报数据,每次更新放到一个单独的分区中。
增量表适用于数据体量大、数据变更不大。
②全量表:每天更新所有的数据、不管是否变化都报,存到每天的分区中。
全量表适用数据量不很大的。
③拉链表:一个事务从开始到当前状态所有变化的信息,这张表有当前最新的状态和之前的历史数据。
拉链表适用于数据量大、但是变化少、但要统计状态,拉链表节省空间。

五、关于时间

1、如果是对历史数据的过滤,则分区采用t-1天
2、如果是对历史数据进行的聚合处理,分区采用t天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值