【数据仓库与联机分析处理】数据仓库

news2024/11/26 6:20:27

目录

一、数据仓库的概念

二、数据仓库与操作性数据库的区别

三、发展前期

四、数据仓库的系统结构

五、建模划分

六、主要案例 


一、数据仓库的概念

        目前很难给数据仓库(Data Warehouse)一个严格的定义,不准确地说,数据仓库也是一种数据库,它与操作性数据库进行分开维护。按照数据仓库系统构造方面的领头设计师William H.Inmon的说法,数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)以及反映历史变化(Time Variant)的数据集合,用于支持管理决策。

1、面向主题是指数据仓库会围绕一些主题来组织和构建,如顾客、供应商、产品等,数据仓库关注决策者的数据建模与分析,而不是企业的日常操作和事务处理,因此,数据仓库排除对决策支持过程无用的数据,提供面向特定主题的视图。
2、集成是指通常构建数据仓库会将多个异构的数据源,如关系数据库、一般的文件和事务处理记录等集成在一起,这就需要使用数据清理和数据集成技术,来确保命名约定、编码结构和属性度量等的一致性。
3、相对稳定是指数据仓库大多会分开存放数据,数据仓库不需要进行事务处理、数据恢复和并发控制等机制,通常数据仓库只需要两种数据访问操作:数据的初始化装入和数据的访问。
4、反映历史变化是指数据仓库是从历史的角度提供信息,换句话说,数据仓库中的关键结构都会显式或者隐式地包含时间元素。

二、数据仓库与操作性数据库的区别

        为了进一步加深对数据仓库概念的理解,我们把数据库系统和数据仓库进行对比。为了区分,这里把数据库系统称为操作性数据库。操作性数据库的主要任务是执行联机事务和查询处理,这种系统称为联机事务处理(Online Transaction Processing,OLTP)系统,它涵盖了企业组织机构大部分的日常操作,如购物、注册、记账等。 数据仓库系统则是在数据分析和决策方面为用户和决策者提供服务,以特定的主题和格式来组织和提供数据,从而满足不同用户的需求,因此这种系统称为联机分析处理(Online Analytical Processing,OLAP)系统。

OLTP和OLAP的主要区别体现在如下几个方面:

1、系统面向的用户对象不同。OLTP系统面向一般的客户,用于数据库用户的事务处理和查询,而OLAP系统则是面向知识工人或者管理决策人员,提供数据分析功能。
2、数据的内容不同。OLTP管理的是当前的数据,对于数据的操作相对较为细小琐碎,无法用于决策。OLAP则管理了大量的历史数据,如一个销售公司一个月、一年甚至数年的销售数据。OLAP提供了汇总和聚集机制,并且可以在不同的粒度级别、不同的维度视角来存储和管理数据,这些优势使得数据可以用于分析和决策任务。
3、采用的模型和设计不同。通常OLTP系统采用的实体—联系(E-R)模型和面向应用的数据库设计,而OLAP采用的是面向某个主题的星形模式、雪花模式或事实星座模式的数据库设计。
4、访问模式不同。OLTP系统的访问模式主要由短的原子事务所组成,既有读操作也有写操作,这种系统需要考虑事务管理、并发控制和故障恢复等机制。而OLAP的访问模式在完成数据的初始装载以后,基本都是只读操作。
5、数据的视图不同。OLTP主要关注当前生产环境的数据,不太涉及历史数据。而OLAP系统通常要跨越数据库的多个版本,处理来自不同组织的数据信息。由于数据量巨大,OLAP的数据通常会存放在多个存储介质上。

操作性数据库与数据仓库的其他区别,如数据量的大小、操作的频度和性能等,如下表所示:

