Orcale数据库中非结构化数据的存储方法

2017-03-06 23:30李福存姜跃文楚怀远
电子技术与软件工程 2016年23期
关键词:数据存储

李福存 姜跃文 楚怀远

摘 要

随着企业信息化应用程度的提升,企业会产生大量的信息化数据,这些数据既有传统的结构化数据,更有众多新型的非结构数据,诸如图像、音频、视频、办公文档等。利用主流数据管理系统Oracle所提供的新方法,可有效构建非结构化数据的存储模型,从而使得非结构化数据的存储更高效,检索更快捷。

【关键词】非结构化 数据存储 Oralce SecureFile

1 前言

随着信息技术的广泛普及和充分应用,企业在日常业务活动中会产生各种各样的信息化数据。这些数据既有传统的结构化数据,更有大量的非结构化数据,诸如音频、视频、图像、办公文档等。据IDC统计,在企业产生的全部数据中,约有80%都是非结构化数据,且每年按60%的指数增长。在未来15年中,互联网和多媒体应用的数字非结构化数据量将超过6.023x1023 (阿伏加德罗常数),因此非结构化数据的高效存储和快速检索成为非结构化数据存储方案所面临的关键挑战。

2 数据存储结构与数据存储方法

传统的结构化数据可以用二维表结构来逻辑表达,因此可以用关系型数据库来管理,而非结构化数据无法用二维表结构来表达,因此需要采用新的方法来存储和管理。在大数据时代,主流的商业数据库软件如Oracle在对传统的结构化数据提供更先进的管理技术的同时,也对非结构化数据提供了有效的管理方法,能整合有关联性和结构化的数据及非结构化数据,从而给用户提供无缝的使用体验。

2.1 非结构化数据分类

非结构化的数据可以分成几种不同的类型,比较常见的就是多媒体或富媒体文件,如数字化影像、音频文件、视频文件。其分类如下:

2.1.1 照片

用二维方式来表示所有内容,如照片、素描、绘画、图标。

2.1.2 基于字符的文档

由一個或多个明确定义的字符集中的字符所组成的集合,如Word文档、电子邮件、PDF文件等。

2.1.3 音频

基于时间的声音的集合,如WAV文件、MP3文件等。

2.1.4 视频

基于时间的图片和基于时间的声音的集合,如MP4文件等。

2.2 Oracle的存储结构

Oracle是当前在商业社会中最广泛使用的大型数据库,适合于企业管理和企业数据交换,特别是对于具有大规模数据库的组织。Oracle数据库对数据的存储分成逻辑结构和物理结构两部分,逻辑结构存储在数据表中,而物理结构存储在数据文件中(见图1)。

在上述逻辑存储结构中,段是对象的空间逻辑分配,一个段包含一个或几个子段,这些子段是连续的数据块,数据块是数据库使用的最小数据单元。数据文件是操作系统中的物理文件,其存储数据库中所有逻辑结构的数据,其中不同的数据文件可以采用不同的数据块大小。

2.3 Oracle的非结构化数据存储方法

在Oracle数据库管理系统中,对不同类型的大对象数据使用不同的存储方式:内部大对象存储在数据库内部;外部大对象存储在文件系统中,并且只在数据库中存储指向这个文件的指针。本文将重点讨论第一种类型。

2.3.1 大对象数据类型

大对象数据类型(LOB)是由数据库系统提供的一组数据类型,用于存储大的数据,例如图片、文档和声音。LOB数据是可以由数据库应用程序有效使用和操作的形式存储。 LOB有4种类型的数据:

(1)BLOB(二进制大对象),通常用于存储多媒体文件,如音频或视频。

(2)CLOB(字符大对象),通常用于非常大的文件字符串,字符集是固定宽度格式的字符。

(3)NCLOB(国家字符大对象),几乎和CLOB一样,存储非常大的字符串,但字符集格式不必是固定宽度。

(4)BFILES,是一个存储在数据库之外(在操作系统中)的二进制文件,但数据库仍然可以访问。所有存储在操作系统中的文件都可以存储在BFILE 中(例如*.DOCX文件可以存储在一个BFILE中),然后以CLOB形式被加载到要打开的表中。

2.3.2 SecureFile和Basicfile

Oracle数据库提供了两种管理非结构化数据的方法——Basicfile和SecureFile方法。

简单地说,Basicfile就是LOB,可用上面提到的LOB特征来理解Basicfile。

SecureFile是Oracle提供的一个新的存储类型(名叫SecureFile LOB),它为处理非结构化内容提供了新的方法,同时还能拥有Oracle数据库服务器的所有特性和优点,如:

(1)数据压缩。通过SecureFile智能压缩,SecureFile LOB能够立即检测到文件可以被压缩以节省空间。

