了解数据仓库

Posted on 2018-05-31 15:48  打杂滴  阅读(207)  评论(0)    收藏  举报

一.数据仓库定义

数据仓库就是面向主题的、集成的、相对稳定的、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程、数据仓库中的数据面向主题,与传统关系数据库面向应用相对应。

二.数据仓库与传统数据的区别

 数据仓库是用于分析的数据库,传统的关系型数据库是面向业务的,为具体的业务提供支撑。

数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出进行加工与集成,统一与综合之后才能进入数据仓库.

数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询

随着时间的增长,数据仓库数据量会很大

与关系型数据库相比,数据仓库的设计允许冗余

为了更好的为业务决策服务,数据仓库的设计要求如下:

1.效率足够高,尽量的低延迟,隔天能看到历史的数据分析数据

2.数据质量,在ETL过程中,避免脏数据或者代码有误导致的数据不准确误导决策者

3.扩展性,考虑到随着时间的推移,以及业务的变动,数据量增大,数据仓库要合理建模,适度增加中间层(olap,cube),缓冲数据量增大带来的压力

4.根据决策者重点关心的方向,提取主题,排除无用的主题

 三 数据仓库系统的组成

    数据源,ETL,数据仓库,应用

四.数据仓库建模

   维度建模(dimensional modeling)是数据仓库建设中的一种数据建模方法。

   维度表:表示对分析主题所属类型的描述。就是你观察该事务的角度,是从哪个角度去观察这个内容的。

   事实表:表示对分析主题的度量。

   维度建模的模式:星形模式,雪花模式,星系模式(星座模式)

   星形模式:维表只和事实表关联,维表之间没有关联;以事实表为核心,维表围绕核心呈星形分布;

  雪花模式:是星形模式的扩展,每个维表可继续向外连接多个子维表

星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计。雪花模型相当于将星形模式的大维表拆分成小维表,满足了规范化设计。然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大,每次查询需要太多关联,而数据冗余问题在数据仓库里并不严重。

   星座模式:一个维表也可能被多个事实表用到

在业务发展后期,绝大部分维度建模都采用的是星座模式。

 共享维度

细节/聚集事实表

细节事实表(detailed fact tables)中每条记录表示单一事实,而聚集事实表(aggregated fact tables)中每条记录则聚合了多条事实。

 两种事实表各有优缺点,细节事实表查询灵活但是响应速度相对慢,而聚集事实表虽然提高了查询速度,但使查询功能受到一定限制。

一个常见的做法是使用星座模型同时设置两种事实表(可含多个聚集事实表)。

缓慢变化维度

五 数据仓库系统的实现和使用

数据仓库系统以前通常是建在关系型数据库基础上,随着大数据的发展,使用SPARK SQL,hive创建数据仓库逐渐成为趋势,建模与实现分开,先用建模工具建模,然后用HIVE或者spark sql实现,ETL工作的实质就是从各个数据源提取数据,对数据进行转换,并最终加载填充数据到数据仓库维度建模后的表中

抽取(Extract):根据数据仓库的设计要求,从各个数据源搜集数据

转换(Transform):对提取好了的数据的结构进行转换清洗,以满足目标数据仓库模型的过程

加载(Load)将转换好的数据加载的数据仓库

然后就是olap,维度建模,展示维度建模分析与SQL查询相比,设计好后简单但不够灵活

cube的架构模式通常有三种:MOLAP(Multidimensional Online Analytical Processing)ROLAP(Relational Online Analytical Processing)HOLAP(Hybrid Online Analytical Processing)

cube的常用操作:切片,切块,旋转,上卷,下钻

 

 

ETL通过清洗和转换最后将数据加载到数据模型中

ETL的主要任务是在交付过程中划分维度和事实

 

 

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH,是一个面向主题的、集成的、随时间变化的、相对稳定的数据集合,用于对管理决策过程的支持。

 

 

 

1、数据仓库是面向主题的;操作型数据库的数据组织面向事务任务,而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。

 

2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库

 

3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;
4、数据仓库是随时间而变化的,传统的关系型数据库比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。
 
数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。
 
元数据被定义为:描述数据的数据,对数据及信息资源的描述性信息。
元数据(Metadata)是描述其它数据的数据(data about other data),或者说是用于提供某种资源的有关信息的结构数据(structured data)。

 

 

 