三、发展前期

        计算机发展的早期,人们已经提出了建立数据仓库的构想。“数据仓库”一词最早是在1990年,由Bill Inmon先生提出的,其描述如下:数据仓库是为支持企业决策而特别设计和建立的数据集合。
        企业建立数据仓库是为了填补现有数据存储形式已经不能满足信息分析的需要。数据仓库理论中的一个核心理念就是:事务型数据和决策支持型数据的处理性能不同。企业在它们的事务操作收集数据。在企业运作过程中:随着定货、销售记录的进行,这些事务型数据也连续的产生。为了引入数据,我们必须优化事务型数据库。
        处理决策支持型数据时,一些问题经常会被提出:哪类客户会购买哪类产品?促销后销售额会变化多少?价格变化后或者商店地址变化后销售额又会变化多少呢?在某一段时间内,相对其他产品来说哪类产品特别容易卖呢?哪些客户增加了他们的购买额?哪些客户又削减了他们的购买额呢?
        事务型数据库可以为这些问题作出解答,但是它所给出的答案往往并不能让人十分满意。在运用有限的计算机资源时常常存在着竞争。在增加新信息的时候我们需要事务型数据库是空闲的。而在解答一系列具体的有关信息分析的问题的时候,系统处理新数据的有效性又会被大大降低。另一个问题就在于事务型数据总是在动态的变化之中的。决策支持型处理需要相对稳定的数据,从而问题都能得到一致连续的解答。
        数据仓库的解决方法包括:将决策支持型数据处理从事务型数据处理中分离出来。数据按照一定的周期(通常在每晚或者每周末),从事务型数据库中导入决策支持型数据库——既“数据仓库”。数据仓库是按回答企业某方面的问题来分“主题”组织数据的,这是最有效的数据组织方式。

四、数据仓库的系统结构

1、数据源
        是数据仓库的数据来源,含外部数据、现有业务系统和文档资料等;对这些数据首先完成数据集成,包括数据的抽取、清洗、转换和加载任务。数据源中的数据采用ETL(Extract-Transform-Load,数据抽取、转换、装载)工具并以固定的周期加载到数据仓库中。

2、数据存储和管理
        此层次主要涉及对数据的存储和管理,含数据仓库、数据仓库检测、运行与维护工具和元数据管理等。

3、数据服务
        为前端和应用提供数据服务,可直接从数据仓库中获取数据供前端应用使用,也可通过OLAP服务器为前端应用提供负责的数据服务。

4、数据应用
        此层次直接面向用户,含数据查询工具、自由报表工具、数据分析工具、数据挖掘工具和各类应用系统。

随着应用需求的发展变化,传统的数据仓库也存在如下几个亟待解决的问题:
(1)无法满足快速增长的数据存储需求,传统数据仓库基于关系型数据库,横向扩展较差,纵向扩展有限。
(2)无法处理不同类型的数据,传统数据仓库只能处理和存储结构化数据。随着应用需求的发展,数据的格式越来越丰富,半结构化、非结构化数据所占比重越来越大,处理需求越来越迫切。
(3)传统数据仓库建立在关系型数据仓库之上,计算和处理能力不足,当数据量达到TB级后性能难以得到保证。

五、建模划分

数据仓库的数据建模大致分为四个阶段:

1、业务建模,这部分建模工作,主要包含以下几个部分:
(1)划分整个单位的业务,一般按照业务部门的划分,进行各个部分之间业务工作的界定,理清各业务部门之间的关系。
(2)深入了解各个业务部门内的具体业务流程并将其程序化。
(3)提出修改和改进业务部门工作流程的方法并程序化。
(4)数据建模的范围界定,整个数据仓库项目的目标和阶段划分。

2、领域概念建模,这部分得建模工作,主要包含以下几个部分:
(1)抽取关键业务概念,并将之抽象化。
(2)将业务概念分组,按照业务主线聚合类似的分组概念。
(3)细化分组概念,理清分组概念内的业务流程并抽象化。
(4)理清分组概念之间的关联,形成完整的领域概念模型。

3、逻辑建模,这部分的建模工作,主要包含以下几个部分:
(1)业务概念实体化,并考虑其具体的属性。
(2)事件实体化,并考虑其属性内容。
(3)说明实体化,并考虑其属性内容。

4、物理建模,这部分得建模工作,主要包含以下几个部分:
(1)针对特定物理化平台,做出相应的技术调整。
(2)针对模型的性能考虑,对特定平台作出相应的调整。
(3)针对管理的需要,结合特定的平台,做出相应的调整。
(4)生成最后的执行脚本,并完善之。

六、主要案例 

