APP下载

物化视图在煤炭税收系统的应用

2017-03-30汪磊潘永才汤俊兰范亮

物联网技术 2017年3期

汪磊+潘永才+汤俊兰+范亮

摘 要:物化视图技术是Oracle公司提供的一种技术,相比于普通视图而言可以实现更多的功能。物化视图是基表对象在某一时间点上的复制品,要实现物化视图与基表数据保持一致,必须为物化视图创建物化视图日志。物化视图日志记录了基表所有的变更操作,对保证物化视图及时更新,正确清理物化视图日志显得尤为重要。

关键词:物化视图;物化视图日志;快速刷新;基表数据

中图分类号:TP392 文献标识码:A 文章编号:2095-1302(2017)03-0-02

0 引 言

随着信息化系统的广泛普及,数据仓库技术成为许多专家学者关注的热点,近年来发展十分迅速。数据仓库是为企业决策制定过程提供多种类型的数据支持的数据集合,对于管理部门的决策制定起着至关重要的作用。由于海量数据的存储,数据仓库在查询性能方面并没有得到很好的体现。因此,解决数据仓库系统查询速度慢的问题受到了许多专家学者的广泛关注。物化视图作为数据仓库的实现方式之一,能在一定程度上提高查询性能,减少用户的查询响应时间。物化视图通过对基础表进行复杂关联、计算等预处理操作,减少了相应的查询时间。对于物化视图,关键在于如何保持与基表数据同步,从而实现快速刷新,这就要求在创建物化视图之前必须为物化视图创建物化视图日志,并正确清理物化视图日志。

1 数据仓库概述

数据仓库是单个数据存储的形式,其创建的目的在于为分析性报告和决策制定提供数据支撑。数据仓库中的数据都按照某一主题组织加工而来,大多来自于多个分散的操作型数据库,出于服务于决策者的目的,数据仓库将多个数据库中有价值的业务数据进行加工汇总,为决策者提供更有利于分析的数据。

数据仓库一般包括四个部分,即数据源、数据存储管理、联机分析处理(OLAP)与前端工具(各种管理工具和应用工具)。数据仓库体系结构图如图1所示。

2 物化视图概述

2.1 物化视图概念

物化视图相对于普通视图而言是一种物理表,而普通视图可以看作虚拟表,即数据库中只存储该视图的定义,不存储实际数据,当多次对视图进行查询时,实际是反复执行视图的定义,进而得到查询结果,这样就会出现耗时过长的问题。但物化视图是一个实际存在的物理表,是基础表的数据副本。其主要具有以下三种特点:

(1)数据库中实际存在与物化视图对应的物理表;

(2)物化视图有自己的物理存储属性的段;

(3)相比于普通视图,物化视图占用数据库的磁盘空间。

物化视图的数据组成如图2所示。

由于物化视图技术提前对数据库系统中复杂的查询进行计算、连接,把得到的查询结果存储在数据库中。因此,当对数据库的查询与查询物化视图相同时,数据库会直接查询已经计算好的结果,相比于直接查询多个基础表,并进行多个关联以及复杂的计算操作,直接查询物化视图在查询响应时间方面得到了明显提高。由此可见,物化视图实现的是一种典型的以空间换取时间的策略。

2.2 物化视图的应用

由于物化视图在查询响应方面体现出来的优良性能,已被广泛应用于各行各业。其中两个典型的应用场景包括用于查询优化与高级复制。

2.2.1 物化视图的刷新

为了使物化视图与基础表的数据保持同步,必须实现物化视图的刷新。刷新分为ON DEMAND和ON COMMIT两种刷新模式。当用户需要按照自己的要求设定时间间隔以及起始时间时可选择ON DEMAND模式;而在对基础表数据进行更改后,提交时立即进行数据刷新则需选择ON COMMIT刷新模式。一般情况下,我们选择ON DEMAND刷新模式。此外,根据不同的应用场景,刷新方法分为FAST、COMPLETE、FORCE和NEVER四种。其中,可以实现增量刷新的是FAST和FORCE,COMPLETE实现的是全量刷新,每次刷新时都会重新生成全部数据。

2.2.2 创建物化视图日志

实现快速刷新的前提是创建物化视图日志,通常物化视图日志分为ROWID和PRIMARY KEY两种创建方式。其中,基于ROWID的创建方式应根据ROWID定位基表对象的变化来创建,而PRIMARY KEY则根据主键对基表对象的变化进行定位。创建基于ROWID的物化视图日志基本语法如下:

CREATE MATERIALIZED VIEW LOG ON 基础表表名 WITH ROWID,SEQUENCE (字段名) INCLUDING NEW VALUES;

2.2.3 物化视图在煤炭税收系统中的应用

在读研期间,我有幸参加了毕节市煤炭税源专业化管理平台项目的开发工作。该系统主要为了在方便煤炭企业生产销售的同时加强税收监管工作,对进一步制定合理的税收政策提供数据支撑。

该系统的查询统计模块采用物化视图,对数据进行预处理后将计算好的结果存储于数据库中,作为系统实现查询分析功能的数据源。但由于物化视图日志记录了基础表所有的更改操作,因此,若对物化视图日志清理不彻底会导致物化视图数据与基础表数据不一致。具体情况可解释为若一个基表对应两个或两个以上的物化视图,且一个物化视图定义的是快速刷新(FAST),另一个物化视图定义的刷新方式是FORCE,那么对于基表数据的操作,快速刷新的物化視图会自动刷新数据,而FORCE刷新方式的物化视图还未刷新时(可能因为还未到刷新时间),基表对应的物化视图日志数据还未清理;当一个基表只有一个对应的快速刷新的物化视图时,在基表数据更新的同时,该物化视图的数据随之更新,且对应的物化视图日志数据自动清理。

实践表明,在清理物化视图日志后,物化视图可与基表数据保持一致,且定期清理物化视图日志后并未发现物化视图与基表数据不一致的情况。

3 结 语

物化视图技术研究表明,在实现多方位查询分析数据的同时,为保证数据安全且实现对不同用户选择性展示数据,需要对数据进行一定的清洗及过滤,而进行这些复杂工作的同时会对查询效率产生一定影响,如何找到其中的平衡点,关键在于解决物化视图的数据同步问题。因此,只有建立合适的物化视图实现数据仓库,才能真正为决策制定提供依据。

参考文献

[1]王倩倩.物化视图在管理信息系统中的应用研究[D].大连:大连理工大学,2013.

[2]王时绘,陈俊.物化视图在查询分析中的应用[J].科技广场,2010 (3):169-171.

[3]王嘉萌.物化视图的优化模型研究及其应用[D].大连:大连理工大学,2014.

[4]杨少军,范金存,李庆忠.数据仓库中物化视图的选择[J].计算机应用,2003,23(9):58-60.

[5]刘晶,朱荣钊.利用物化视图实现税务中心的ETL数据抽取[J].信息与电脑(理论版),2016(5):122-123.

[6]刘晶.物化视图及分区技术在贵州地税省级数据集中的应用[D].武汉:湖北大学,2011.

[7]付荣.陕西省煤炭生产企业增值税监控管理系统的设计与实现[D].西安:西安电子科技大学,2012.

[8]曲俊华,刘璞.Oracle物化视图技术在电力营销数据抽取中的应用[J].中国电力教育,2007(Z2):65-67.