DW001 - 数据仓库理论知识
数据仓库概念
数据仓库(Data Warehouse,DW)是一个面向主题的、集成的、非易失的、反映历史变化的、用来支持企业管理决策的数据集合。
数据仓库特点:
- 面向主题的(Subject Oriented)
- 主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
- 数据仓库中的数据是按照一定的主题域进行组织。
- 不同类型的企业,主题集合往往不同。
- 集成(Integrated)
- 数据仓库中的数据是来源于多个数据源的集成
- 要整合成为最终的数据集合,需要从数据源经过一系列抽取、清洗、转换的过程。
- 构建形式一致、语义一致的数据集合。
- 非易失(Non-Volatile)
- 数据一旦进入数据仓库,一般情况下会被长期保存。
- 数据仓库中保存的数据是一系列历史快照,一般不做更新、删除。
- 用户只能通过分析工具进行查询和分析。
- 反映历史变化(Time Variant)
- 数据仓库的数据是随时间而变化的,会定期接收新的集成数据,从而反映出最新的数据变化。
- 但稳定的数据是以只读格式保存,且不随时间改变。
数据仓库 VS 数据库
- 数据库是面向事务的设计,设计目的是为了捕获数据,一般存储在线交易数据,并且在设计时尽量避免冗余,常采用符合范式的规则来设计。
- 数据仓库是面向主题设计的,设计目的是为了分析数据,一般存储的是历史数据,但在设计时有意引入冗余,采用反范式的方式来设计。
| 数据库 | 数据仓库 | |
| 面向 | 事务 | 分析 |
| 数据类型 | 细节、业务 | 综合、清洗过的数据 |
| 数据特点 | 当前的、最新的 | 历史的、跨时间维护 |
| 目的 | 日常操作 | 长期信息需求、决策支持 |
| 设计模型 | 基于ER模型、面向应用 | 星型/雪花模型,面向主题 |
| 操作 | 读/写 | 大多为读 |
| 数据规模 | GB到TB | >=TB |
数据仓库基本架构
| 缓冲层 (数据接入层) |
贴源层 (ODS层) |
基础明细层 (DWD层) |
轻度汇总层/数据中间层 (DWM层) |
数据服务层 (DWS层) |
数据集市 (DM) |
- 缓冲层(数据接入层)
- 概念
- 业务系统与贴源层之间的临时缓冲区,用于临时接入业务系统的原始细节数据。
- 是否设立缓冲层,视情况而定。
- 细粒度:与业务系统保持一致的原始细节数据,不做任何处理。
- 作用
- 当贴源层需做简单清晰,且数据导入速度较快时,缓冲层用于临时性快速接收业务数据。
- 概念
- 贴源层(ODS层)
- 概念
- ODS:Operational Data Store,操作数据存储,一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持即时性、操作型、集成性的信息需求
- 业务系统和基础明细层之间的过渡区,用于鵆业务系统的当前原始细节数据
- 作用
- 在业务系统和数据仓库之间形成一个隔离层
- 转移一部分业务系统细节查询的功能
- 完成数据仓库中不能完成的一些功能
- 概念
- 基础明细层(DWD层)
- 概念
- DWD:Data Warehouse Detail
- 数据仓库中的中间层,从ODS层获取数据,按主题进行组织,经过清洗、校验、转换、合并等规范化处理,形成业务数据的完整视图
- 一般采用维度建模,以星型模型为主
- 作用
- 为数据分析(宏观趋势性、在线交互式分析)提供最完整的基础明细数据支撑。
- 概念
- 轻度汇总层/数据中间层(DWM层)
- 概念
- DWM:Data Warehouse Middle
- 面向业务分析需求,对基础明细层的细节数据进行轻度(细粒度)的聚合、汇总和统计。
- 一般由明细层按照一定的业务需求生成轻度汇总表
- 作用
- 对细粒度的基础汇总指标进行预计算,减轻后期数据分析的压力。
- 概念
- 数据服务层(DWS层)
- 概念
- DWS:Data Warehouse Service
- 针对企业级宏观主题,构建相关的多个主题域模型,多从基础明细/轻度汇总层中获取数据,按主题模型进行数据组织。
- 通常为宽表
- 作用
- 为业务分析应用、数据集市构建提供直接的数据支撑
- 概念
- 数据集市(DM)
- 概念
- DM:Data Mart
- 数据集市是面向单一业务主题域(如销售、财务等)、为特定业务部门构建的小规模数据集合。
- 数据集市通常是数据仓库的子集。
- 作用
- 数据源可以是数据仓库(从属型数据集市),也可以是业务系统(独立型数据集市)
- 用于在线交互式分析(秒级响应)
- 概念
数仓分层的目的
- 把复杂问题简单化。可以将一个复杂的任务分解成多个步骤来完成,每层只处理单一的步骤。
- 减少重复开发。规范数据分层,通过使用中间层数据,可以大大减少重复计算量,增加计算结果的复用性。
- 隔离原始数据。使真实数据与最终统计数据解耦。
- 用空间换时间。通过大量的预处理来提升应用系统的用户体验、分析效率。
数据集市概念
数据集市(Data Mart)是一个针对某个主题、某个部门或者某些特殊用户而进行分类的数据集合,也称为“小数据仓库”或“部门级的数据仓库”
特点:
- 满足特定部门或用户需求
- 针对特定主题
- 统一的高质量数据
- 数据仓库的子集
- 交互式分析、秒级返回
数据集市分类
独立型数据集市:自下而上开发
- 从数据集市入手,就某一个特定的主题,先做独立数据集市,当数据集市达到一定规模,再从各个数据集市进行数据的整合建立企业级的数据仓库
- 数据集市包含了能够从数据源获取的全部的明细数据
- 是为了支撑某个业务流程而建立的维表集合
- 数据集市是基于数据来源而非部门的视图
- 优点:搭建快、成本低、风险小
- 缺点:可能会导致信息孤岛的存在,不能以全局的视角去分析数据、可能会存在大量冗余数据
从属型数据集市:自上而下开发
- 从属型数据集市采用自上而下的开发方式。首先建立企业级的数据仓库,然后从企业级的数据仓库中为各个部门抽取必要的数据建立部门级的数据集市
- 数据仓库中保存了企业的颗粒化数据,可作为事实的唯一版本
- 优点
- 体系结构上更稳定
- 可以提高数据分析的质量,保证数据的一致性
- 缺点
- 实施周期长、难度大、风险高
数据集市 VS 数据仓库
| 对比项 | 数据仓库 | 数据集市 |
| 范围 | 企业级 | 部门级或业务线 |
| 主题 | 企业主题 | 部门或特殊的分析主题 |
| 数据源 | 遗留系统、事务系统、外部数据等多个数据源 | 数据仓库或事务系统的少量数据源 |
| 数据粒度 | 较细的粒度 | 较粗的粒度 |
| 数据结构 | 通常是规范化结构(3NF) | 星型模型、雪花模型或两者混合 |
| 历史数据 | 大量的历史数据 | 适度的历史数据 |
数据湖概念
Pentaho的CTO James Dixon在2010年提出了“Data Lake”的概念。数据“仓库”概念和数据湖的概念的重大区别是:数据仓库中的数据在进入仓库之前需要实现归类,以便于未来的分析。随着大数据技术的融合发展,数据湖的边界不断扩展,内涵也发生了变化。数据湖开始汇集各方面技术,逐步演进称为集多源异构数据统一储存、多范式计算分析及统一管理调用的大数据综合解决方案。它可以更加高效率低成本管理海量多源异构数据,打通数据孤岛,释放数据价值,助力新时代下各行企业的数字化转型。
— TO CONTINUED —
DW001 - 数据仓库理论知识的更多相关文章
- 商业智能BI-基础理论知识总结 ZT
因为要加入一个BI项目,所以最近在研究BI相关的知识体系,由于这个方面的知识都是比较零散,开始都很多概念,不知道从何入手,网上找的资料也不多,特别是实战案例方面更少,这里还是先把理论知识理解下吧,分享 ...
- js中函数的一些理论知识
函数的一些理论知识 1. 函数: 执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...
- 用VC进行COM编程所必须掌握的理论知识
一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程 ...
- 图形学理论知识 BRDF 双向反射分布函数(Bidirectional Reflectance Distribution Function)
图形学理论知识 BRDF 双向反射分布函数 Bidirectional Reflectance Distribution Function BRDF理论 BRDF表示的是双向反射分布函数(Bidire ...
- TestNG学习-001-基础理论知识
此 文主要讲述用 TestNG 的基础理论知识,TestNG 的特定,编写测试过程三步骤,与 JUnit4+ 的差异,以此使亲对 TestNG 测试框架能够有一个简单的认知. 希望能对初学 TestN ...
- [转] DDD领域驱动设计(三) 之 理论知识收集汇总
最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric ...
- Winsock网络编程笔记(4)----基本的理论知识
前面的笔记记录了Winsock的入门编程,领略了Winsock编程的乐趣..但这并不能算是掌握了Winsock,加深理论知识的理解才会让后续学习更加得心应手..因此,这篇笔记将记录一些有关Winsoc ...
- Android初级教程对大量数据的做分页处理理论知识
有时候要加载的数据上千条时,页面加载数据就会很慢(数据加载也属于耗时操作).因此就要考虑分页甚至分批显示.先介绍一些分页的理论知识.对于具体用在哪里,会在后续博客中更新. 分页信息 1,一共多少条数据 ...
- Android初级教程理论知识(第四章内容提供器)
之前第三章理论知识写到过数据库.数据库是在程序内部自己访问自己.而内容提供器是访问别的程序数据的,即跨程序共享数据.对访问的数据也无非就是CRUD. 内容提供者 应用的数据库是不允许其他应用访问的 内 ...
- 关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。
几乎所有人的第一个程序是从“hello,world”程序开始学习的 #include "mpi.h" #include <stdio.h> int main(int a ...
随机推荐
- Gitlab的备份与恢复,异机转移
注意:异机转移的时候,gitlab的版本必须一致. 一.备份GitLab数据 停止GitLab服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq 创 ...
- 在docker中使用主机串口通讯
在进行软件docker化的过程时,很大的一个阻碍就是软件与各种外围硬件设备的交互,网口通信的设备能够很容易地接入容器,但是串口设备则要复杂一些.本文讨论在windows和linux下docker容器使 ...
- SPRING BOOT 项目中使用<SCOPE>PROVIDED</SCOPE>打包成WAR到TOMCAT运行出现的问题总结
大家知道 spring boot 项目是自带tomcat 的,但是我们有时候是需要把项目打包成war 然后放到独立的tomcat中运行的,这个时候我们就需要将它自带的tomcat给排除开,这时候我们就 ...
- 波折重重:Linux实时系统Xenomai宕机问题的深度定位
目录 一 前言 二 背景 三 原因分析及措施 硬件原因 应用软件 操作系统 四 分析定位 转机 拨云见雾 irq计数 Schedstat coreclk 现象结论 五 原因一 六 原因二 七 解决 八 ...
- Qt编写视频监控系统77-Onvif组件支持非正常时间的设备
一.前言 在经历了大量的现场设备测试,至少几十种厂家.几百种设备,遇见过奇奇怪怪的问题,一个个想方设法解决,发现有个问题是在下发鉴权的时候,需要带上设备的时间,而不是发送端的时间,如果带的不是设备上的 ...
- Dotnetbar自定义DateTimeInput(时间)控件的显示格式,使其同时显示日期和时间
DateTimeInput控件已有的几种格式可以在Format属性中选择: 但这几种格式仍无法满足我的要求怎么办? 例如想将显示格式定为类似这样的格式:2010-06-11 20:02:52,两步搞定 ...
- [转]GMM:高斯混合模型讲义(台湾)
- IM通讯协议专题学习(四):从Base64到Protobuf,详解Protobuf的数据编码原理
本文由腾讯PCG后台开发工程师的SG4YK分享,进行了修订和和少量改动. 1.引言 近日学习了 Protobuf 的编码实现技术原理,借此机会,正好总结一下并整理成文. 接上篇<由浅入深,从根上 ...
- ATM 管理系统的设计与实现(类似毕业设计,附源代码)
ATM 管理系统的设计与实现 作者前言:本系统通过基本规范化的设计,简单的利用了java基本功能实现了ATM系统,本系统虽然简单,但是逻辑很严密,对于有一定java知识的读者有较大帮助,可以用作参考. ...
- SpringBoot+SpringSecurity+JWT整合实现单点登录SSO史上最全详解
一.什么是单点登陆 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用 ...