(2)重复数据删除。Oracle SecureFile允许oracle数据库分析和检测列或分区中的多个LOB文件,这可以节省空间。

(3)数据加密。使用Oracle高级安全选项,SecureFile可以为LOB提供安全功能。

(4)性能增强。Oracle在使用SecureFile LOB存储类型时引入了额外的性能特性。

SecureFile是一个高性能存储功能,它能在同等文件系统配置的情况下,以相同或更快的速度存储和检索LOB。

3 测试

3.1 测试方法

我们选用最常见的World文档作为样本,分别用Basicfile和SecureFile方法对其进行读写测试。测试方法见图2。

图2为测试方法模型,用来比较非结构化数据文件采用Basicfile和SecureFile两种不同方式到数据库中的加载、写入性能和空间利用情况。

3.2 测试样本和测试环境

本次研究所有非结构化数据为MS WORD文档,大小为700Kb。

测试环境为:处理器Intel? Core i5-5300U 2.30GHz,内存8GB,64位Windows,数据库Oracle 12.1.0.2.0。

3.3 测试步骤

第一步,建立访问MS Word文件所需要的目录。

create directory sec_file as ' C:\ORACLETEMP';

第二步,建立并运行用Oracle 提供的操作大对象的DBMS_LOB包来加载Word文档并写入到数据库的存储过程。

采用Basicfile方式存储非结构化数据的建表参数和语句结构如下:

CREATE TABLE TESTCV1

(…,

…,

CV BLOB)

STORE AS BASICFILE TABLESPACE (TS1);

采用SecureFile方式存储非结构化数据的建表参数和语句结构如下:

CREATE TABLE TESTCV2

(…,

…,

CV BLOB)

STORE AS SECUREFILE (TABLESPACE (TS2) DEDUPLICATE COMPRESS HIGH)

采用上面的不同参数分别建立两张表,并分别采用Basicfile和SecureFile方式来定义存储LOB类型。编写两段相似的代码,采用dbms_lob包来分别插入Word文档到上述两张表的LOB字段中,并记录加载时间;采用dbms_lob包来分别读取两张表的LOB字段并记录读取时间。

第三步,建立并运行使用DBMS_SPACE包编写的空间检查的存储过程,用DBMS_SPACE包来检查上述两张表的使用空间,比较Basicfile和SecureFile两种不同方式对空间使用的影响。

3.4 测试结果

按照上面的测试过程,采用Basicfile和SecureFile方法分别对测试对象进行读写测试,其时间和空间消耗数据如表所示。

读写耗时结果见表1。

空间使用结果表2。

通过上面测试可以发现,同样的文件采用Basicfile和SecureFile存储时,由于SecureFile具有压缩和去重的功能,读写性能和空间利用率比Basicfile有非常显著提高。在效率方面,SecureFile的写效率是Basicfile的5.87倍,读效率是SecureFile的8.87倍。在空间使用方面,SecureFile的空间需求仅为SecureFile需求的0.1%。

我们采用不同大小的Word文档做测试,其结果都相似。

4 结论

上述对非结构化数据在Oralce数据库中的读写效率和空间使用率的测试结果显示,新的SecureFile方法显示出显著优于BasicFile方法的性能。

Oracle SecureFile方法是将结构化数据和非结构化数据进行统一管理的存储解决方案。采用Oracle SecureFile构建的应用程序可以显著降低存储空间需求和并大幅提升讀写性能,是拥有大量非结构化数据的企业可信赖的一种非结构化数据存储解决方案。

参考文献

[1]S.M.Niloy Mukherjee,Amit Ganesh,Vinayagam Djegaradjane,“Oracle SecureFile:Prepare for the Digital Deluge,”Oracle Corp.

[2]C.S.Spahiu,“A Multimedia database server:Implementation and functions,”Int.J.Comput.Sci.Appl.,vol.7,no.3,pp.140–155,2010.

[3]Oracle,“Unstructured Data Management with Oracle Database 12 c,”White Pap.,no.September,2014.

作者简介

李福存,江苏金恒信息科技有限公司,信息化总监,Oracle数据库大师(OCM),南京钢铁股份有限公司首席专家,澳大利亚卧龙岗大学高级信息技术硕士。

姜跃文,江苏金恒信息科技有限公司,高级工程师,资深Oracle数据库专家。

楚怀远,西安电子科技大学,电子信息工程专业四年级学生。

作者单位

1.江苏金恒信息科技有限公司 江苏省南京市 210035

2.西安电子科技大学 陕西省西安市 710000

猜你喜欢
数据存储
简单的数据修复
大数据时代档案信息建设的认识和实践
基于结构图设计LDPC码及其性能仿真