刚接触数据仓库是在我的第一份实习工作——数据中心数据管理系统开发,它是一个B/S架构的应用,与一般的项目不同的是,系统是以数据仓库来进行数据存取的,这是我第一次听说数仓这个词,感觉它庞大而且神秘,不知道从何入手,对数据仓库有一种敬畏之心,后来经过慢慢的学习和使用,发现其实它在应用开发中的使用方法跟传统关系数据库没什么区别,无非就是普通的SQL查询以及JDBC连接。所以数仓的使用不是本文的重点,我们主要来认识一下数据仓库到底是什么。
文章要点
什么是数据仓库
数据中心架构
数据仓库内部架构
什么是数据仓库
数据仓库(Data Warehouse)是面向主题的、集成的、稳定的、随时间变化的数据集合,用来支持运营管理中的决策制定,为用户提供各种手段从数据中获取有用的信息。它的根本任务是对大量的业务数据进行归纳整理以及重组,然后提供给决策管理人员。
数据仓库是依赖于数据库进行数据存储和管理的,所以数据库是整个数据仓库的核心。相对于传统数据库来说数仓的数据库最突出的特点是对海量数据的支持和快速的检索技术,最具代表性的是Teradata公司的Teradata数据库。数据仓库平台即数据库和其它各种软件工具整合的一套数据仓库软件。
数据中心架构
数据中心的简化架构如下图:
数据中心架构
名称 | 说明 |
---|---|
业务系统 | 数据仓库的数据来源系统,提供各种所需的业务系统数据,如清算系统、票务系统等业务数据 |
数据加载 | 通过FTP文件传输或者数据库连接等方式,从业务系统中抽取数据统一存放,并提供给下游应用进行访问 |
数据仓库 | 数据加载到数据仓库后,通过预先定义的数据模型处理数据,并进行存放汇总,包含临时数据、核心模型数据、集市数据和元数据等,提供给下游应用使用 |
访问代理 | 为下游应用对数据仓库的访问提供负载均衡、灾备系统切换等服务 |
数据访问 | 各下游应用如统计分析、运营评估、信息管理等应用平台,对数据仓库的数据进行查询获取,可通过导出数据文件或数据库连接等方式进行访问 |
ETL管理 | 对数据抽取转换加载(ETL)的管理,它是构建数据仓库的重要一环,包括总体控制、作业管理、上下游依赖管理、错误管理、调度监控等所有ETL相关内容的管理 |
数据仓库内部架构
数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,其中一个重要的特点是对数据的分区管理,ETL会根据预先定义的数据模型以及各种数据的用途,来对数仓中的数据进行划分,它的内部架构一般是这样的:
数据仓库内部架构
数据区 | 数据区名称 | 说明 |
---|---|---|
STG | 临时区 | 存放从源系统抽取的原始数据 |
ODS | 操作镜像区 | 完成原始数据的增量累全量工作,保留较短历史数据 |
PDM | 物理数据模型区 | 基于数据模型设计,存放规范化数据,保留较长历史数据 |
SUM | 基础数据衍生区 | 存放预统计、预汇总数据,提炼出对数据仓库具有共性的数据访问、统计需求,从而构建出的一个面向支持应用系统、数据分析与数据挖掘提供共享的数据访问服务的公共数据区 |
APP | 应用集市区 | 按照应用系统分别建立,存放为某类特定的业务系统服务的数据集合,根据业务需要的重度汇总数据 |
本文为作者kMacro原创,转载请注明来源:https://zkhdev.github.io/2018/09/22/dw-begin/。
作者:kMacro
链接:https://www.jianshu.com/p/3f803131c7e5