数据仓库概念

数据仓库基本架构

数据集市概念

数据湖概念

数据仓库概念

数据仓库(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 - 数据仓库理论知识的更多相关文章

  1. 商业智能BI-基础理论知识总结 ZT

    因为要加入一个BI项目,所以最近在研究BI相关的知识体系,由于这个方面的知识都是比较零散,开始都很多概念,不知道从何入手,网上找的资料也不多,特别是实战案例方面更少,这里还是先把理论知识理解下吧,分享 ...

  2. js中函数的一些理论知识

      函数的一些理论知识 1. 函数:                执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...

  3. 用VC进行COM编程所必须掌握的理论知识

    一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程 ...

  4. 图形学理论知识 BRDF 双向反射分布函数(Bidirectional Reflectance Distribution Function)

    图形学理论知识 BRDF 双向反射分布函数 Bidirectional Reflectance Distribution Function BRDF理论 BRDF表示的是双向反射分布函数(Bidire ...

  5. TestNG学习-001-基础理论知识

    此 文主要讲述用 TestNG 的基础理论知识,TestNG 的特定,编写测试过程三步骤,与 JUnit4+ 的差异,以此使亲对 TestNG 测试框架能够有一个简单的认知. 希望能对初学 TestN ...

  6. [转] DDD领域驱动设计(三) 之 理论知识收集汇总

    最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric ...

  7. Winsock网络编程笔记(4)----基本的理论知识

    前面的笔记记录了Winsock的入门编程,领略了Winsock编程的乐趣..但这并不能算是掌握了Winsock,加深理论知识的理解才会让后续学习更加得心应手..因此,这篇笔记将记录一些有关Winsoc ...

  8. Android初级教程对大量数据的做分页处理理论知识

    有时候要加载的数据上千条时,页面加载数据就会很慢(数据加载也属于耗时操作).因此就要考虑分页甚至分批显示.先介绍一些分页的理论知识.对于具体用在哪里,会在后续博客中更新. 分页信息 1,一共多少条数据 ...

  9. Android初级教程理论知识(第四章内容提供器)

    之前第三章理论知识写到过数据库.数据库是在程序内部自己访问自己.而内容提供器是访问别的程序数据的,即跨程序共享数据.对访问的数据也无非就是CRUD. 内容提供者 应用的数据库是不允许其他应用访问的 内 ...

  10. 关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。

    几乎所有人的第一个程序是从“hello,world”程序开始学习的 #include "mpi.h" #include <stdio.h> int main(int a ...

随机推荐

  1. 【微软】微软程序注册(zfile自建API)

    Zfile支持设置自己的回调地址,怎么设置呢? 参考:https://docs.zfile.vip/advanced/onedrive-api/ 上面文档写的很清楚了,我提醒两点 1.进入 https ...

  2. 部署SkyWalking

    SkyWalking部署说明 二进制包部署 1.下载地址 https://dlcdn.apache.org/skywalking/9.4.0/apache-skywalking-apm-9.4.0.t ...

  3. Windows 10 下编译 64 位 OpenJDK 8 并单步调试

    Windows 10 下编译 64 位 OpenJDK 8 软件版本 操作系统:Windows 10 Cygwin:3.5.4-1 Visual Studio:2010 英文版 freetype: 2 ...

  4. 如何在众多Ubuntu版本中挑选出最适配自身需求的系统版本?用德承工控机GM-1100来深度剖析其中的门道

    Ubuntu是一款基于Debian GNU/Linux,支持x86.amd64(x64)和ppc架构,以桌面应用为主的Linux操作系统.其名称来自非洲南部的语言"ubuntu"( ...

  5. WIN10删除文件时提示“找不到该项目,该项目不在......中,请确认该项目的位置,然后重试”的解决办法

    问题描述: 最近有部分WIN10用户在删除文件时提示"找不到该项目,该项目不在......中,请确认该项目的位置,然后重试". 解决办法: 1.首先新建一个TXT文档(为了方便使用 ...

  6. 解决Failed to load module canberra-gtk-module错误

    在Ubuntu环境里,通过./triangulation 1.png 2.png 命令运行高翔的ch7的triangulation程序时报错: Gtk-Message: 09:10:26.571: F ...

  7. IM群聊消息的已读未读功能在存储空间方面的实现思路探讨

    1.引言 IM系统中,特别是在企业应用场景下,消息的已读未读状态是一个强需求. 以阿里的钉钉为例,钉钉的产品定位是用于商务交流,其"强制已读回执"功能,让职场人无法再"假 ...

  8. 即时通讯技术文集(第16期):IM架构设计技术精选(第一部分) [共17篇]

    为了更好地分类阅读总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第16 期. [- 1 -] 浅谈IM系统的架构设计 [链接] http://www.52im.net/thread ...

  9. Docker 迁移数据目录

    Centos7 环境,采用yum安装的,默认数据目录在/var/lib/docker中 1. 关闭docker服务 systemctl stop docker 2. 备份和迁移 # 迁移 cp -r ...

  10. 【C语言学习】——命令行编译运行 C 语言程序的完整流程

    今天要学习的内容是 命令行编译运行 C 语言程序,进一步理解C语言编译运行的底层实现和编译原理相关知识,下面是命令行编译运行 C 语言程序的完整流程 一.理论讲解 1. 编译原理概述 1.1 编译过程 ...