数据仓库基础概念

数据仓库

概念

数据仓库(Data Warehouse, DW)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合。它是为满足企业决策分析需求而设计的。

  • 面向主题:数据仓库围绕特定的主题组织数据,例如“销售”或“人力资源”,通过整合各类数据提供全面的视角。

  • 集成:数据仓库从多个异构数据源抽取数据,经过清理、转换和整合,消除数据冗余,保证数据一致性。

  • 相对稳定:一旦数据进入数据仓库,便很少修改,主要是为了历史数据分析和未来趋势预测。

  • 反映历史变化:数据仓库保存数据的历史状态,支持随时间维度的数据分析。

发展历程

数据仓库的发展经历了几个关键阶段:

  1. 萌芽阶段(1978-1988年):提出了将业务处理系统(OLTP)与业务分析系统(OLAP)分离的思想,早期的尝试集中在减少交易系统的负载以提高分析能力。

  2. 探索阶段(20世纪80年代中期):DEC公司建立了TA2规范,定义了分析系统由数据获取、访问目录和用户服务组成。这一时期,人们开始探索如何有效地存储和检索大量数据。

  3. 出行阶段(1988年):IBM提出信息仓库的概念,涵盖了数据的抽取、转换、有效性验证、加载、cube开发和图形化展示。这一阶段引入了更多视觉化工具来呈现数据分析的结果。

  4. 确立阶段(1991年):Bill Inmon出版了《数据仓库》一书,提出了数据仓库的奠基原则,包括面向主题、集成、包含历史、不可更新、面向决策支持、面向全企业、最明细数据存储和快照式数据获取。

  5. 合并阶段(1998年):Inmon提出的企业信息工厂(CF架构),结合范式建模和维度建模的优点,进行分层构建数据仓库,推动了数据仓库结构的进一步完善和标准化。

结构

数据仓库的结构通常分为以下几层:

  1. 数据引入层(ODS:Operational Data Store)
    这一层的数据结构与源系统保持一致,通常是增量或全量数据的临时存储区。ODS层的主要目的是保存原始数据,便于后续的数据核对和处理。

  1. 数据明细层(DWD:Data Warehouse Detail)
    在这一层,对ODS层的数据进行清洗、转换,以业务过程为核心构建最细粒度的明细事实表。基于具体业务的特点,DWD层的表通常会做一些适当的冗余处理,形成宽表以提高查询性能和数据的可用性。
  1. 汇总数据层(DWS:Data Warehouse Summary)
    此层基于明细层的数据进行初步汇总,构建汇总事实表。这些表通常是宽表形式,提供公共的统计指标,为上层数据分析提供基础。
  1. 公共维度层(DIM:Dimension)
    维度层包含所有数据分析所需的维度表,确保数据口径的一致性,方便多角度、多层次的数据分析。
  1. 应用数据服务层(ADS:Application Data Service)
    最高层面向具体应用场景,对汇总数据进行进一步加工,直接服务于前端BI工具或决策支持系统。

维度建模

概念

维度建模是由Ralph Kimball提出的一种专门用于数据仓库环境的建模方法。它采用反范式化设计,不严格遵循传统的数据库规范化标准,更加注重查询的性能和数据的易用性。

核心组件

维度建模的核心组件包括事实表和维度表:

  • 事实表(Fact Table)

    • 粒度:事实表中的每一条记录代表一个具体的业务事件,比如一笔销售记录或一次财务交易。粒度决定了这条记录所包含的业务细节的程度。

    • 度量:事实表中的数据元素通常是数值型的,如销售金额、数量、利润等。度量可以分为可加性、半可加性和不可加性。

    • 类型:事实表可分为事务事实表、周期快照事实表和累积快照事实表。事务事实表记录具体的业务事件,而快照事实表则定期捕获某一时刻的状态。

  • 维度表(Dimension Table)

    • 维度:维度是用于描述和分类事实的环境。例如,在销售数据中,“时间”、“地点”、“产品”和“客户”都是典型的维度。

    • 属性:每一个维度表由若干属性列组成,这些属性用于过滤、分组和标记数据。例如,产品维度表可能包含产品名称、类别、价格等属性。

    • 退化维度:有时候,维度表中的某些属性也会存入事实表中,这样的列被称为退化维度。