1、Agrofert
        农业、食品和化工集团Agrofert 发现,随着企业的快速发展,旗下子公司已经有 160 多个不同的系统在运行。很难提供统一的报告,而且支持和许可成本也不断上升。如果每新购一个系统就扩大一次基础架构,显然不是一种可以扩展的战略。Agrofert采用 SAP ERP 应用程序作为其部分子公司的共享服务,目的是将其逐渐推广到整个企业,这些应用程序在两个地点的 IBM Power Systems 服务器上集中管理。公司从混合数据库环境(包括 Oracle 和 Microsoft SQL Server)迁移到 IBM DB2,将 IBM DB2 作为其标准数据库,同时还为关键的业务数据部署集中的存储系统。迁移后,不再需要本地系统,能够极大地降低管理、支持和许可成本;借助IBM DB2 可降低许可费用,简化管理并减少员工教育及培训;整合的存储有助于降低成本,而 IBM DB2 深度压缩将会降低总体存储需求;总成本估计减少 20%。

2、迪斯尼乐园
        Disney每年都有10亿美元商品销售收入,而建立一个ERP系统来处理这些信息是极具挑战性的。最新的集中式ERP系统是设计用来处理商品管理、存货管理和相关业务过程的。但是Disney 也希望平衡财务和业务智能(BI)报告和业务分析系统,这意味着建立一个新的数据仓库。Disney在该项目中所使用的一些产品包括SAS分析软件和Teradata数据仓库技术。最新的集中式ERP、数据仓库和分析系统正帮助Disney更好地管理存货、分析销售额和预报特定领域的商品需求。

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

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

相关文章

C# A* 算法 和 Dijkstra 算法 结合使用

前一篇:路径搜索算法 A* 算法 和 Dijkstra 算法-CSDN博客文章浏览阅读330次,点赞9次,收藏5次。Dijkstra算法使用优先队列来管理待处理的节点,通过不断选择最短距离的节点进行扩展,更新相邻节点的距离值。Dijkstra算法使…

一分钟带你了解支持向量机(SVM)

支持向量机(Support Vector Machine,SVM)是一种用于分类问题的监督算法。主要用于二分类和多分类问题。其基本思想是找到一个超平面,能够将不同类别的样本点尽可能地分开,并使得离超平面最近的样本点尽可能远离超平面&…

基于Vue的宿舍管理系统

基于Vue的宿舍管理系统资源-CSDN文库 基于 Koa 以及 VueJS 的宿舍管理系统。 新增功能: 【楼层管理】添加『入住人员信息』模块,显示入住学生、性别、院系、专业的人数,可用饼图表示【用户信息】学生用户添加性别、院系、专业字段【楼层管理…

大洋钻探系列之五“地球号”钻探船

​ “地球号”(Chikyu)是日本船舶科学技术中心为实施“21世纪海洋钻探规划” 而订造的一艘隔水管型深海钻探船, 主要用于对深海海底地质结构的勘探, 由三井造船工程公司所属的玉野船厂建造, 于2002年1月下水。该船在玉…

ant design pro 5 企业级后台前端框架自定义根路径设置,解决public文件夹下资源在打包部署后出现找不到的问题

关于ant design pro v5的开箱使用方法见:开箱即用的企业级数据和业务管理中后台前端框架Ant Design Pro 5的开箱使用和偏好配置-CSDN博客 在开发过程中为了方便我们可能会将部分静态资源如logo等放入public文件夹,但在设置站点根路径后,publi…

物联网开发点对点通信模式NFC和蓝牙如何无缝结合

随着物联网开发和智能手机的普及,NFC 技术作为一种新兴的技术正在被越来越多新款手机所采用。该技术的发展使得将 RFID 功能集成到手机的设想成为了可能。当前作为传统近距离通信的蓝牙技术也在不断地发展,传输速率跟过去相比也有大幅度的提高&#xff0…

python爬虫实现获取招聘信息

使用的python版本: 3.12.1 selenium版本:4.8.0 urllib版本:1.26.18 from selenium import webdriver from selenium.webdriver import ActionChains import timeimport re import xlwt import urllib.parsedef get_html(url):chrome_drive…

BDZL-V200 4G无线点对点互相传输终端

随着科技的不断进步,智慧产业正成为各行各业的发展趋势。在这个背景下,BDZL-V200(简称V200)作为一款基于4G无线网络全网通的数据点对点通信技术的无线数据互传终端产品,正式推出市场。该产品将为远方设备的监测、远程抄…