在数据仓库领域中,元数据按用途分成技术元数据和业务元数据。首先,元数据能提供基于用户的信息,如记录数据项的业务描述信息的元数据能帮助用户使用数据。其次,元数据能支持系统对数据的管理和维护,如关于数据项存储方法的元数据能支持系统以最有效的方式访问数据

 

 

 

数据集市

数据仓库只限于单个主题的区域,例如顾客、部门、地点等。数据集市在从数据仓库获取数据时可以依赖于数据仓库,或者当它们从操作系统中获取数据时就不依赖于数据仓库。

 

OLAP‌(联机分析处理)与‌OLTP‌(联机事务处理)

OLAP(Online Analytical Processing,联机分析处理)和OLTP(Online Transaction Processing,联机事务处理)

image

 

数据流向关系‌

OLTP → ETL → 数据仓库(OLAP)
即:业务系统产生数据 → 抽取清洗 → 加载至分析系统供决策使用 。

 

ODS  DWD DWS  ADS

‌数据仓库四层架构中,ODS、DWD、DWS、ADS层层递进,分工明确:ODS是原始数据入口,DWD实现明细清洗,DWS完成轻度汇总,ADS支撑应用输出‌。这四层共同构建了从源系统到业务价值的完整数据链路 。

🔹 各层核心功能详解


‌ODS 层(Operational Data Store,操作数据存储 / 贴源层)‌

‌功能定位‌:数据仓库的“第一站”,直接对接业务数据库、日志、接口等原始数据源。
‌核心作用‌:
原始数据快照:保持与源系统结构一致,不做复杂加工,仅做去重、字段映射等基础处理 。
风险隔离:避免源系统变更直接影响数仓内部逻辑。
历史回溯:通过全量或增量方式保留历史状态,弥补源系统数据覆盖更新的问题 。
‌数据特征‌:高冗余、细粒度、未清洗,数据量最大。


‌DWD 层(Data Warehouse Detail,数据仓库明细层)‌

‌功能定位‌:数据规范化的核心层,面向分析构建最细粒度的事实表和维度表 。
‌核心作用‌:
数据清洗:去噪、补缺失值、修异常、脱敏等。
维度退化:将分散的维度信息(如用户等级、商品分类)整合进宽表,减少后续JOIN操作。
标准化建模:统一字段口径(如“北京”与“北京市”统一为“北京市”),支撑上层复用 。
‌数据特征‌:干净、规范、原子级明细数据,是DWS和ADS的基础。
‌DWS 层(Data Warehouse Summary,数据仓库汇总层)‌

‌功能定位‌:面向主题的轻度汇总层,提升查询效率 。
‌核心作用‌:
按主题聚合:如按“用户”、“商品”、“时间”维度统计日活、销售额、转化率等通用指标。
支撑高频分析:沉淀80%的共性需求,避免重复扫描DWD亿级明细数据 。
‌数据特征‌:粒度较粗(通常按天),结构稳定,直接服务于ADS或BI报表。


‌ADS 层(Application Data Service,应用数据服务层)‌

‌功能定位‌:面向最终业务场景的数据出口,为报表、大屏、接口提供即查即用的结果数据 。
‌核心作用‌:
定制化输出:为特定应用定制宽表或指标集,如“地图销售可视化数据”、“用户画像标签表” 。
快速响应:采用OLAP技术优化查询性能,支持实时或准实时分析 。
数据共享:通过API或BI工具对外提供服务,是数据价值落地的关键环节。
‌数据特征‌:高度聚合、业务可读性强、更新频率高。

‌维度建模‌

‌维度建模‌是数据仓库设计中一种核心的逻辑建模方法,由Ralph Kimball提出,主要用于支持高效的数据分析与商业智能(BI)决策。其核心思想是将数据划分为‌事实‌(度量数据)和‌维度‌(上下文环境),通过‌星型模式‌或‌雪花模式‌组织数据,提升查询性能与业务可读性 。

核心组成
‌事实表(Fact Table)‌
存储业务过程中的度量值,如销售额、订单数量等数值型数据,包含指向维度表的外键 。

特点:数据粒度细、记录量大、以“可加性”为主。
示例:一次销售交易中的销售金额、数量。
‌维度表(Dimension Table)‌
提供事实发生的上下文信息,如时间、产品、客户、地理位置等描述性属性 。

