数据仓库概要

什么是数据仓库?

数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。

核心特征

1. 面向主题

数据仓库围绕核心业务主题 (如客户、产品、销售、财务)来组织数据,而不是围绕具体的业务流程或应用系统。这与操作型数据库 (如订单处理系统)不同,后者是面向事务 的。

2. 集成

数据仓库中的数据来源于多个分散的操作型系统(如ERP、CRM、日志文件等)。这些数据在进入数据仓库之前,会经过清洗、转换、整合,消除不一致性,形成统一的命名、编码和格式。

3. 相对稳定

数据仓库一旦存入数据,通常不会被修改或删除,主要是进行数据的查询和分析。这反映了读多写少的特性。操作型数据库则需要频繁地进行增删改查。

4. 反映历史变化

数据仓库会长期保留历史数据(例如5-10年),以便进行趋势分析、预测未来。而操作型数据库通常只保留当前或近期的数据。

核心架构与组成

1. 数据源

如:业务数据库(MySQL, Oracle)、日志文件、API接口、外部数据等。

2. 数据抽取、转换、加载

  • 抽取 Extract:从数据源获取数据。
  • 转换 Transform:清洗无效数据、转换格式、统一标准、进行业务计算(这是最复杂的一步)。
  • 加载 Load:将转换后的数据加载到数据仓库的目标表中。

3. 数据存储与管理

  • 这里存储着细节数据、轻度汇总数据和高度汇总数据。
  • 通常采用维度建模,构建星型模型或雪花模型,核心是事实表和维度表。
    • 事实表:存储业务过程的度量值(如销售金额、销售数量),主要是数值型数据。
    • 维度表:存储描述事实的业务上下文(如时间、地点、产品、客户),主要是文本型数据。

4. 数据服务/应用层

工具包括:BI工具(如 Tableau, FineBI, Power BI)、即席查询工具、报表系统等。

相关概念与技术

ETL vs. ELT

  • ETL 抽取 -> 转换 -> 加载:传统方式,在加载到仓库前进行转换。适合结构化数据和对数据质量要求极高的场景。
  • ELT 抽取 -> 加载 -> 转换:现代方式,先加载到仓库,然后利用仓库的强大计算能力进行转换。更适合处理海量、多结构的原始数据

OLTP vs. OLAP

  • OLTP (Online Transactional Processing) 联机事务处理:支持日常业务操作(增删改查),是数据的生产者,是业务数据的源头;代表系统 MySQL, PostgreSQL, Oracle
  • OLAP (Online Analytical Processing) 联机分析处理:支持复杂数据分析与决策;是数据的消费者,数据来自多个OLTP系统;Snowflake, BigQuery, Amazon Redshift, Apache Druid

数据集市

数据仓库的一个子集,通常为某个特定部门或特定业务领域(如财务、销售部)构建的微型数据仓库。它从数据仓库中获取数据,规模更小、主题更聚焦、访问更快。

现代数据栈:

  • 新一代的数据平台,通常基于云原生技术,组件更加解耦(增加独立性,降低依赖关系)和专业化。
    典型组成:Fivetran (Extract and Load) -> Snowflake/BigQuery (Storage/Compute) -> dbt (Transform) -> Tableau/Mode (BI)。
相关推荐
程序员梅雨17 小时前
【从零开始学习数据仓库 | 第一篇】:维度建模理论
大数据·数据仓库·学习·阿里云·数据分析
棣廷21 小时前
初识数据仓库——数仓分层到DataX数据采集
数据仓库
棣廷1 天前
初识Hive(2)
数据仓库·hive·hadoop
geovindu2 天前
Pivoting and Unpivoting Data in SQL using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
数据库小学妹2 天前
OLAP数据库怎么选?看清OLTP、数仓、湖仓边界
数据仓库·mpp·列式存储·联机分析处理·数据库选型·olap数据库
程序 代码狂人2 天前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
天河归来2 天前
从原始消息到业务数据:三层数据架构的设计与实践
数据库·数据仓库·架构
注塑机数据采集联网4 天前
中科晟达注塑机 MES 系统:从车间到数字化的智能制造实践
大数据·数据仓库·人工智能·物联网·制造·数据库架构
泡海椒4 天前
JQuick-SQL 逻辑数据仓库:以注册数据集构建轻量分析层
数据库·数据仓库·sql