全面开花!聚铭网络入选《ISC 2023数字安全创新能力全景图谱》10大细分领域

日前,《ISC 2023数字安全创新能力全景图谱》重磅出炉,聚铭网络凭借多元化的产品和卓越的创新能力,成功上榜全景图10大细分领域,多项细分领域的入围再一次彰显了聚铭网络过硬的综合安全实力。 据悉,此次全景图是ISC平台…

【数据结构】循环队列(数组实现)

目录 一、循环队列定义 怎么使一个数组在逻辑上呈“环状”呢? 二、循环队列与顺序队列的差异 1、存储方式: 2、操作方式: 3、空间利用率: 4、循环队列判断队空的方式: 5、循环队列判断队满的方式 完整测试代码及注释: 总…

simulink代码生成(九)—— 串口显示数据(纸飞机联合调试)

纸飞机里面的协议是固定的,必须按照协议配置; (1)使用EasyHEX协议,测试int16数据类型 测试串口发出的数据是否符合? 串口接收数据为: 打开纸飞机绘图侧: (1&#xff09…

常见网络协议

1.DNS协议 (域名系统) DNS协议使用的端口号是53 位于OSI模型中的应用层 DNS系统的作用:将域名(网址)解析为IP地址。 DNS的基本原理是:将域名映射到IP地址 DNS工作流程 当用户给定一个域名&#xff0…

实验笔记之——服务器链接

最近需要做NeRF相关的开发,需要用到GPU,本博文记录本人配置服务器远程链接的过程,本博文仅供本人学习记录用~ 连上服务器 首先先确保环境是HKU的网络环境(HKU AnyConnect也可)。伙伴已经帮忙创建好用户(第一次登录会提示重新设置密码)。用cmd ssh链接ssh -p 60001 <u…

综合跨平台全端ui自动化测试框架Airtest——AirtestIDE录制微信小程序脚本教学

前言 有在自动化测试领域的小伙伴应该都知道&#xff0c;app和小程序自动化这一类的自动化测试在实际操作中有时候很棘手让人心烦&#xff0c;动不动就是用appium写代码脚本维护什么的&#xff0c;不仅步骤繁琐&#xff0c;环境配置方面也是繁琐无比&#xff0c;动不动就与客户…

【操作系统xv6】学习记录5--实验1 Lab: Xv6 and Unix utilities

ref:https://pdos.csail.mit.edu/6.828/2020/xv6.html 实验&#xff1a;Lab: Xv6 and Unix utilities 环境搭建 实验环境搭建&#xff1a;https://blog.csdn.net/qq_45512097/article/details/126741793 搭建了1天&#xff0c;大家自求多福吧&#xff0c;哎。~搞环境真是折磨…

前端push.js桌面通知库

push.js 官网&#xff1a;https://pushjs.org/ 安装 1,npm 安装方式 npm install push.js --save 2,script引入方式 <script src"https://cdnjs.cloudflare.com/ajax/libs/push.js/0.0.11/push.min.js"></script> 使用 1&#xff0c;获取用户许可…

UnityRenderStreaming使用记录(二)

记录一下发现的问题 1、网页经常出现一直转但是不出现播放按钮的问题 检查发现有几个js文件从外网加载&#xff0c;速度太慢导致的&#xff0c;下载到本地&#xff0c;重新打包webserver.exe就可以了 比如Receiver Sampled的网页在UnityRenderStreaming\WebApp\client\public…

elect函数可以设置等待时间,

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;贝叶斯滤波与Kalman估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能&#xff0c…

Mybatis-Plus乐观锁配置使用流程【OptimisticLockerInnerInterceptor】

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家:人工智能学习网站 1.乐观锁实现 1.配置插件 1.XML方式 <bean class"com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerI…

el-table表格动态添加列。多组数据拼接和多层级数据的处理

提示&#xff1a;el-table表格动态添加列 文章目录 前言一、多组数据拼接二、多层级处理三、实际应用中&#xff0c;为避免闪屏&#xff0c;可以表格数据统一渲染总结 前言 需求&#xff1a;富文本编辑器 一、多组数据拼接 <template><div class"test">…