特点:文本为主、行数较少、便于过滤和分组。
示例:时间维度表包含年、月、日;产品维度表包含品类、品牌、价格区间。

image

 星型模式(Star Schema)

‌结构特点‌:以一个‌事实表‌为中心,多个‌维度表‌直接连接其上,形成星形拓扑结构 。
‌事实表‌:存储可度量的业务数据,如销售额、订单数量等 。
‌维度表‌:提供上下文信息,如时间、产品、客户等,不进行规范化,存在冗余但查询高效 。
‌优势‌:
结构简单直观,易于理解和设计
查询性能高,仅需少量表连接
‌适用场景‌:单业务过程、对查询速度要求高的数据集市

image

二、雪花模式(Snowflake Schema)
‌结构特点‌:在星型模式基础上对维度表进行‌规范化拆分‌,形成多层级的子维度表,结构形似雪花 。
‌示例‌:产品维度表可拆分为“产品→品类→类别→品牌”多个层级表 。
‌优势‌:
减少数据冗余,节省存储空间
提升数据一致性和治理能力
‌劣势‌:
查询需多层连接,性能较低
设计与维护复杂度高
‌适用场景‌:数据质量要求高、层级复杂的金融、医疗分析等场景

三、星座模式(Fact Constellation Schema)
‌结构特点‌:包含‌多个事实表‌,共享一组公共维度表(如时间、产品),也称“星系模型” 。
‌示例‌:销售事实表与库存事实表共享时间、产品、地区维度 。
‌优势‌:
支持跨业务主题的综合分析
维度表复用性强,提升模型一致性
‌劣势‌:
架构复杂,ETL维护成本高
查询优化难度大,性能不稳定
‌适用场景‌:大型企业级数据仓库,需整合销售、库存、财务等多个业务域

 

‌星型模式、雪花模式、星座模式的选型决策树‌,本质上是根据业务需求、性能要求与数据复杂度,在‌查询效率‌、‌存储成本‌和‌维护灵活性‌之间做出权衡。以下是基于实际项目经验提炼出的结构化决策路径:

✅ 星型模式(Star Schema)——“快而稳”的首选
‌适用条件 → 决策结果‌

‌条件1‌:分析场景聚焦单一业务过程(如销售、订单)
‌条件2‌:要求查询响应在秒级内完成(如BI仪表盘实时展示)
‌条件3‌:维度层级简单(≤2层,如产品→品类)
‌条件4‌:存储资源充足或数据量中等(<1亿条事实记录)
👉 ‌结果‌:选择‌星型模式‌
✔ 查询性能最优 | ✔ 开发维护简单 | ✔ 业务可读性强

示例:零售门店日销分析,连接时间、产品、门店三张宽维表,直接聚合销售额。

✅ 雪花模式(Snowflake Schema)——“精而省”的治理之选
‌适用条件 → 决策结果‌

‌条件1‌:维度具有多层级结构(≥3层,如国家→省→市→区)
‌条件2‌:数据频繁更新(如客户标签、产品分类动态调整)
‌条件3‌:存储成本敏感(如日增千万级物联网数据)
‌条件4‌:对数据一致性与合规性要求高(如金融、医疗行业)
👉 ‌结果‌:选择‌雪花模式‌
✔ 存储效率高 | ✔ 数据无冗余 | ✔ 支持精细化治理

示例:三甲医院诊疗数据仓库,患者维度拆分为基础信息、医保类型、就诊科室等子表,确保数据规范统一。

✅ 星座模式(Galaxy Schema)——“广而联”的集成之选
‌适用条件 → 决策结果‌

‌条件1‌:需整合多个业务主题(如销售 + 库存 + 会员积分)
‌条件2‌:多个事实表共享公共维度(如统一的时间、产品、客户维度)
‌条件3‌:企业级数据仓库建设,追求模型一致性
‌条件4‌:有成熟的ETL流程与元数据管理机制
👉 ‌结果‌:选择‌星座模式

 

🔁 混合架构实践建议(真实场景推荐)
大多数企业并非“三选一”,而是采用‌分层混合策略‌:

层级 推荐模型                                                 理由
ODS层(原始层) 雪花模型                         保证数据规范化与一致性
DWD/DWS层(明细/汇总层) 星型模型      提升查询性能,支撑BI分析
ADS层(应用层) 星座模型                         整合多主题,支持综合报表

 

 

 

 

 

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3