模型类型

维度建模常见的模型类型有星型模型、雪花模型和星座模型:

  • 星型模型(Star Schema)

    • 由一张中央事实表和若干外围维度表组成,结构清晰,查询简便,适合新手和中级数据仓库用户。
  • 雪花模型(Snowflake Schema)

    • 对星型模型进行扩展,将维度表进一步层次化,形成树枝状结构。这样可以减少表的宽度和冗余,但也增加了查询的复杂性。
  • 星座模型(Galaxy Schema)

    • 包含多张事实表,共享一组公共维度表。适用于复杂业务场景,每张事实表可以代表一个不同的业务过程。
应用

维度建模的目标是满足业务分析和决策的需求,使数据仓库的数据易于理解和查询。通过合理设计事实表和维度表,可以快速响应业务查询,提供高效的分析性能。例如,在电商行业中,维度建模可用于销售数据分析,通过构建“时间”、“地域”、“产品类别”和“顾客”等多个维度表,围绕“销售事实表”进行组织,可以轻松实现多角度、多层次的销售数据透视和分析。

总结

数据仓库和维度建模是现代企业数据分析不可或缺的部分。数据仓库通过整合、清洗和转换来自不同源系统的数据,为企业提供一致、可靠的历史数据,支持战略决策和未来趋势预测。维度建模作为一种反范式化的建模方法,通过设计合理的事实表和维度表,大大提高了数据查询和分析的效率,使数据仓库更能贴近业务需求,易于理解和使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/57663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot自动初始化表结构及其数据

1.通过配置文件进行初始化 mode:控制 SQL 初始化的模式,取值可以是: never:禁用初始化。embedded:仅在嵌入式数据库中初始化。always:每次应用启动时都初始化。 spring:sql:init:platform: mysqlmode: a…

HarmonyOS NEXT开发实战:实现高效下拉刷新与上拉加载组件(二)刷新核心逻辑与空页面集成

前言: 在上一篇文章中,我们深入探讨了如何在HarmonyOS中实现一个功能完备的空页面组件。现在,我们将进入下拉刷新和上拉加载功能的核心逻辑实现。这不仅仅是技术实现,更是对用户体验的深刻理解。本文将详细介绍如何将空页面与下拉刷新、上拉加载逻辑相结合,打造一个既高效…

学成在线实战

#1024程序员节|征文# 一、Bug修改 在实战之前,老师留了一个bug,这个bug出现的原因是因为在查询课程计划时,使用的是Inner join查询,所以当章节下面没有小节的时候,是查不出来数据的,只需要将其…

PHP企业门店订货通进销存系统小程序源码

订货通进销存系统,企业运营好帮手! 📦 开篇:告别繁琐,企业运营新选择 嘿,各位企业主和创业者们!今天我要给大家介绍一款超实用的企业运营神器——“订货通进销存系统”。在这个数字化时代&…

YOLOv5_DeepSORT实现电动自行车头盔佩戴检测系统

获取更多完整项目代码数据集,点此加入免费社区群 : 首页-置顶必看 文档说明 本文档是毕业设计——基于深度学习的电动自行车头盔佩戴检测系统的开发环境配置说明文档,该文档包括运行环境说明以及基本环境配置两大部分。在程序运行前请认真查…

零售行业的数字化营销转型之路

一方面,市场竞争激烈,电商平台、新兴品牌和跨界对手带来巨大压力。另一方面,消费者需求变化迅速,更加追求个性化、多元化和便捷化的购物体验,同时传统零售企业还面临着高成本压力,如租金、人力和库存等。 然…

Rsync数据复制/备份服务应用

文章目录 1. rsync概述1.1 什么是Rsync1.2 rsync的功能1.3 rsync 的功能特性1.4 Rsync 增量复制原理1.5 生产场景架构集群备份方案 2. Rsync工作方式介绍与实践2.1 本地数据传输模式2.1.1 本地数据传输模式语法2.1.2 本地数据传输模式实践 2.2 远程Shell 数据传输模式2.2.1 远程…

