数据仓库介绍

什么是数仓

数据仓库简称DW,就是一个用以更好地支持企业或组织的决策分析处理的、面向主题的、集成的、不可更新的、随时间不断变化的数据集合。

为什么要有数仓

主要因为面向应用型的应用的数据库设计一般是操作型的,而数据分析或者数据挖掘都是面向分析型的应用。这两种应用各有特点和适用的场景,对数据的处理应当分离。

业务数据库数据仓库
遵循3NF范式,表与表之前关联复杂星型模型,事实表,维度表
数据较脏乱ETL去除脏数据,使用方便
理解困难,不同业务有不同操作代码数据统一描述
缺少历史数据设计拉链表记录业务状态变化
数据量大查询慢由于结构简单,查询速度较快
数据模型设计

从分析决策的需求出发构建模型。步骤为:

  • 选择需要进行分析决策的业务过程。如单个业务事件:交易的支付、退款;某个事件状态:当前账户余额;一系列相关业务事件组成的业务流过程等等。
  • 选择粒度,粒度是维度的一个组合
  • 识别维表,基于粒度设计维表,包括维度属性。
  • 选择事实,确定分析需要衡量的指标。
数据分层

(1)ODS层:即操作数据层。数据来源于埋点上报,爬虫,以及业务数据库。功能包括同步,将非结构化的数据结构化,累积历史、清洗数据。几乎不做数据处理。
(2)DWD层:即数据明细层。以维度模型方法作为理论基础,更多地采用一些维度退化方法,将维度退化至事实表中,减少事实表和维表的关联。
(3)DW层:汇总数据层。加强指标的维度退化,采取更多的宽表化手段构建公共数据指标层,提升公共指标的复用性。
(4)DM层:存放主题数据,给不同的应用提供数据组装结果。如所有KOL相关的流量、交易、属性等数据,尽可能多地将相关的维度和指标汇集在一起。绝大部分数据由DM层分发到应用ADS层。
(5)ADS层:按需生成应用相关的数据接口的表。

设计基本原则
  • 高内聚和低耦合:将业务相关或者相近,粒度相同的数据设计为一个逻辑或物理模型;将高概率同时访问的数据放在一起,低概率同时访问的分开。
  • 核心模型与扩展模型体系:核心模型字段包括常用的字段支持核心业务,扩展模型包括的字段支持个性化或者少量应用的需要。不能让扩展模型的字段过度侵入核心模型,以免破坏核心模型的架构简洁性与可维护性。
  • 公共处理逻辑下沉及单一:公用的处理逻辑应该在数据调度依赖的底层进行封装与实现,不要让公共逻辑暴露给应用层,不要让公共逻辑多处存在。
  • 成本与性能平衡:适当的数据冗余可换取查询和刷新性能,但是不宜过度冗余与数据复制。
  • 数据可回滚:处理逻辑不变,在不同时间多次运行数据结构确定不变。
  • 一致性:具有相同含义的字段在不同表中的命名必须相同,必须使用规范定义中的名称。
  • 命名清晰、可理解:表命名需清晰、一致,表名需易于消费者理解和使用。
参考

《大数据之路:阿里巴巴大数据实践》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值