数据仓库(DW)与操作型数据存储(ODS)
作者:岸本瑠可的秘密_344 | 来源:互联网 | 2023-05-19 16:20
数据仓库(DW)与操作型数据存储(ODS)1概述系统应用集成中一般对各系统中数据分为两类操作型数据:它有细节化,分散化的特点决策型数据:它有综合化,集成化的特点数据仓库概念的提出也把数据处理划分为
数据仓库(DW)与操作型数据存储(ODS)
1 概述
系统应用集成中一般对各系统中数据分为两类
操作型数据:它有细节化,分散化的特点
决策型数据:它有综合化,集成化的特点
数据仓库概念的提出也把数据处理划分为了操作型处理和分析型处理两种不同类型,从而建立起了DB-DW的两层体系结构。但是有很多情况,DB-DW的两层体系结构并不能涵盖企业所有的数据处理要求,比如有些实时性决策问题,它要求获取数据周期不能太长,而且也需要一定程度的汇总。这样的问题可以借助于DB-DW的中间层ODS(操作数据存储)来解决。它象DW一样是一种面向主题,集成的数据环境,又象操作型DB一样包含着全局一致的,细节的当前的数据。我们看下常用的几种系统应用集成需求:
我要了解企业目前的运转情况!(实时监控)
我要知道某地区近5年内的销售情况以制定未来的发展策略!(决策支持)
我要知道哪些是值得发展的优质的顾客!(预测)
提供企业内部和外部的有用信息以支持中期或远期决策
提供事实的全局信息进行实时监控与临时决策
要满足上面所有的需求,不管是传统的OLTP系统还是已经集成的数据仓库,都是很难完成任务的。由于这些原因,ODS应运而生。ODS可以看做是围绕主题进行动态整合的一种应用型体系结构,它有如下一些特点:
从应用子系统获取数据
提供几乎精确到每秒的企业整体应用状态
数据一旦过期就将转入DW
实时决策与预警提示
使用者多为前端业务人员
2 DW与ODS比较:
数据仓库
ODS
目的
决策支持
接近实时监控
共同点
整合数据
整合数据
面向主题
面向主题
不同点
静态数据
(延迟>24小时)
动态数据
(延迟>1秒)
历史数据
当前数据
概括性数据
细节化数据
3 应用集成方案比较
实施方案
实施结果
优势
缺陷
数据仓库(DW)
企业能够分析DW中的历史数据,进行中远期的规划
可以解决企业的决策需求
不能满足企业的实时监控和实时业务需求
操作型数据存储(ODS)
企业能够把握ODS中的当前综合数据,对企业的及时运行情况随时掌控
可以满足企业的实时监控和实时业务需求
不能满足企业的中远期决策需求
DW+ODS(如下图)
企业能够分析ODS中的当前综合数据,对企业当前运行情况进行宏观控制;能够分析DW中的历史数据,对未来进行合理规划
既能把握实时的企业运作情况,采取及时的应对措施;又能把握历史纵向概况,进行远期战略规划
图1 ODS+DW方案
4 三种类型的ODS:
类型一:以几秒为间隔的更新(非常贵、不常用、数据整合能力弱)
类型二:以约1小时为间隔的更新(常用、数据整合能力较强)
类型三:以约1天为间隔的更新(常用、数据整合能力较强)
ODS技术的引入和应用,为企业在日常经营中进行即时OLAP提供了一种解决方案使得企业无须建立一个“臃肿”的DW,就可以进行一些非战略性的的中层决策,来实现对企业的日常管理和控制,同时也能获得较快的响应速度
ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。
根据Bill.Inmon的定义,“数据仓库是面向主题的、集成的、稳定的、随时间变化的,主要用于决策支持的数据库系统”
ODS是一个面向主题的、集成的、可变的、当前的细节数据集合,用于支持企业对于即时性的、操作性的、集成的全体信息的需 求。常常被作为数据仓库的过渡,也是数据仓库项目的可选项之一。
在Kimball的<<数据仓库生命周期工具集The Data WareHouse Liftcycle Toolkit>>,他是这样定义的:
1. 是操作型系统中的集成,用于当前,历史以及其它细节查询(业务系统的一部分)
2. 为决策支持提供当前细节数据(数据仓库的一部分)
因此操作数据存储(ODS) 是用于支持企业日常的全局应用的数据集合,ODS的数据具有面向主题、集成的、可变的和数据是当前的或是接近当前的4个基本特征。同样也可以看出ODS是介于DB和DW 之间的一种数据存储技术,和原来面向应用的分散的DB相比,ODS中的数据组织方式和数据仓库(DW)一样也是面向主题的和集成的,所以对进入ODS的数 据也象进入数据仓库的数据一样进行集成处理。另外ODS只是存放当前或接近当前的数据,如果需要的话还可以对ODS中的数据进行增、删和更新等操 作,虽然DW中的数据也是面向主题和集成的,但这些数据一般不进行修改,所以ODS和DW的区别主要体现数据的可变性、当前性、稳定性、汇总度上。
由于ODS仍然存储在普通的关系数据库中,出于性能、存储和备份恢复等数据库的角度以及对源数据库的性能影响角度,个人不建议ODS保存相当长周期的数据,同样ODS中的数据也尽量不做转换,而是原封不动地与业务数据库保持一致。即ODS只是业务数据库的一个备份或者映像,目的是为了使数据仓库的处理和决策支持要求与OLTP系统相隔离,减少决策支持要求对OLTP系统的影响。
为什么需要有一个ODS系统呢?一般在带有ODS的系统体系结构中,ODS都具备如下几个作用:
1)在业务系统和数据仓库之间形成一个隔离层。
一 般的数据仓库应用系统都具有非常复杂的数据来源,这些数据存放在不同的地理位置、不同的数据库、不同的应用之中,从这些业务系统对数据进行抽取并不是一件 容易的事。因此,ODS用于存放从业务系统直接抽取出来的数据,这些数据从数据结构、数据之间的逻辑关系上都与业务系统基本保持一致,因此在抽取过程中极 大降低了数据转化的复杂性,而主要关注数据抽取的接口、数据量大小、抽取方式等方面的问题。
2)转移一部分业务系统细节查询的功能
在 数据仓库建立之前,大量的报表、分析是由业务系统直接支持的,在一些比较复杂的报表生成过程中,对业务系统的运行产生相当大的压力。ODS的数据从粒度、 组织方式等各个方面都保持了与业务系统的一致,那么原来由业务系统产生的报表、细节数据的查询自然能够从ODS中进行,从而降低业务系统的查询压力。
3)完成数据仓库中不能完成的一些功能。
一般来说,带有ODS的数据仓库体系结构中,DW层所存储的数据都是进行汇总过的数据和运营指标,并不存储每笔交易产生的细节数据,但是在某些特殊的应用中,可能需要 对交易细节数据进行查询,这时就需要把细节数据查询的功能转移到ODS来完成,而且ODS的数据模型按照面向主题的方式进行存储,可以方便地支持多维分析 等查询功能。即数据仓库从宏观角度满足企业的决策支持要求,而ODS层则从微观角度反映细节交易数据或者低粒度的数据查询要求。
在一个没有ODS层的数据仓库应用系统体系结构中,数据仓库中存储的数据粒度是根据需要而确定的,但一般来说,最为细节的业务数据也是需要保留的,实际上 也就相当于ODS,但与ODS所不同的是,这时的细节数据不是“当前、不断变化的”数据,而是“历史的,不再变化的”数据。这样的数据仓库的存储压力和性能压力都是比较大的,因此对数据仓库的物理设计和逻辑设计提出了更高的要求。
推荐阅读
-
本文详细介绍如何下载并安装MySQL数据库(5.7.10版本),以及配置Navicat管理工具(免费版)。通过本指南,您将了解从下载到安装的完整流程,并掌握基本的数据库管理技能。 ...
[详细]
蜡笔小新 2024-12-27 10:53:40
-
几何画板是一款功能强大的物理教学软件,具备丰富的绘图和度量工具。它不仅能够模拟物理实验过程,还能通过定量分析揭示物理现象背后的规律,尤其适用于难以在实际实验中展示的内容。本文将介绍如何使用几何画板演示电场线与等势面之间的关系。 ...
[详细]
蜡笔小新 2024-12-27 10:46:07
-
-
本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ...
[详细]
蜡笔小新 2024-12-26 21:04:46
-
本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ...
[详细]
蜡笔小新 2024-12-26 20:16:36
-
本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ...
[详细]
蜡笔小新 2024-12-26 19:55:24
-
本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ...
[详细]
蜡笔小新 2024-12-26 19:14:29
-
本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ...
[详细]
蜡笔小新 2024-12-26 19:08:19
-
本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ...
[详细]
蜡笔小新 2024-12-26 18:20:17
-
本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ...
[详细]
蜡笔小新 2024-12-26 17:34:42
-
本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ...
[详细]
蜡笔小新 2024-12-26 17:05:56
-
本文详细介绍了 MySQL 的查询处理流程,包括从客户端连接到服务器、查询缓存检查、语句解析、查询优化及执行等步骤。同时,深入探讨了 MySQL 中的乐观锁机制及其在并发控制中的应用。 ...
[详细]
蜡笔小新 2024-12-26 16:17:48
-
本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ...
[详细]
蜡笔小新 2024-12-26 16:06:09
-
本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ...
[详细]
蜡笔小新 2024-12-26 15:15:06
-
本文深入探讨了 Java 编程语言的基础,特别是其跨平台特性和 JVM 的工作原理。通过介绍 Java 的发展历史和生态系统,帮助初学者理解如何编写并运行第一个 Java 程序。 ...
[详细]
蜡笔小新 2024-12-26 15:03:43
-
本文介绍了一种通过逐对比较线段来求解交点的简单算法。此外,还提到了一种基于排序的方法,但该方法较为复杂,尚未完全理解。文中详细描述了如何根据线段端点求交点,并判断交点是否在线段上。 ...
[详细]
蜡笔小新 2024-12-26 14:48:56
-
岸本瑠可的秘密_344
这个家伙很懒,什么也没留下!