WSL(Ubuntu20.04)编译和安装DPDK

编译和安装DPDK DPDK可以使用工具meson和ninja在您的系统上进行配置、构建和安装。 DPDK配置 要配置DPDK构建,请使用: meson setup build --prefix/home/xx/dpdk19.11xxxx:~/dpdk-stable-19.11.14/$ meson setup build Message:Content Skipped libs…

React与TypeScript

React创建项目方式 react脚手架:create-react-app 项目名 --template typescript基于vite创建项目:npm init vitelatest 项目名 – --template react-ts useState自动推导 通常React会根据传入useState的默认值来自动推导类型,不需要显示标…

数据结构练习题5(链表和栈)

1环形链表 II 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测…

vue实现富文本编辑器上传(粘贴)图片 + 文字

vue实现富文本编辑器上传(粘贴)图片 文字 1.安装插件 npm install vue-quill-editor -s2.在使用vue-quill-editor富文本的时候,对于图片的处理经常是将图片转换成base64,再上传数据库,但是base64不好存储。 原理&a…

十七、行为型(命令模式)

命令模式(Command Pattern) 概念 命令模式是一种行为型设计模式,它将请求封装成一个对象,从而使您可以使用不同的请求对客户进行参数化,排队请求,以及支持可撤销操作。通过这种模式,调用操作的…

全面指南:中国人工智能大模型技术创新与应用

近期,中国人工智能协会发布了《中国人工智能大模型技术白皮书》,涵盖了大模型发展历程、关键技术、困难及挑战以及未来发展的展望。 在此本文总结了下白皮书的主要内容,并附上白皮书~ 目录第 1 章 大模型技术概述 ........................…

基础数据结构——队列(双端队列,优先级队列,阻塞队列)

双端队列、队列、栈对比 定义特点队列一端删除(头)另一端添加(尾)First In First Out栈一端删除和添加(顶)Last In First Out双端队列两端都可以删除、添加优先级队列优先级高者先出队延时队列根据延时时间…

微信小程序地图功能开发:绘制多边形和标记点

在微信小程序中,地图功能是一个常见的需求,尤其是在需要展示地理位置、导航指引或区域覆盖的应用中。本文将通过一个实际的微信小程序地图组件示例,介绍如何在地图上绘制多边形区域和标记点,以及如何响应用户的点击事件。 项目背景…

V2X介绍

文章目录 什么是V2XV2X的发展史早期的DSRC后起之秀C-V2XC-V2X 和DSRC 两者的对比 什么是V2X 所谓V2X,与流行的B2B、B2C如出一辙,意为vehicle to everything,即车对外界的信息交换。车联网通过整合全球定位系统(GPS)导…

实操 maxkey对接三方文档

实操 maxkey 对接三方文档 概述前置准备:MaxKey 安装与配置:第三方系统准备网络环境 对接三方配置oauth2协议对接导入jar包(调接口)权限加回调重定向获取token处理业务 api对接三方获取api凭证配置 MaxKey更新代码 概述 最近在搞m…

【华为HCIP实战课程十六】OSPF虚链路Vlink,网络工程师

一、vlink续 区域内部的路由优于区域之间的路由,区域之间优于外部路由,外部路由类型1优于外部类型2 只有同一级别的路由才会对比cost <R3>tracert 11.1.1.1 traceroute to 11.1.1.1(11.1.1.1), max hops: 30 ,packet length: 40,press CTRL_C to break 1 10.1.35.5 …

2024年808数据结构答案

1.已知带头结点单链表&#xff0c;H为头指针。设计一个算法&#xff0c;查找到链表的第m个结点(不包含头结点)&#xff0c;并将元 素值为X的结点插入到该结点后&#xff0c;形成一个新的链表。 // 定义单链表节点结构 typedef struct Node {int data;struct Node* next; } Nod…

fluent-ffmpeg操作MP3文件深入解析

软考鸭微信小程序 学软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 引言 fluent-ffmpeg是一个功能强大的Node.js库&#xff0c;它为FFmpeg提供了一个流畅的接口。FFmpeg是一个著名的多媒体框架&#xff0c;以处理音频、视频和…