【摘要】结构化数据是指如数字和符号等信息,而非结构化数据的覆盖范围极广,常见的非结构化数据包括了:文档(纯文本、格式文档和HTML文档等)、图像、音频和视频等多媒体信息、地图和地理信息、卫星影像、医学影像。
第3章 Oracle对非结构化数据的处理
结构化数据是指如数字和符号等信息,而非结构化数据的覆盖范围极广,常见的非结构化数据包括了:文档(纯文本、格式文档和HTML文档等)、图像、音频和视频等多媒体信息、地图和地理信息、卫星影像、医学影像。例如,雅昌日常商务运营所产生的大量的高精度的艺术品图像和视频就是非结构化数据。
实际上,机构和企业所使用的绝大部分信息都是非结构化数据。这类数据往往不符合标准的数据结构的定义,不符合标准规范的行和列的模式定义,其字段长度可变,而且,每个字段的记录可由可重复或不可重复的子字段构成。
基于Oracle 企业版数据库11g基础架构,通过Oracle内容数据库套件(Oracle Content Database Suite)和Oracle内容管理套件(Oracle Content ManagementSuite)的紧密集成功能,Oracle数据库系统支持对非结构化数据的高性能和高效率处理。
3.1 非结构化数据的传统管理方法
在数据库管理系统被引入到信息系统之前,非结构化数据的创建方式、使用方式和管理方式是与具体信息系统紧密相关的,比如,文档、电子表格和演示文稿的保存和管理都在桌面办公系统之中完成。
而当数据库管理系统被引入到信息系统后,管理大量非结构化数据的课题就与数据库技术紧密联系在一起了。一种传统的方式是:通过“基于指针”的方法,使用数据库对存储在文件系统中的文档、图像、影音等非结构化数据内容进行编目和存取。这种方法具有操作简单和存取速度较快的优点,但其缺陷也是非常多的,比较突出的问题就是数据管理非常复杂,比如,管理大量的文件时会受到文件系统的可建目录数的限制。
3.2 用数据库管理非结构化数据
为解决“基于指针”的方法所带来的管理上的复杂性问题,不断改进的数据库技术选择了更加有效的方法:将非结构化结构的数据直接保存在数据库中,由数据库来统一维护、直接存取和备份。这样,非结构化结构数据的管理复杂性得到了极大改善。
为了能在数据库表内直接存储非结构化数据内容,在数据库技术中引入了二进制大对象(BLOB,Binary Large Object)作为其存储容器。
从最简单的 BLOB出发,Oracle数据库技术一直在改善对非结构化数据的处理方法。目前的Oracle数据库11g已经实现了处理方法性能的大幅提升,包括了:数据库管理系统原生支持的非结构化数据的存取性能、安全性和类型扩展。
在存取性能方面,Oracle 数据库 11g的SecureFiles技术支持检索非结构化数据,其速度与操作系统的文件系统检索相当。
3.3 专用数据类型和数据结构
通过数据库管理系统对结构化数据进行查询和分析时,需要使用数据类型、存储和索引结构以及运算符来完成。与此相似地,在管理非结构化数据时,也需要通过类似的技术手段。
Oracle是通过Oracle XML DB组件、Oracle Text组件、Oracle Spatial组件、RDF、OWL 和语义数据库管理组件、OracleMultimedia组件和OracleDICOM组件,提供对非结构化数据的重要数据类型的支持,实现对文本,图像(ORDImage),音频(ORDAudio),视频(ORDVideo ),Binary XML,RFID Tag,3D空间数据,语义和DICOM医学图像(ORDDicom)等非结构化数据的管理。
与雅昌数据系统的建设密切相关的非结构化数据主要是:XML、文本和多媒体,与之对应的管理组件是Oracle XML DB组件、Oracle Text组件和Oracle Multimedia组件。
3.3.1 Oracle XML DB组件
基于 XML 的标准的引入已使 XML 成为应用系统之间的信息交换机制,许多应用系统将 XML 用作任务的关键数据的持久性模型。
Oracle的Oracle XML DB是一项高性能的原生XML存储和检索技术,可在所有版本的Oracle数据库上使用。Oracle XML DB完全支持所有关键的XML 标准,包括:XML、命名空间、DOM、Xquery、SQL/XML和XSLT。
用户可以针对XML内容充分利用SQL 语言,也可以针对关系数据充分利用 XML。
3.3.2 Oracle Text组件
Oracle Text是Oracle数据库具有文本搜索、检索和管理功能的组件。
Oracle数据库11g的Oracle Text组件支持增量索引和联机索引重建。
通过Oracle数据库11g中的国际化支持,应用系统能够针对多种语言进行自动语言识别、词干确定和分节操作。
3.3.3 Oracle Multimedia组件
通过Oracle Multimedia组件, Oracle数据库能够存储、管理和检索图像、音频、视频或其他媒体数据。
在Oracle数据库 11g中,Oracle Multimedia支持Oracle SecureFiles,这就大幅度地改进了Oracle数据库的性能,也显著强化了数据库原生的内容管理功能。
与以往的版本相比,在Oracle数据库 11g中,数据库中可存储和检索的单个媒体对象的大小限制有了升级。媒体对象的大小可等同于BLOB的大小限制,即可介于8 TB和128 TB之间。
除了存储和检索大图像外,通过Oracle Multimedia组件,应用程序还可提取图像属性,如像素高达20亿或解析度高达46000×46000的图像的高度、宽度以及压缩格式。
Oracle数据库11g中的Oracle Multimedia组件完全可以满足雅昌数据系统对艺术品相关的电子数据存储的实际需要。
3.4 对非结构化数据的处理示例
为说明Oracle对非结构化数据的处理,以对图像文件的处理为例进行简要说明。
在一台Unix系统的服务器上安装Oracle 11g数据库管理软件,在目录/unstruc_data下存放着2个gif格式的图形文件:artron_1.gif,artron_2.gif
对这两个图形文件的处理过程如下:
(1)编辑create_imgtable.sql脚本,目的是:建立可存放图像文件的image_table表,这个表含有一个ORDImage字段。
create_imgtable.sql脚本的内容如下:
CREATE TABLE image_table ( id NUMBER, image ORDImage ) LOB(image.source.localData) STORE AS SECUREFILE;
|
(2)编辑import_img.sql脚本,将2个gif格式的图形文件插入到image_table表中。
import_img.sql脚本的内容如下:
CREATE OR REPLACE PROCEDURE load_image(in_id INTEGER, in_dir VARCHAR2, in_fname VARCHAR2) AS obj ORDImage; ctx RAW(64) := NULL;
BEGIN INSERT INTO image_table VALUES (in_id, ORDImage('FILE', in_dir, in_fname)) RETURNING image INTO obj; obj.import(ctx); UPDATE image_table SET image = obj WHERE id = in_id; COMMIT; END; / show errors EXECUTE load_image(1, '/unstruc_data', 'artron_1.gif'); EXECUTE load_image(2, '/unstruc_data', 'artron_2.gif');
|
(3)编辑showprop_img.sql脚本,从image_table表里读取2个gif格式的图片并显示其文件属性。
showprop_img.sql脚本的内容如下:
SET SERVEROUTPUT ON;
BEGIN
FOR rec in (SELECT id, image from image_table) LOOP dbms_output.put_line('图像属性:'); dbms_output.put_line('图像ID: '|| rec.id); dbms_output.put_line('图像高度: '|| rec.image.getHeight()); dbms_output.put_line('图像宽度: '|| rec.image.getWidth()); dbms_output.put_line('图像MIME类型: '|| rec.image.getMimeType()); dbms_output.put_line('图像文件格式: '|| rec.image.getFileFormat()); dbms_output.put_line('BLOB长度: '|| rec.image.getContentLength()); dbms_output.put_line('-------------------------------------------'); END loop; END; /
|
次第执行以上的3个脚本,最终的结果类似于如下的显示:
图像属性:
图像ID: 1
图像高度: 35
图像宽度: 87
图像MIME类型: image/gif
图像文件格式: GIFF
BLOB长度: 3209
-------------------------------------------
图像属性:
图像ID: 2
图像高度: 338
图像宽度: 398
图像MIME类型: image/gif
图像文件格式: GIFF
BLOB长度: 3298
-------------------------------------------
以上所述的过程虽然只是对图像文件进行处理的一个简单示例,但也演示了Oracle数据库11g对非结构化数据进行处理的强大功能。Oracle数据库11g对其他形式的非结构化数据的处理能力同样是强大而灵活的。
3.5 Oracle内容数据库套件Oracle内容管理套件
Oracle数据库11g对非结构化数据具有原生特性的管理功能,即:只要安装部署了Oracle XML DB组件、Oracle Text组件、Oracle Spatial组件、RDF、OWL 和语义数据库管理组件、Oracle Multimedia组件和Oracle DICOM组件,Oracle数据库11g就具有对非结构化数据的管理功能。
但是,在非结构化内容快速增长的情形下,必须由专业的内容管理技术对这些非结构化数据进行高效率的管理和控制。Oracle内容数据库套件Oracle内容管理套件的紧密集成提供这一功能:
(1) 通过交互性的动态Web界面,Web用户可以高效地使用Web浏览器去管理非结构化数据内容;
(2) 通过Oracle Drive与Microsoft Windows的高级集成,Windows桌面用户能够从Windows资源管理器直接使用Oracle数据库的内容管理功能。
也就是说,只需使用Web浏览器或Windows界面,用户就可以将非结构化数据导入Oracle数据库并进行内容管理。
使用Oracle内容数据库套件和Oracle内容管理套件,在基于Oracle数据库11g构建的雅昌数据系统中,可以低成本、安全可靠、快速和灵活地管理和控制海量增长的非结构化数据。
3.5.1 为应用系统提供应用集成功能
Oracle内容数据库套件提供了兼容J2EE和Microsoft.NET的Web服务API,基于此,应用系统对于非结构化数据可以进行程序化的完整访问,利用这些API,可以将Oracle内容数据库套件与相应的应用系统进行应用集成,构建具有对非结构化数据的强大处理能里的雅昌应用系统。
3.5.2 为应用系统提供流程集成功能
业务流程执行语言(BPEL,BusinessProcess Execution Language),也被称为Web服务的业务流程执行语言(BPEL4WS,Business Process Execution Languagefor Web Services),可根据应用系统的实际需求,将分散的服务协调而组合成为符合要求的端到端的业务流程。
Oracle内容数据库套件包含了Oracle BPEL流程管理器,提供流程集成的功能,可以通过调用Oracle内容数据库套件的Web服务执行大量的对非结构化数据的管理操作,从而实现各种业务流程的自动化。
根据雅昌应用系统的整体构建规划,对日常运营中产生的海量的结构化和非结构化数据进行入库和管理,然后,基于这些存储在数据中心的结构化和非结构化数据,设计开发通用性极强的同步的和非同步的Web服务,再根据具体需求,将这些Web服务组合成雅昌所需的业务处理流程,这就是构建雅昌应用系统的一个基本方法。
第4章 备份系统的构建
备份系统对雅昌数据中心而言是极其重要的核心组成部分,其成功构建和运行是数据中心长期稳定地正常运行所不可或缺的。
雅昌数据中心的备份系统构建包括:
(1)对深圳、北京和上海三地数据中心的本地数据的备份系统构建;
(2)对雅昌深圳数据中心的异地容灾备份系统的构建。
4.1 数据中心的本地备份系统
雅昌数据中心的Oracle数据库11g基于Oracle RAC服务,结构化数据与非结构化数据都存储于HP存储设备之中。
为了在保护现有投资的前提下,为下一步的容灾备份数据中心的建设准备必要条件,在雅昌深圳数据中心增加NetApp存储设备(如:NetApp的存储网关产品),将原有HP存储设备纳入NetApp存储设备的管理体系中,由NetApp存储设备对其进行管理,保持在原有HP存储设备上的各类结构化数据和非结构化数据,这样,只对雅昌深圳数据中心的数据系统服务进行了极小的改动。
以深圳数据中心为例,数据中心的本地备份系统的架构图如下:
选用SymantecVeritas NetBackup 6.5作为数据中心的数据库和应用程序的备份软件,简述如下:
(1) 增加磁带库设备,备份数据最终流向此设备并保存在磁带介质上;
(2) 增加一台服务器,在其上安装并配置NetBackup MasterServer,作为数据系统和应用应用备份的指令平台;
(3) 增加一台服务器,在其上安装并配置Netbackup MediaServer,作为数据系统和应用系统备份的媒介服务器,负责控制备份数据流对备份介质的具体存取操作;
(4) 在安装了Oracle RAC服务的数据库服务器群上安装并配置NetBackup Client和NetBackup for Oracle,雅昌数据系统中的各类数据内容将通过SAN流入备份介质(磁带库中的磁带);
(5) 在雅昌应用系统的服务器群上安装并配置NetBackup Client,雅昌应用系统内的重要数据将通过SAN流入备份介质(磁带库中的磁带);
4.2 数据中心的异地容灾备份系统
在不可抗的极端事件发生的情形下,数据中心的本地备份系统无法保证数据中心的正常运作,解决这个问题的唯一选择是:建立雅昌数据系统的异地容灾备份系统。
为简化问题的讨论,本文以深圳总部的数据中心为源,以北京数据中心为目的,讨论在深圳和北京两地数据中心建立异地容灾备份系统。
4.2.1 备份线路、存储设备和备份技术的选择
在深圳和北京两地的数据中心之间租用2条速率为155Mb/S的SDH(SynchronousDigital Hierarchy)链路,一条为主要的数据容灾备份线路,另一条为备用的数据容灾备份线路。
选用NetApp公司的存储设备作为数据中心容灾备份方案的核心备份设备。
为了对在雅昌应用系统中流转的重要中间件数据进行容灾备份,选用NetApp公司的SnapMirror技术,通过复制Oracle融合中间件的应用层以保证对二进制文件、配置与元数据文件的容灾备份。
对已经存储在Oracle数据库中的数据,使用Oracle提供的Oracle Data Guard技术进行容灾备份。
4.2.2 数据中心容灾备份的应用架构
雅昌数据中心容灾备份系统的应用架构图如下所示:
对雅昌数据中心容灾备份的应用架构简要说明如下:
一、在雅昌深圳数据中心:
在安装了Oracle RAC的数据库服务器群上配置Oracle Data Guard软件;
在NepApp存储设备上:
i) 配置NetApp SnapMirror软件;
ii) 配置NetApp SnapShot软件,对雅昌深圳数据中心的各类数据再加上一层保
护,即:进行快照数据保护,即时生成数据备份,并在秒级恢复。
二、在雅昌北京容灾备份数据中心:
(1)而在雅昌北京容灾备份数据中心,不再设置HP存储设备,将这些数据集中统一地存储在NetApp存储设备上;
(2)除了雅昌深圳数据中心原有的HP存储设备外,完全复制在雅昌深圳数据中心的所有设备和软件配置;
(3)在雅昌深圳数据中心和雅昌北京容灾备份数据中心之间,使用Oracle Data Guard和NetApp SnapMirror通过155Mb/S速率的SDH网络链路进行数据块级别的增量传输,完成容灾备份;
(4)在NetApp存储设备上,配置NetApp FlexClone快速克隆软件,当备份数据由雅昌深圳数据中心通过SDH网络链路流入时,迅速地生成一份或者多份可读写副本,用于容灾数据的验证和技术分析;
(5)在NetApp存储设备上,配置NetApp SnapLock归档功能,可将一些过时的数据导出后进行长期归档。在归档期内该数据只能读取,不能删除和修改。
4.2.3 异地容灾备份系统的功能
雅昌异地容灾备份系统的功能如下:
一、加强对雅昌日常业务数据的保护。数据保护从深圳数据中心的本地数据备份上升到北京容灾备份数据中心的数据保护,极大地提高雅昌数据系统保护的RPO和RTO的级别;
二、提高业务连续性。当在雅昌深圳数据中心的生产系统发生灾难性事件时,能够利用雅昌北京容灾备份数据中心的数据系统和应用系统,快速地接管生产业务,降低停机时间和对雅昌业务的影响。
三、提供数据副本进行系统分析和验证查询。通过基于存储设备的快速克隆软件,在雅昌北京容灾备份系统上迅速生成当前生产环境的数据副本,可以在北京容灾备份数据中心方便地进行灾难恢复的步骤演练和数据验证。同时,数据副本也可以为面向决策支持的系统分析提供有效的数据源。