数据仓库入门教程

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 数据仓库入门教程
1、数仓基础


(1)什么是数仓。

通俗的说,就是存放着大量数据的地方,它英文名称为Data Warehouse,可简写为DW。数仓最常见的组件是hive,clickhouse。

(2)用来做什么

大量的数据放在一起,有利于中寻找有用的信息,主要是用来做三方面的事情:

  • 了解现状:掌握占比、同比、环比等重要指标
  • 辅助决策:这里举个例子,上世纪90年代,沃尔玛引入算法后发现尿布与啤酒的关联度极高,市场调研发现是太太们叮嘱丈夫下班后为小孩买尿布,顺手就会带上啤酒
  • 预测走势:通过数据的分析,判断业务未来的变化

(3)为什么用数仓做而不是关系型数据库

如果没有数仓,报表、分析系统的数据可能就需要从OLTP的库中来,这样做有以下缺点:

  • 性能问题,OLAP业务往往会涉及到大量的数据,这会影响OLTP应用sql的性能
  • 数据格式的不统一,例如金额单位,时间单位
  • 业务系统变更频繁,数据库字段变更速度较快
  • 安全问题
  • 误用业务数据

(4)数仓的特征

  • 集成(核心特征)通常OLTP应用的数据都是比较分散的,数仓则会把这些数据集中到一起,有两个目的,一是要统一所有的数据的矛盾之处,二是要进行数据综合和计算
  • 面向主题(核心特征)网上乱七八糟概念太多,用人话解释,就是看问题的维度
  • 非易失性 一是指数据一般会被保留很久时间,二是指通常都是查看操作,很少有删除和修改这类操作
  • 时变性 指数据是按照时间顺序追加的,它们都带有时间属性

(5)数仓和数据库的区别


本质上还是OLAP和OLTP的区别。


OLTP:On-Line Transaction Processing,面向事务的处理系统,指系统的关注点主要集中在:响应时间、数据的安全性、完整性和并发支持的用户数等问题,主要使用传统的数据库系统作为数据管理的主要手段,主要用于操作型处理,像Mysql,Oracle等关系型数据库一般属于OLTP。

OLAP:On-Line Analytical Processing,面向分析的处理系统,一般针对某些主题的历史数据进行分析,支持管理决策。


冗余设计 针对数据的主要操作 数据规模 延迟 事务
数仓 刻意冗余 分析 不支持
数据库 避免冗余 捕获 支持


2、数仓架构


1686815947369.png


  • ODS(数据源层Operational Data Store)ODS 层,是最接近数据源中数据的一层,为了考虑后续可能需要追溯数据问题,因此对于这一层就不建议做过多的数据清洗工作,原封不动地接入原始数据即可,至于数据的去噪、去重、异常值处理等过程可以放在后面的 DWD 层来做
  • DW(数据仓库层Data Warehouse)
    1)DWD (数据明细层Data WareHouse Detail)
    一般保持和 ODS 层一样的数据粒度,并且提供一定的数据质量保证。DWD 层要做的就是将数据清理、整合、规范化、脏数据、垃圾数据、规范不一致的、状态定义不一致的、命名不规范的数据都会被处理同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联
    另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性。
    其实上面的话,总结成一句人话,就是对此层会对数据做一个初步的处理,包括清洗,整理以及聚合之类的操作。
    2)DWM(数据中间层Data WareHouse Middle)
    基于 DWD 层上的基础数据,整合汇总成分析某一个主题域的服务数据,一般是宽表。DWS 层应覆盖 80% 的应用场景。又称数据集市或宽表。
    按照业务划分,如主题域流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP 分析,数据分发等。
    3)APP(数据应用层)
    这时候已经是可以提供给业务直接使用的数据层了。

3、数仓建模方法

(1)范式建模:同关系型数据库三大范式,分别是:


每个属性值唯一,不具有多义性 ;
每个非主属性必须完全依赖于整个主键,而非主键的一部分 ;
每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去


(2)维度建模(最常用的方法):分为两种表:事实表和维度表,维度建模就是在这两种表的基础之上来构建数据集市的。

维度表:指根据分析数据的角度,来创建的表,所谓维度,即指分析事物的角度,这个思想是重中之重,常见的角度有时间、地 域、终端、用户等。

事实表:必然存在的一些数据,像采集的日志文件,订单表,都可以作为事实表 。 特征:是一堆主键的集合,每个主键对应维度表中的一条记录,客观存在的,根据主题确定出需要使用的数据。 用人话讲,事实表,就是包含着ODS层,DWS,DWD层的表,可以说,除过维度表,在维度建模中,其他所有表,几乎都是事实表。


1686815938450.png

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
6月前
|
SQL 缓存 分布式计算
数据仓库优化手册
数据仓库优化手册
|
6月前
[解惑]数据湖跟数仓的区别
[解惑]数据湖跟数仓的区别
34 0
|
监控 大数据 领域建模
如何搭建一个数据仓库
如何搭建一个数据仓库
|
分布式计算 运维 Hadoop
数据仓库搭建
数据仓库搭建
198 0
|
SQL 数据采集 存储
数据仓库实战 1
数据仓库实战 1
200 0
|
关系型数据库 MySQL 开发工具
|
数据库
|
消息中间件 数据采集 JSON
数据仓库实战 2
数据仓库实战 2
135 0
|
SQL 数据库 HIVE
数据仓库实战 3(一)
数据仓库实战 3(一)