为什么我们需要一个单独的数据仓库?
数据仓库是一种技术,主要用于收集和管理来自各种来源的数据,为业务提供有意义的业务洞察力。数据仓库专门用于支持管理决策。
简单来说,数据仓库是指与组织的操作数据库分开维护的数据库。数据仓库系统能够集成多个应用系统。它们通过支持用于分析的整合的历史信息的可靠平台来提供数据处理。
数据仓库查询很复杂,因为它们包含汇总级别的大量信息的计算。它可能需要使用独特的数据组织、访问和实现技术,这取决于多维视图。
这种分离的一个主要原因是有助于促进两个系统的高度实施。操作数据库是根据已知功能和工作负载创建和调整的,包括使用主键建立索引和散列、搜索特定记录以及优化“罐头”查询。
另一方面,数据仓库查询通常很复杂。它们包括在汇总级别计算大量信息,并且可能需要使用特定的数据组织、访问和依赖于多维视图的实现方法。在操作数据库中处理OLAP查询会大大降低操作任务的性能。
此外,操作数据库提供多个事务的并发处理。需要并发控制和恢复机制,包括锁定和日志记录,以提供事务的一致性和健壮性。OLAP查询通常需要对数据记录进行只读访问以进行汇总和聚合。
并发控制和恢复机制,如果应用于此类OLAP操作,可能会危及并发事务的执行,从而大大降低OLTP系统的吞吐量。
最后,操作数据库与数据仓库的分离在于这两个系统中信息的多种结构、内容和用途。决策支持需要历史信息,而操作数据库通常不维护历史信息。
决策支持需要整合,包括对来自不同来源的信息进行聚合和汇总,从而产生高质量、干净和集成的信息。相比之下,操作数据库只包含详细的原始数据,包括交易,这些数据需要在分析前进行整合。
由于这两个系统提供完全不同的功能并且需要不同种类的数据,因此目前需要维护单独的数据库。但是,有许多运营关系数据库管理系统供应商开始优化此类系统以支持OLAP查询。随着这一趋势的继续,OLTP和OLAP系统之间的分离有望减少。