admin管理员组

文章数量:1122851

数据仓库

数据仓库-架构

  • 基本架构
  • 主要数据仓库架构
    • 数据集市架构
      • 独立数据集市架构
      • 另外一种数据集市是从属数据集市
    • Inmon企业信息工厂架构
    • Kimball数据仓库架构
    • 混合型数据仓库架构
    • 操作数据存储
      • ODS作用

基本架构

架构是什么?

在软件行业普遍接受的架构定义是,指系统的一个或多个结构,包括软件的构建,构建外部可以看到的属性以及他们之间的相互关系。

把数据仓库架构理解成构成数据仓库的组件及其之间的关系。

数据仓库架构
如图

操作型系统由各种形式业务数据组成
这其中可能有关系数据库、TXT、CSV、HTML、XML、还可能有外部系统的数据、网络爬虫等。
数据可能是结构化、半结构化、非结构化的。

这些数据经过抽取、转换、装载(ETL)过程进入数据仓库系统。
抽取过程负责从操作型系统获取数据,该过程一般不做汇总。但是会按照主题进行集成。
物理上是将操作型系统的数据全量或增量复制到数据仓库系统的RDS中。RDS:RAW DATA STORES 原始数据存储。
转换装载过程并将数据进行清洗、过滤、汇总、统一格式化等一系列转换操作,使得数据转为适合查询的格式,然后就将数据装载进入数据仓库系统的TDS中。TDS:TRANSFORMD DATA STORES 转换后的数据存储。
RDS:将原始数据存储到数据仓库中,用户可以查询RDS里的数据而不必影响业务系统的正常运行,起到了操作型数据存储ODS的作用。

TDS:转换后的数据存储,真正的数据仓库中的数据。大量的用户在转换后的数据集上处理他们的日常查询。

在传统数据仓库中,原始数据存储通常是本地文件系统,被组织进相应的目录中,这些目录是基于数据从哪里抽取或何时抽取建立。转换后的数据存储一般是某种关系型数据库。

自动化调度组件的作用是自动定期重复执行ETL过程。
传统的数据仓库一般利用操作系统自带的调度功能,如linux的cron windows的计划任务实现作业自动执行。

数据目录有时也被称为元数据存储,它可以提供一份数据仓库中数据的清单。

查询引擎组件复制实际执行用户查询。传统数据仓库中,它可能是存储转换后数据的查询引擎,还可能是以固定时间间隔向其导入数据的OLAP立方体,如Essbase cube。

用户界面指的是最终用户所使用的接口程序。可能是GUI软件,如BI套件中的客户端软件,也可能就是一个浏览器。

主要数据仓库架构

在数据仓库技术演化过程中,产生几种主要机构方法,包括数据集市架构,Inmon企业信息工厂架构,Kimball数据仓库架构和混合型数据仓库架构。

数据集市架构

数据集市是按照主题域组织的数据集合,用于支持部门级的决策。
用两种类型的数据集市:独立数据集市和从属数据集市。

独立数据集市几种于部门所关心的单一主题域,数据以部门为基础部署。无需考虑企业级别的信息共享与集成。如制造部门、人力资源部门等。一个独立的数据集市的设计既可以使用实体关系模型、又可以使用多维模型。
一个典型的数据集市模型架构如图。

优点:周期短、见效快。
缺点:跨部门分析和不同部门数据存在歧义很难在部门间进行比较。

独立数据集市架构

另外一种数据集市是从属数据集市

如Bill Inmon所说的,从属数据集市的数据来源于数据仓库。
数据仓库里的数据经过整合、重构、汇总后传递给从属数据集市。从属数据集市的架构如图。

建立从属数据集市的好处。
性能:当数据仓库的查询性能出现问题,可以考虑建立几个从属数据集市,将查询从数据仓库移出到数据集市。
安全:每个部门可以控制自己的数据。
数据一致:由于数据均来源于数据仓库,消除了部门间的数据不一致的问题。

Inmon企业信息工厂架构

Inmon企业信息工厂架构如图。

应用系统:用来支撑业务的操作型系统。
为数据仓库提供数据。
ETL过程:从操作系统抽取数据、转换数据、最终装载到数据仓库中。ETL是周期性运行的批处理过程。
企业级数据仓库:是该架构的核心组件。企业级数据仓库是一个细节数据的集成资源库。数据以最低粒度级别被捕获,存储在满足三范式设计的关系数据库中。
部门级数据集市:面向主题数据的部门级视图,数据从企业级数据仓库获取。数据进入部门数据集市可能进行聚合。
数据集市使用多维数据模型设计。用于数据分析。
重要一点,所有的报表工具、BI工具、或其他数据分析应用都是从数据集市查询数据,而不是直接查询企业级数据仓库。

Kimball数据仓库架构


Kimball与Inmon两种架构的主要区别在于核心数据仓库的设计和建立。
kimball的数据仓库包含高粒度的企业数据,使用多维模型设计。
意味着数据仓库有星型模式的维度表和事实表构成。分析系统或报表工具可以直接访问多维数据仓库里的数据。
这里的数据集市是一个逻辑概念,只是多维数据仓库中的一个主题划分,并没有自己的物理存储。也可以说是虚拟的数据集市。

混合型数据仓库架构


联合使用Inmon和Kimball两种架构。
将Inmon方法中的数据集市部分替换成了一个多维数据仓库。而数据集市是多维数据仓库上的逻辑视图。使用这种架构的好处是,既可以利用规范化设计消除数据冗余,保证数据的粒度足够细,有可以利用多维结构更灵活地在企业级实现报表和分析。

操作数据存储

操作数据存储又称为ODS 是Operational Data Store的简写。
定义:面向主题的、集成的、可变的、当前细节的数据集合。
用于支持企业对于即时性、操作性的、集成的全体信息的需求。

操作数据存储在某些方面有类似于数据仓库的特点,在另一些方面有显著不同于数据仓库。

  • 像数据仓库一样,面向主题的
  • 完全集成的
  • 数据是当前的,于数据仓库存储历史数据的性质明显不同。ODS具有最少的历史数据(一般30-60天),而极可能接近实时地展示数据的状态。
  • 数据是可更新的,这与静态数据仓库又一个很大的区别。ODS如同一个事务处理系统,当心得数据流进ODS,受其影响的字段被心信息覆盖。
  • 数据几乎完全是细节数据,仅有少量动态聚集或汇总数据。通常将ODS设计成包含事务级的数据,即包含该主题域中最低粒度级别的数据。
  • 在数据仓库中,几乎没有针对其本身的报表,报表均放到数据集市中完成。与此不同,在ODS中,业务用户频繁地直接访问ODS

ODS作用

  • 充当业务系统与数据仓库之间的过渡区。
  • 转移部分业务系统细节查询的功能。
  • 完成数据仓库中不能完成的一些功能。

本文标签: 数据仓库