数据仓库入门教程

简介: 数据仓库入门教程
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版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
8月前
|
存储 数据可视化 数据挖掘
终于有人把数据仓库讲明白了!
在企业数据分析中,数据仓库作为核心枢纽,通过整合财务、销售、生产等多系统数据,解决指标不一致、历史数据缺失等问题。它具备面向主题、集成、历史、时变和稳定五大特性,区别于传统数据库,专为复杂分析和决策支持设计,助力企业实现数据驱动。
终于有人把数据仓库讲明白了!
|
10月前
|
安全 关系型数据库 数据库
数据仓库是什么,一文读懂数据仓库设计步骤
数据仓库是企业整合、存储和分析历史数据的核心工具,支持决策与趋势预测。设计需经历明确业务需求、梳理数据源、概念建模、逻辑设计、物理实现及测试维护等步骤。通过合理规划结构、安全机制与数据集成(如使用FineDataLink),可有效提升数据质量与分析效率,助力企业发挥数据价值。
|
8月前
|
数据采集 存储 安全
一文带你讲透数据仓库分层!
在数据处理中,常遇到数据混乱、指标不一致、开发排期长等问题,根源往往在于数据分层设计不合理。本文详解数据仓库分层(ODS、DWD、DWS、DM、APP等),阐述其在数据清洗、整合、管理及应用中的关键作用,帮助提升数据质量、减少重复开发、增强系统扩展性,从而高效支撑业务决策。
一文带你讲透数据仓库分层!
|
11月前
|
SQL 人工智能 Java
阿里云百炼开源面向 Java 开发者的 NL2SQL 智能体框架
Spring-ai-alibaba-nl2sql 是析言 GBI 产品在数据问答领域的一次重要开源尝试,专注于 NL2SQL 场景下的核心能力开放。
2967 48
|
10月前
|
Prometheus Kubernetes 监控
Kubernetes(k8s)高可用性集群的构建详细步骤
构建高可用Kubernetes集群涉及到的层面非常广泛,包括硬件资源的配置、网络配置以及集群维护策略的规划。因此,在实际操作中,可能还需要根据特定环境和业务需求进行调整和优化。
2505 19
|
存储 机器学习/深度学习 数据建模
数据建模入门指南:从懵懂小白到高手的第一步
数据建模入门指南:从懵懂小白到高手的第一步
2523 15
|
存储 SQL 分布式计算
impala入门(一篇就够了)
impala入门(一篇就够了)
2818 0
impala入门(一篇就够了)
|
存储 消息中间件 Kafka
细说数据仓库分层架构
【7月更文挑战第20天】数据仓库分层架构包括缓冲层、操作数据层、明细数据层、汇总数据层和数据集市层。

热门文章

最新文章