异构数据模型

2024-10-17

异构数据模型(共8篇)

异构数据模型 篇1

1. 引言

随着信息化建设不断发展, 各行各业对信息化的应用水平和依赖程度在不断提高。包括企业、政府机关在内, 都逐渐意识到信息共享和协同联动对工作的重要性, 但由于建设时间不同、建设技术不同, 带来的异构数据问题, 已经成为了严重制约信息共享、协同联动的瓶颈。要实现异构数据的共享和联动必须要明确异构数据间的相互关系, 对异构数据开展相似度研究, 否则也仅仅是把不同的异构数据堆积在一起, 无法实现真正意义上的信息共享, 更无法发挥共享数据的潜在价值。

目前, 主流的异构数据相似度方法主要有基于关键词的方法, 基于语义词典的方法, 基于语义依存的方法, 基于计算编辑距离的方法, 基于语境框架的方法, 基于属性论的方法, 基于统计的方法等等。这些方法在信息领域的应用已经比较成熟, 但随着个体数据信息量的不断扩充, 单一的某种方法已经无法很好的保证查全率和查准率, 这就要求我们从不同的数据维度, 采取相适宜的算法, 再通过权重控制, 综合分析, 保证大信息量的异构数据相似度对比的可靠性和可用性。本文针对结构化数据、非结构化数据、时序数据、空间数据采取不同的成熟相似度算法, 再通过权重分配加以控制, 经过综合计算, 得出符合实际应用的异构数据相似度。

本文采用基于权重分配的多维异构数据相似度比对算法, 使得各维度上的数据相似度互为补充。这里我们将介绍所采用算法和数据的基本概念, 再对每一信息维度上采用的相似度算法简要分析, 在此基础上提出基于权重分配的多维异构数据相似度算法, 结合实验给出算法的评价和结果, 最后是对当前工作的总结和技术展望。

2. 概念

2.1 异构数据

异构数据通常指来源于不同异构数据源的结构化数据, 比如分别来自Oracle、DB2、SQL Server的数据, 或者来源于异构系统的数据。本文中的异构数据除了包含通常意义上来源于不同数据库、不同应用系统的结构化异构数据外, 还包含非结构化异构数据。

2.2 知网

知网 (英文名称为How Net) 是一个以汉语和英语的词语所代表的概念为描述对象, 以揭示概念与概念之间以及概念所具有的属性之间的关系为基本内容的常识知识库。知网通过用一系列的义原, 利用某种知识描述语言来描述一个概念, 义原通过上下位关系组织成一个树状义原层次体系。

2.3 本体论

本体论是概念化的详细说明, 一个ontology往往就是一个正式的词汇表, 其核心作用就在于定义某一领域或领域内的专业词汇以及他们之间的关系。本体论可以分为四种类型:领域、通用、应用和表示。领域本体包含着特定类型领域的相关知识;通用本体则覆盖了若干个领域, 通常也称为核心本体;应用本体包含特定领域建模所需的全部知识;表示本体不只局限于某个特定的领域, 还提供了用于描述事物的实体。

2.4 时间序列

时间序列是指将某种现象某一个统计指标在不同时间上的各个数值, 按时间先后顺序排列而形成的序列。时间序列分析 (Time series analysis) 是一种动态数据处理的统计方法。该方法基于随机过程理论和数理统计学方法, 研究随机数据序列所遵从的统计规律, 以用于解决实际问题。

2.5 空间数据

空间数据是指用来表示空间实体的位置、形状、大小及其分布特征等多方面信息的数据, 它可以用来描述来自现实世界的目标, 它具有定位、定性、时间和空间关系等特性。空间数据是一种用点、线、面以及实体等基本空间数据结构来表示人们赖以生存的自然世界的数据。

2.6 权重

权重是一个相对的概念, 是针对某一指标而言。某一指标的权重是指该指标在整体评价中的相对重要程度。权重分配的常用方法包括:主观经验法、主次指标排队分类法、专家调查法。本文将具体分析多维数据不同维度相似度在综合相似度算法中所占权重的分配问题。

3. 基于维度采用相适应的相似度算法

针对目前单一相似度算法不能很好适应大信息量多维异构数据相似性比对的现状, 本文提出了基于数据维度的综合数据相似度算法, 下面我们将分别介绍不同维度上采用的相似度算法。成熟度、适用性是选用算法的重要指标。

3.1 结构化数据采用基于本体中概念的知网相似度算法

在自然语言的处理中, 目前通常采用“距离”这个指标来推导刻画词汇间的相似度:两个词汇的语义距离越大, 则词汇含义越具有无关性质, 故相似度越小。

对于两个词汇W1和W2, 其距离为, 相似度为, 根据两者的部分反比特性, 我们不妨设定如下的转换关系:

其中α为可调参数, 等于相似度为0.5时的词汇语义距离值。

在探讨词汇相似度的算法上, 针对其标准、规范的特点, 我们采用基于本体概念的知网相似度算法并对其加以研究改进。

“知网”是一个以词语所代表的概念为描述对象、以揭示概念与概念之间以及概念所具有属性之间的关系为基本内容的常识库和知识库。知网中有两个主要的概念:“义项”与“义原”。“义项”是对词汇语义的一种描述。每一个词汇可以表达为一个或多个义项;“义原”是用于描述一个“义项”的最小意义单位。

在本文中, 为简化起见, 我们只计算对应单一义项的词汇间的相似度, 对于对应多个义项的词汇, 我们则分别计算其间的义项相似度后取算术平均值。设词汇W1对应义项S1, 词汇W2对应义项S2, 则W1和W2的相似度在知网相似度算法中即等于义项S1和S2的相似度:

与一般的语义词典不同, “知网”并不是简单地将所有的“义项”归结到一个树状的概念层次体系中, 而是用一系列的“义原”来对每一个“义项”进行描述, 故而义项的相似度计算可基于义原的相似度算法。

义原根据上下位关系可以构建出树状的义原层次图, 下方的子义原总是对上方父义原的分类或具体化, 义原间距离与两个义原在义原层次树对应节点间的最短路径有关。例如:

知网中提供了实体类、事件类、属性类等多棵义原层次树, 分属于不同的概念领域, 对于不在同一棵树上的两个义原, 显然无可比性, 相似度为0。对于同一棵树上的两个义原a和b, 有且仅有一条连通路径, 设边数为n, 对于义原层次图, 我们考虑到, 位于上位的义原概念较大, 位于下位的义原概念较小, 故对于同处于同一棵树下部的一对父子节点, 他们对应的义原间的距离应当小于处于其上的任意一对父子节点。则他们之间的距离可用如下公式定义:

其中, level (i) 为该路径上第n条边在该义原层次树上的层级, weight (k) 为每层级的权重函数, 该函数随层数递增而单调递减, 定义如下:

其中, depth为当前义原层次树的层高。

故而a和b的相似度为:

下面我们考虑义项的相似度算法。知网中义原对义项的描述是通过一种知识描述语言KDML进行定义的, 其基本结构如下:

可见次要特征、关系义原特征、关系符号特征都可划归为两个义原集合中的相似度, 对于义原集合之间的相似度算法, 我们采用如下办法:

首先我们计算两个集合P和Q中的义原个数, 记为m和n, 不妨设m≤n, 将P和Q中的义原分别取一计算相似度, 得到m×n个相似度, 取其中最大的相似度, 令其对应的两个义原分别为p1和q1, 然后将集合P与Q中分别去掉该两个义原, 再重复上述办法取得p2和q2……直至P为空集, 令Q中剩余义原为qm+1, qm+1, …qn, 并令其均对应空义原。然后我们分别计算这n对义原之间的相似度, 取其算术平均值即为义原集合P与Q的相似度。即:

综上, 我们可归结义项S1和S2的相似度为四部分相似度的加权平均值:

其中sim1 (S1, S2) 即为 (1) 式算法, sim1 (S1, S2) 即为 (2) 式算法 (i=2, 3, 4) 。β1表示四部分相似度分占权重。在此我们按照以往文献研究中的通常取法, 将上述算法中的几大参数设为:

3.2 非结构化数据采用基于VSM的相似度算法

计算非结构化数据相似度的常用模型主要有基于向量空间模型和集合运算模型等, 综合应用程度和实际需要, 本文选择最常用的向量空间模型。

向量空间模型VSM是在20世纪60年代被提出的, 为代数模型的一种。该模型中假设词与词是不相关的, 将非结构化数据处理成独立的一序列词条组{T1, T2, T3, ∧, Tn}, 根据其在文档中的重要程度赋予相应的权重W1, W2, ∧, 并将{T1, T2, T3, ∧, Tn}看作n维向量空间的一组向量坐标轴, W1为其相应的坐标值。这样我们便得到了一个基于该条数据的向量空间。

基于向量空间模型的TD-IDF方法, 综合考虑了词在所有数据中的出现频率和这个词对不同数据的分辨能力后, 进行非结构化数据训练集中特征项的选取。本文中我们采用改进后的算法, 将特征项在特征选择阶段的权重应用到计算相似度的数据集合中, 改进后的公式如下:

其中:表示该特征项在数据中的重要程度, Wt表示特征项t在训练集中的权重;指特征项在数据d中出现的次数, 另外IDFt的表达式为:

其中:N表示数据集合中所有数据的数目, nt表示所有数据集合中t出现的次数, 称为特征项的数据频率。

非结构化数据的相似度可用向量之间的夹角或距离来表示, 其距离或夹角越小, 说明数据相似度越高。具体公式我们采用余弦计算方法, 其公式如下:

其中:Ti表示数据特征向量;Ti, t表示数据Ti的第t个向量。

3.3 时序数据采用基于分段极值DTW距离的相似度算法

基于动态时间弯曲技术的时间序列相似度查询已经应用的非常成熟和广泛, 但它的计算复杂度在某种层度上限制了其进一步应用。2010年被提出的基于极值点的DTW时间序列相似性算法在多次实验中被证实较为合理, 本文中将采用此方法改进后的PDTW算法中的部分核心思想作为在时序数据维度上算法的主要依据。

设我们即将比对计算相似度的两条时间序列分别为Q{q1, q2, ……, qn}和R{r1, r2, ……, rm}, 其中m≤n。根据序列Q和R可建立矩阵M, 其中Mi1= (qi-rj) 2+ (i-j) 2, 1≤i≤n, 1≤j≤m。在矩阵M中根据以下规则进行路径搜寻:

(1) 路径从M (i, 1) 开始, 初始成本为Mi1, 其中1≤i≤n-m+1;

(2) 每一步是从M (i, j) 到M (k, v) 的一个连接, 成本为Mkv, 其中k≥i+1, v=j+1;

(3) 路径在M (t, m) 结束, 其中t≥m;

(4) 路径的成本是初始成本与每条链接的成本的总和。

根据以上规则, 可在矩阵M中搜寻出多条路径, 利用计算机编写所需程序, 我们可以得到其中成本最小的路径, 并把该路径的成本值作为序列Q和R的距离。采用3.1中相似度与距离的转换公式:

其中α为参数, 考虑到本文中的实际应用需要, 我们暂以日为单位, 对一年中的时间序列做相似度考察, 故而我们取参数

3.4 空间数据采用基于多尺度线状目标的相似度算法

伴随着GIS系统的推广应用, 地理空间数据在实际应用中价值越来越凸显, 在数据中所占的比例也越来越大, 已成为数据综合相似度必须考量的一部分。本文中将模拟空间地理位置变动轨迹为折线, 通过对线状目标形状的分析, 从几何学的角度, 将空间数据的相似度研究建立于相应的基本图形中折线间的相似度算法之上并将算法加以研究改进, 从而建立出多尺度地理空间线状目标形状相似性的计算模型。

下面, 我们先分析一个最为简单的折线与线段的相似度算法:

如图1所示, △ABC的形状可由任意一边与其上的高之比ha和该边对角的角度α唯一确定其相似形, 显然具有相同相似形的三角形对应的该折线和线段具有同样的相似度。故而我们只需考虑上述两点要素即可。

观察图1中的图形, 不难得到如下几个特点:

a) α不变, 当h→∞时, sim (ABC, AC) →0;当h→0时, sim (ABC, AC) →1;

b) h不变, 当α→∞时, sim (ABC, AC) →1;当α→0时, sim (ABC, AC) →0;

c) 当α→180°时, sim (ABC, AC) →1;当α→0°时, sim (ABC, AC) →0。

由上我们可以给出衡量ABC与AC间相似度的两个因素的其中一种表达示如下:

通常情况下我们取两者的算术平均值作为最终相似度:

下面我们将上述算法延伸到混合型的折线与线段间的相似度算法。

a) 串联型图形。

考虑ABDE与AE间的相似度, 我们不妨将其拆分为两个基本三角形△ABC和△CDE, 记两个小三角形所占的权重分别为考虑到折线ABDE与AE的相似度与两个小三角形相应边的相似度关系较难直接给出表达示, 我们不妨按照3.1中的方法从折线间的“距离”出发, 有:

根据图形相似比特点, 我们定义折线ABDE与AE的距离为:

故而我们得到ABDE与AE间的相似度为:

b) 并联型图形。

这类图形的相似度关系较为简单, 经考察图形关系我们可以直接给出:

综上所述, 我们便对此类型中折线与线段间的相似度给出了一个算法。

4. 基于权重分配的多维异构数据相似度算法

以上我们简单讨论并部分改进了关于结构化数据、非结构化数据、时间序列数据、空间序列数据的主流相似度算法, 对于多维异构数据集的数据比对, 我们可以结合上述四个维度上的算法, 根据实际情况赋予相应的权重, 得到一个综合性的多维异构数据间的相似度比对模型:

对于两个包含多维异构数据的信息集P和Q, 设其相关的结构化数据、非结构化数据、时间序列数据、空间序列数据分别为Pi和Qi, i=1, 2, 3, 4。则我们有:

其中αi为各维数据相似度所占的权重, 根据具体应用方向实际情况特定取值。

5. 模型应用方向举例

本文中根据上述探讨的算法在此给出一个初步应用的参考方向。

在各行业信息化发展推动进程中, 大量人工作业被信息化软件所取代, 众多行业的各方信息逐渐实现统一平台化汇总。例如街道社区中的各类社会矛盾, 也通过信息化的手段实现了事件采集和协同共享, 在信息采集过程, 因系统不同, 采集人员不同等因素, 势必会造成信息登记上的遗漏、错误等现象, 那么, 如何从海量矛盾信息中根据相似度判重, 是有效解决社会矛盾, 提高各级调解组织工作效率的有效手段。

信息采集过程中, “姓名”、“性别”、“身份证号”等信息存储为结构化数据, 这些信息指向明确、输入值唯一, 在相似度比较过程中会占有较大比重;“登记笔录”“事件描述”等信息存储为非结构化数据, 通过研究其特征项关键词的相似度, 例如“采光”、“污染”、“拆迁”等词汇, 可在一定程度上反应该案件的信息方向;矛盾反映的日期、事件发生时间等一系列时间存储为时间序列数据, 例如“来访日期”、“调解日期”、“回访日期”等;相应的, 对于空间数据我们考虑事件记录中反映人“出生地”、“户籍地”、“事件发生地”等。

考虑实际中上述四方面的权重, 根据多次实验测试, 我们最终选定以下参数作为此类应用实例的取值。

6. 实验结果及分析

下面我们筛选来自于不同录入系统的两个矛盾事件。为简化起见, 我们只考虑案件部分信息作为举例实验。

A.姓名:小红, 小明;性别:女;事件描述:离异财产纠纷;事发日期:2010-1-1, 来访日期:2010-2-1, 调解日期:2010-2-15;出生地:北京市崇文区;户籍地:北京市海淀区;事件发生地:北京市昌平区。

B.姓名:小明;性别:男;事件描述:夫妻离异, 婚后财产分配存疑义;事发日期:2010-1-1, 来访日期:空, 调解日期:2010-2-10;出生地:北京市崇文区;户籍地:空;案件发生地:北京市昌平区。

a) 提炼上述两登记案件中的结构化数据信息, 即姓名和性别部分, 根据知网中词汇分类详细信息, 按照3.1中算法进行计算, 我们可得到 (以下结果我们均保留两位小数点) :

b) 文档A简要案情的词条组为{离异, 财产, 纠纷}, 文档B简要案情的词条组为{夫妻, 离异, 婚后, 财产, 分配, 疑义}, 根据3.2中的算法, 提取其特征项计算相似度, 可得到:

c) 案件A中的三个时间序列以2010-1-1日为起始, 以日为单位, 化为数值即为:{1, 32, 46}, 案件B中两个时间序列即为:{1, 41}。根据3.3中算法, 我们可找到两个时间序列集合中A到B的最短路径 (1, 1) → (46, 41) , 经计算A到B的距离dis (A, B) =26, 故而。

d) 案件A中的空间数据为{崇文, 海淀, 昌平}, 案件B中的空间数据为{崇文, 昌平}, 即可化为3.4中计算折线 (崇文-海淀-昌平) 与线段 (崇文-昌平) 的相似度, 按地图将三地等方位化为点, 考察其中各线段, 在此我们省略其中计算过程, 可最终得到折线 (崇文-海淀-昌平) 与线段 (崇文-昌平) 的相似度sim4=0.86。

我们可以设定一个阀值, 当计算得到的相似度大于该阀值时即判定两事件为重复事件, 显然对于案件A和案件B间相似度为0.775的结果来看, 我们可基本得到两矛盾为重复事件的结论。

事实上, 我们不难看出, 在第一个系统中录入为A矛盾时, 记录为多人矛盾, 为小明和小红, 并且性别按照小红录入为女;而在第二个系统中录入为B矛盾时, 由于信息缺失或其他原因, 仅记录小明一人, 并且性别按照小明录入为男, 且漏记录了“来访日期”、“户籍地”等信息;按照现在一般程序信息化判断, 由于最主要判断依据项的姓名和性别不同, 且简要案情叙述不同, 故而有极大概率无法判别出两事为同一事件。而在本文提出的模型中, 即可应用到此方面, 较为智能的综合各维度进行比对判定, 大大提高了数据相似度的查全率。

7. 总结与展望

本文从应用角度出发, 针对大信息量的多维异构数据相似性比对, 提出了全新、综合的相似度算法, 实验结果证明, 此算法能较好的适应多维异构数据相似性比对。当然, 由于自然语言较难完全自动信息化模拟等因素, 本文中构建模型尚有各种不完善及需要补充改进之处, 下一步我们会重点关注如何结合神经网络, 针对不同应用, 训练不同维度上的的权重, 以达到进一步推广应用的要求。

伴随信息化应用水平和技术的不断提高, 应用系统的综合度和规模也在不断升级, 亟需针对大型综合应用系统, 提出新的技术和新的建设思路, 本文只是针对大型综合应用系统, 从异构数据相似性角度进行了初探, 还需在这个方向上继续深入, 提出更多符合实际需要、可应用于实际的新技术、新思路。

摘要:本文从应用角度出发, 探索包含结构化数据、非结构化数据、时序数据、空间数据的大信息量多维异构数据相似性比对问题。即在不同的数据维度上采用主流、适合的算法, 计算每个数据维度上的相似度, 再从权重分配角度综合考虑, 提出综合不同维度的大信息量异构数据相似度算法, 从应用的角度, 探索异构数据相似度比对的新思路。

关键词:多维度,异构数据,相似度,权重

参考文献

[1]赵妍妍, 秦兵, 刘挺, 张俐, 苏中.基于多特征融合的句子相似度计算.全国第八届计算语言学联合学术会议 (JSCL-2005) .

[2]刘群, 李素建.基于《知网》的词汇语义相似度计算.第三届汉语词汇语义学研讨会, 2002:59-76.

[3]葛斌, 李芳芳, 郭丝路, 汤大权.基于知网的词汇语义相似度计算方法研究.计算机应用研究, 2010年9期.

[4]郭庆琳, 李艳梅, 唐琦。基于VSM的文本相似度计算的研究。计算机应用研究, 第25卷第11期, 2008年11月.

[5]吴学雁, 黄道平, 莫赞.基于极值点特征的时间序列相似性查询方法.计算机应用研究, 第27卷第6期, 2010年6月.

[6]江浩, 褚衍东, 闫浩文, 郭丽峰.多尺度地理空间线状目标形状相似性的度量.测绘科学, 2010年第5期.

异构数据模型 篇2

下面是部分工具替换后的比对情况:

目前DataX在淘宝数据平台数据已经广泛地被用于数据同步作业,每天共计有4000+道DataX数据同步作业分布在全天各个时段运行。

DataX/DbSync/TT已经构成了淘宝数据平台数据提供的三大支柱:

其中DataX每天为淘宝贡献2.5T数据量,占淘宝数据平台总体数据同步的23%,占数据库数据同步的96%。

异构数据库数据迁移研究 篇3

随着企业的发展, 企业原有的各种信息系统常常需要升级, 以性能更好、规模更大的系统替代原有的系统。例如企业常常考虑使用Oracle或DB2等大型数据库软件来代替MS SqlServer, 在信息系统升级中, 一个不可避免的问题就是数据迁移。而在不同数据库之间进行数据迁移是其中的一个难点, 因为不同厂商的数据库中定义的数据类型不尽相同, 企业可以选择一些数据库系统自带的工具软件进行数据迁移, 例如Oracle公司的Migration WorkBench、MS SQLServer的DTS (Data Transformation Service, 数据转换服务) 。但是这些工具的针对性不强, 不够灵活[1], 所以许多企业在升级数据库时, 常常自己编写软件来完成数据迁移。

本文设计的系统专门用于MS SQL Server和Oracle数据库之间的数据迁移, 本系统采用了Java为编程语言, 采用Oracle10g和SQL server2005作为数据库环境, 并利用Java语言的跨平台性和JDBC的无差异数据使用来为数据迁移提供技术支撑。

1 系统设计和实现

1.1 总体设计

为实现数据迁移功能, 将系统划分为下面几个步骤: (1) 读取源数据; (2) 生成数据转换的规则; (3) 使用Java语言实现操作[2]。

1.2 系统结构设计

系统结构用来描述系统内部各组成要素之间的相互联系、相互作用的方式或秩序, 即各要素在时间或空间上排列和组合的具体形式。系统功能结构设计如图1所示。下面依照这个结构图来描述各个软件功能模块。

(1) 连接模块。使用此系统之前, 必须先连接数据库。本功能模块用于连接SQL Server数据库和Oracle数据库, 通过输入数据库连接所需的用户名、密码、数据库名称等。

(2) Oracle数据区模块。该模块用于显示所连接的Oracle数据库及表的信息。用户通过连接模块进行数据库连接, 如果连接成功, 将在窗口中显示当前连接的服务器下各个Oracle数据库的结构, 采用树形结构显示。显示信息包括服务器、用户名和当前用户可以访问的表。用户可以查看表名称、表中的字段属性及约束条件等详细信息。

(3) SQL Server数据区模块。该模块用于显示所连接的SQL Server数据库及表的信息。用户通过连接模块进行数据库连接, 连接成功后将在窗口中显示各个数据库的结构, 以树形结构显示, 结构分3层, 最上面是现在已连接的SQL Server数据库的服务器名, 第2层为现在可以访问的数据库名。

(4) 操作模块。本模块的主要功能是对选中的表进行操作, 分为两个界面, 左边显示SQL Server数据库信息, 右边显示Oracle数据库信息。

迁移表的操作是新建表与删除表操作, 用户在界面左边选择SQL Server数据库中的一个表, 这时本系统会在连接的Oracle数据库中查找是否存在同样的表, 如果没有, 将会在Oracle数据库中新建立一个表, 表的字段、数据类型、约束条件、主键等信息全部通过读取相应的SQL Server数据库获得, 按照本系统预先建立的数据类型转换对应表, 生成SQL语句并在Oracle数据库中运行该语句以建立相应的表。这个过程完成了以下操作:读取SQL Server数据库->生成SQL语句->在Oracle数据中建立表, 这就相当于完成了从SQL Server到Oracle的表的迁移。

(5) 操作结果模块。本模块用于显示数据迁移完成后的结果。这些信息包括用户选中表中的各个字段信息、表中的具体数据, 还有根据数据类型转换规则执行后的一些字段信息和生成的SQL语句, 以及在目的数据库表中的新数据和系统本身记录下来的操作日志。

(6) 辅助功能。在迁移过程中显示迁移的时间进度表, 提示估计完成时间和剩余时间, 如果迁移过程中出现错误, 将中止迁移操作并且提示错误类型和出错位置等信息。

2 系统详细设计

详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法逻辑上要正确且算法描述要简明易懂。这里仅描述这个阶段的关键步骤。

2.1 操作区模块

迁移模块主要完成的工作有:

(1) 连接Oracle和SQL Server数据库。

(2) 从SQL Server到Oracle数据库的迁移。该操作实现过程如下: (1) 从SQL Server数据库中获取到将要迁移的表; (2) 获得表的详细信息:表名、数据类型、约束条件、主键等; (3) 从Oracle数据库中寻找相应的数据库, 如果没有则重新建立新数据库; (4) 完成从SQL Server到Oracle的迁移; (5) 提示迁移成功消息框, 完成迁移日志记录。

(3) 从Oracle到SQL Server数据库的迁移。实现的方法和从SQL Server到Oracle数据库的迁移方法相似, 不再赘述。

2.2 大数据字段的迁移

在数据迁移过程中有一些大数据字段的迁移比较复杂, 所以单独在本节进行分析。例如, 在SQL Server表中有一种二进制数据类型是image, Oracle数据库中没有image数据类型, 但是Oracle有存储为二进制数据的类型, 比如BLOB类型, 这样就可以将SQL Server中的image类型转换为Oracle中的BLOB[4]。下面对步骤进行描述:

首先使用SQL语句以获得一个结果集, 然后调用这个结果集的getBinaryStream方法, 从而获得二进制数据, 接下来将此二进制数据写入到一个临时文件中。接下来, 就可以把数据转换成BLOB型存到Oracle表中[5]。

因为BLOB类型的特殊性, 这里写入BLOB字段与写入其它类型字段的方式不同。由于BLOB必须使用其自身的cursor才能对BLOB进行操作, 所以在写入BLOB之前需要获取cursor。

可以先插入一个空的BLOB, 这会创建一个BLOB的cursor, 接下来再将这个空的BLOB的cursor查询出来。这样通过两个步骤, 就间接获得了BLOB的cursor, 此时才能真正写入BLOB数据了, 代码编写需分成3个步骤来完成这个功能[6]。

(1) 插入空BLOB:

into javatest (name, content) values (?, empty_blob () ) ;

(2) 获得BLOB的cursor:

select content from javatest where name=?

(3) 用cursor写数据:

update javatest set content=?where name=?

通过上面几个步骤就能完成从image到BLOB的转换。而text到CLOB的方法, 以及ntext到NCLOB的转换, 因为都是二进制数据, 所以可以用相同的方法实现, 这里不再赘述。

3 系统测试

为了测试系统的有效性, 特设置测试环境[7]用于测试, 方法是从Oracle数据库中将较大的数据量迁移到SQL Server数据库中, 测试数据使用Oracle中样例数据库SH中的SH.SALES和SH.PRODUCTS两个表, 两个表的数据行约为100万行和1万行。实验主机配置为表1所示。

为了更好地比较, 测试中还选用了SQL Server自带的数据迁移工具DTS, 当迁移完成后记录测试中所花费的时间和内存资源, 如表2所示。

从表2可知, 使用DTS运行时占用内存资源比较稳定, 消耗内存资源比较少;而迁移系统在运行时仅耗内存资源50~120MB。当数据量比较小时, 所需内存资源比较小;当数据增加时, DTS所耗内存资源将随着迁移数据的增加而显著增加。

本系统对两个表的迁移都比SQL Server自带工具DTS要快, 并且数据量越大时, 效率越明显。虽然使用本系统将会耗费更多的内存, 但在目前机器内存普遍比较高的情况下, 多占用一些内存并不影响系统的有效性。

4 结语

文中对异构数据库进行了研究, 对SQL Server和Oracle数据库的数据类型进行了分析, 根据软件工程思想对系统进行了总体设计和详细设计, 并使用Java程序设计了语言实现系统。该系统可以在SQL Server和Oracle数据库之间进行数据迁移, 最后通过搭建测试环境证实了系统的有效性。

参考文献

[1]张玲.数据库迁移测试系统的设计与实现[D].大连:大连理工大学, 2005.

[2]陈海宁, 索旺.Java语言案例教程[M].北京:北京工业大学出版社, 2000.

[3]刘天时, 孟东升.信息系统数据迁移方法研究与应用[J].西北大学学报:自然科学版, 2006 (1) .

[4]于海涛.基于Java的异构数据库间数据迁移[D].长春:吉林大学, 2007.

[5]罗林球, 孟琦, 李晓.异构数据库迁移的设计和实现[J].计算机应用研究, 2006 (1) .

[6]余秋明.异构数据库间数据迁移[D].南昌:南昌大学, 2009.

异构数据模型 篇4

一、异构数据库系统

从异构数据库系统来看, 它的意图是合并和共享各个数据库之间的数据、信息、资源、硬件设备以及人力资源。在集成过程中, 最为重要的技术是以各个局部数据库类型为基础, 构建整体的全局视图。

二、异构数据库数据共享

鉴于异构数据库系统内有语义语法方面的不一致, 要等价转换系统中的数据显得不那么容易。因此, 它的转换意图是转换源数据库中整体有意义的资料和信息, 使得他们都进入到目标数据库。在这个过程中, 尽可能不含有无用信息。本文下面来论述若干数据转换的途径。

1. 使用软件工具进行转换

通过运用数据导入工具, 可以以文件形式将异构数据导入到集成好的数据库表内容。例如, PowerBuilder、Server以及SQL DTS、Oracle分别通过各自的数据管道Data Pipeline和SQL*Loader等, 可以在很大程度上整合和集成系统、文本、表格等以系统格式存在的数据和信息。在编写完成各个分系统所运用的转换代码后, 这些原始数据就能够转换、清理错误的数据、转化数据结构、消除冗余信息、存储以及刷新数据。但是, 数据转换工具本身没有独立性, 必须先要打开行该数据库产品中的前端应用程序, 之后才能运用有关的转换工具。而且, 转换程序比较多, 人工操作成分比较多。

通常情况下, 各数据库都载有此类专用工具, 这些工具密切结合了自身数据库的特征。在集成完成后, 如果没有转换到转换工具一一对应的数据库中去, 则不能使用这些数据转换工具, 而只能运用和集成相同类型的DBMS异构数据库。

2. 利用第三方数据库的转换

在转换规模较大的数据库时, 由于它的数据量非常大, 再加上不能使用工具软件的, 这就要运用其他小型的桌面数据库来进行转换, 如Access、Excel等。在转换具体的数据库过程中, 要从字段、表和关系定义出发, 借助原始数据库, 先通过中间数据库的转换, 读出数据, 并导入到对应的目的数据库内。

在这种方法中, 要求所需转换的模块比较少、扩展性能很强大, 它的缺点是要撰写大量SQL语句才能完成实现转换, 而且这种过程比较复杂, 但是质量并不高, 转换过程也比较冗长。

3. 设置传递变量的转换

在数据库应用程序中, 要充分运用数据库连接和开发工具功能, 先设定若干个有差异的传输变量, 这样就可以在源数据库与目的数据库进行转换, 而且可以链接和直接转换两个数据库异构数据库之间。在现存的数据库系统扩展过程中, 这种转换方法相对而言容易些, 且转换速度和转换的质量也是比较高的, 但是它的通用性非常差。

4. 通过数据库组件的转换

在转换过程中, 要充分运用数据库中应用程序里面的开发技术, 首先要设定ODBC, 在此基础上, 直接运用相关的数据工具进行数据转换。借助ODBC组件, 源数据库与目的数据库能够存取相关数据, 直接转换相关数据。信息数据的类别成为了组件存取数据的核心内容。假如源数据库并不能一一对应于目的数据库中的数据类型和数据定义, 则必须等价地转换这些数据的类型, 进而开展数据转换工作。如果进行完全等价, 则存在很大难度 (图1) 。

5. 利用XML实现转换

就XML来讲, 它和平台性并没有关系、可以扩展, 而且互操作性非常强大。它的数据语义描述能力以及传送能力都非常好, 作为数据源交互媒介, XML是非常不错的选择。就XML来看, 它自身的灵活、可扩展等特征使得它能够很好地描述不同应用类型的数据、甚至还可以描述存在很大差异的应用数据, 尤其适用于专门记录数据库数据的应用。除此之外, XML自身还具备自我描述性特征, 这就能够使它在不同的应用程序直接处理和交换相关的数据。这样, 也不必根据该数据二制定与与之有关的应用程序。

从XML来看, 它还能够在Web浏览的基础上实现多种形式的可视化显示, 从中间过程的转换处理程序来看, 需要访问管理系统内部的数据信息以及输出XML文档。为了能够很好地在XML文档和数据库之间传输和转换信息数据, 这就要求在文档以及数据库的结构间构建起相关的映射关系。建立映射关系, 标志着实现了中间转换处理过程中的程序功能。在XML的基础上, 数据库系统集成的核心内容是构建数据公共映射的相关模型, 这样就可以完成XML模式和数据库模式这二者之间所存在的映射关系, 这样一来, 关系模型就被映射到该公共数据模型上, 而后再通过公共模型映射到关系模型上。这个模型务必要达到下列要求:从模型的设置来看, 它应尽量简单, 要有很强的可操作性, 还要非常容易转换相关的数据库模型。因此, 这种模型的描述性也要非常好, 可以系统地描述和读取相关的数据模型, 要与偶非常强大的可扩展性。这种模型不仅要能够映射相关的数据结构和数据操作, 还要约束好数据库的完整性特征, 以这样就能够规避完整性不够而导致后来的插入以及删除异常。

从异构数据库来看, 它所牵涉到的数据形式主要有以下几种:结构化、半结构化以及非结构化等3种类型的数据。结构化数据的存在范围很广泛, 它在各类的信息系统数据库中都是大量存在的, 而且在关系数据库的存在最具有代表性。通常情况下, 半结构化数据都是存在于Web页面中, 它包括普通的文档、文件、各类电子邮件等内容。从XML来看, 它能够很好地处置和设定这两类数据。

XML可以用来转换数据转换, 这样就能够共享异构数据库中的相关数据, 这种方案的可行性也比较强。它的核心是构建起一一对应的映射模型。数据库异构和技术数据库异构问题的实习主要通过以下两种方式:第一是以客户端为基础提出相应的解决方案。比如, 可以借助PowerBuilder来进行软件开发, 通过把异构数据库和客户端链接到ODBC或其它数据库专用接口上, 此种类型的解决方案通常适用于C/S类型;第二是以服务器端为基础提出相应的解决方案。这就是说, 为例减少客户端的工作压力和工作负担, 通常都是在服务器端处理信息, 这种类型以B/S方式为主。

三、结语

在应用这些技术解决异构数据库问题时, 通常都要构建不少子系统, 它们构成了集成计算机信息系统, 这样就可以实现复杂度更高、更高水平的性能。然而既有的异构信息系统, 通常情况下信息孤岛情况是普遍存在的。这就是说, 在各个子系统间, 它们都是相互分开的、实现信息交换和信息共享的难度很大。这就要我们运用系统集成手段来处理这些问题。从上文分析可以看出, 信息集成技术是为了更好地处理和转换系统中复杂度更高的、分布更为广泛的、结构各不相同的多媒体信息数据和转换、交换、集成以及共享普通结构数据。在这个过程中要以异构数据库为基础实现系统集成, 这样就可以增强系统的可移植、互操作、互换以及稳定等特征。

为了更好地交换和共享异构数据库中的相关信息, 要处理好异构数据库中的数据转换。在转换过程中, 要处理好相关的理论与技术措施。这样以来, 就能够很好地破解数据转换、信息技术发展以及数据库升级所带来的各种问题, 也能够尽可能地运用已有资源, 更好地服务于经济社会的发展。

摘要:在企业开展信息化过程中, 异构数据库中的数据共享是非常关键的问题。本文首先厘清了异构数据库的目标, 在文章的第二部分提出了异构数据库数据共享中的转化方式。希望这些方式能够尽可能地运用既定资源, 节省开发资源。

关键词:异构数据库,数据共享,转化方式,软件工具,第三方数据库

参考文献

[1]杜宝伟.信息化建设中异构数据的共享策略和方法[A].2012油气藏监测与管理国际会议暨展会论文集[C], 2012

[2]万静, 刘健, 王学伟, 易军凯.基于XML的异构数据库信息共享方法研究[J].北京化工大学学报 (自然科学版) , 2010 (05)

[3]许晓林.一种基于本体的异构数据库集成方法[J].煤炭技术, 2007 (09)

异构数据库间数据同步的方法实现 篇5

为了提升业务管理平台的易维护性、可延展性、数据安全性, 大多数业务管理平台选择将数据分层管理, 以轻量级业务管理平台为例, 既只将数据分离为数据采集层和数据应用层两层。数据的分离意味着不同数据层之间为了实现数据交互以满足业务需要就必须按照业务规则将数据采集层的数据同步到数据应用层。

数据同步在时间维度上可以分为实时数据同步和非实时数据同步。实时数据同步要求数据存储到采集层与同步到应用层同步进行, 几乎不存在时间差。非实时数据同步要求数据存储到采集层与同步到应用层异步进行, 即将数据存储到采集层之后根据业务需要按照规定的触发时间 (固定周期的固定时间点) 将数据采集层的数据同步到数据应用层。

本文以石油行业信息系统数据统计模块中针对数据实时性的迫切需求为背景进行讨论。支撑系统的数据由数据采集层和数据应用层组成, 拥有各自独立的数据库进行数据的管理。数据采集层采用指标维度的组合方式存储数据, 即一个数据单元是由一个指标及其对应的维度组 (多个维度的组合) 来唯一存储定位。系统开发初期使用ETL工具进行两个异构数据库之间的数据同步。数据应用层采用维度组与指标组联合定义事实表结构, 事实表与维度组所对应的维表关联形成星形模型, 通过BI工具进行建模, 按照业务规则将各项数据灵活地展现出来。

ETL的工作方式是在一个固定的周期或固定的时间点 (例:每天晚上十二点整) 批量地将数据采集层按照相应的业务规则同步到数据应用层, 这种方式必然会造成两个数据库之间在某些时间周期内存在数据差异性的问题, 无法满足用户“即填即用”的业务需求。由于ETL方式对于实时性数据要求的局限性, 最后探讨并提出了通过存储过程实现部分数据实时同步、通过ETL方式实现部分数据非实时同步的数据同步方案。

一、相关技术分析

通过ETL技术进行数据同步, 可以对多种操作 (数据源的数据抽取、转换, 维护) 过程进行简化和自动化管理, 定期或按调度接收数据, 并将其输入数据集市或数据仓库目标数据库的集成工具。ETL可以从多个不同的业务系统、多个平台的数据源中抽取数据, 完成转换和清洗, 将结果数据装载到各种系统里面。其提供了图形化的开发环境, 可维护性较强, 能自如应对业务的复杂变化, 兼容多种数据源。

虽然ETL技术具有非常强大的数据处理能力, 但其无法实现数据的实时同步, 即无法满足用户在数据采集层进行数据填报后随即在数据应用层进行数据分析、查询等操作。

存储过程 (STORED PROCEDURE) 是一组为了完成特定功能的SQL语句集, 是数据库中的一种重要对象。它能够接受输入参数, 并以输出参数的形式将多个数据值返回给调用程序, 包括执行状态, 并能够执行其他存储过程, 经过第一次编译后再次调用不需要再次编译, 是一种高性能的数据操作。

虽然存储过程是一种高性能的数据操作, 但其后台需要大量的SQL语句支撑其实现, 没有成熟的开发工具支撑, 面对灵活多变的业务, 其维护难度极大。

系统中数据采集层与数据应用层为异构数据, 数据采集层同步到数据应用层的数据量庞大, 并且一部分数据必须满足实时同步的业务要求, 所以数据采集层到数据应用层的异构数据同步既要满足大数据同步的要求, 又要满足实时数据同步的要求。通过对实时数据相关业务的分析, 发现其业务具有很强的稳定性, 故采用存储过程的方式实现实时数据的同步, 其他非实时数据采用ETL技术实现数据同步。同时选择两种不同的异构数据同步方式既满足了数据实时性的要求, 又满足了大批量数据同步的现实业务要求。

二、数据结构描述

数据采集层的数据存储是以指标、维度组合的方式实现存储, 即一个数据单元由一个指标及其对应的维度组 (多个维度的组合) 唯一存储定位, 如表1。

数据应用层按照维度组与指标组组合定义事实表 (如表2) , 事实表与事实表中各个维度对应的维度表相关联形成星形模型 (如图1) 。其中, 事实表中的一行数据代表数据采集层中所有维度相同的指标的数值信息。

三、数据实时同步 (存储过程数据同步)

数据实时同步实现步骤。系统中存储过程通过数据采集层与数据应用层之间的业务关联性构建视图实现数据采集层与数据应用层的异构数据转换。根据数据结构描述章节中提到的两个异构数据库间表结构的特点, 在视图中应用“行转列”方式, 对数据采集层的数据进行抽取和转换, 生成满足数据应用层要求的数据集, 并将数据集数据存储到数据应用层对应事实表中。

1) 创建存储过程。填报机构、填报年份、填报月份、报表编号四个参数, 定位数据采集层中唯一的报表实体, 并支撑数据抽取和转化视图数据抓取范围。考虑到存储过程的使用效率, 故将其建立在数据应用层中, 并建立数据应用层到数据采集层的DATABASE LINK连接支撑数据抽取和转化视图数据抓取。

2) 数据抽取和转换。根据数据采集层与数据应用层的业务逻辑以及数据模型特点, 通过“行转列”方式实现从数据采集层到数据应用层的SQL逻辑视图。

维度根据指标分组, 并将其行转列。具体实现代码如下:

维度行转列的执行结果, 如表3所示。

指标根据行转列后的维度组分组, 并将其行转列。具体实现代码如下:

指标行转列的执行结果, 如表4所示。

3) 数据存储。将数据抽取与转化视图生成的结果数据集定义为一个游标对象CURSOR, 具体代码模型如下:

CURSOR游标名称IS SELECT*FROM结果数据集SQL

获取到游标对象后, 可以通过LOOP循环获取每行数据, 逐行数据进行插入操作, 具体实例实现代码如下:

4) 日志记录。事实表表结构发生变化或者机器网络故障等突发情况下, 存储过程执行势必会受到影响, 通过事实表存储过程调用已创建的日志记录存储过程来定位事实表存储过程的执行情况。

日志记录存储过程包含报表编号、填报机构、填报年份、填报月份四个参数, 该参数组定位唯一存储过程的执行情况, 如果执行有异常, 那么在EXCEPTION WHEN OTHERS THEN之后, 将SQLERRM错误信息作为返回结果参数传递给日志记录存储过程, 通过SQLERRM的内容, 能够很容易分辨出执行存储过程中存在的问题, 方便开发人员进行存储过程的问题跟踪。具体实例实现代码如下:

四、批量数据同步 (ETL工具)

数据准备区:考虑到数据采集层随时都可能进行更新等操作, 被频繁的访问, 为了不影响数据采集层对应数据库的IO性能, 所以建立数据准备区, 减少数据转换/清洗操作对采集层的影响。

CSV文件:对于一次维护并且较长时间不变的数据可以用CSV格式文件 (ETL工具也支持其他文件格式) 进行维护并通过ETL工具同步到数据应用层, 如系统中涉及到的维度, 维值。

批量数据同步实现步骤:

1) 数据抽取。通过ETL工具将数据采集层的数据抽取到数据准备区有两种方式:全量抽取和增量抽取。

全量抽取:ETL工具将所有数据采集层中的表、视图等数据对象抽取出来, 并转换为满足业务需要的表数据对象。

增量抽取:只抽取数据库中以上次抽取结束时间为起点的所有新增或修改的数据。

增量抽取较全量抽取应用更广, 如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求:准确性, 能够将业务系统中的变化数据按一定的频率准确地捕获到;性能, 不能对业务系统造成太大的压力, 影响现有业务。数据抽取如图3。

2) 数据转换、清洗、加载。数据转化、清洗由两部分组成, 第一部分数据准备区到数据应用层的数据转换/清洗, 第二部分CSV文件中数据到数据应用层的数据转换/清洗。

数据准备区到数据应用层的数据转换、清洗、加载, 如图4。

CSV文件中数据到数据应用层的数据加载, 如图5。

五、总结

随着信息时代的高速发展, 对于企业, 如何能使决策者随时查看生产过程数据, 以便快速地做出更为灵活的商业决策, 是企业信息化建设的关键, 但是面对不断膨大的海量数据, 结合企业自身业务的特点, 采用灵活的数据同步方法, 不仅降低了企业信息化建设费用, 同时也满足了企业对数据的需求。系统采用了数据存储过程和ETL工具数据同步两种数据同步方法, 即满足了数据实时性的要求, 又保留了大批量数据的处理能力, 同时为后续的业务扩展提供了空间。

摘要:本文针对系统中异构数据库间数据同步对数据实时性要求的不同, 提出了通过ETL实现非实时数据同步, 通过存储过程实现实时数据同步相结合的同步方法。该方法在实际使用过程中, 取得了良好的应用效果。

异构数据模型 篇6

1 数据交换过程

数据交换能有效实现数据之间信息共享, 数据交换在现实中的应用意义重大。例如能实现企业业务之间的数据资源共享、业务协同, 彻底的冲破了信息孤岛的现象。数据交换理论在不同的数据环境中实现途径存在不同。在数据交换平台中, 主要包含以下几个部分:数据配适器服务、数据传输服务、数据安全服务、数据转换服务以及平台控制服务。数据交换的过程主要包括:数据提取、数据转换、数据传输、数据接收以及数据控制与管理。

数据交换中的第一环节是数据提取, 数据的提取同时也是对数据的识别, 通过连接上原始异构数据源, 对需要进行交换的原始数据进行提取, 对数据进行分析处理, 使得用户能实现数据信息之间的准换。那么可以通过数据信息提取法形式进行提出信息的原始数据源主要分为以下三种:第一, 数据库资源, 数据库资源是指专门对企业数据进行存储的各种关系数据库, 比较典型有SQL Server、Oracle、DB2;第二, 文件数据源。文件数据源是指, 在单位业务系统中, 具有特定格式的文件, 例如企业的工资表以及财务报表等形式;第三, XML文档。该种形式的文档能实现结构化的数据交换。在科技化的信息交换中占据着重要的地位。而在数据交换中的数据传输、以及数据交换平台相关的数据传输, 都是数据交换系统中比较重要的环节。在数据交换中, 数据转换技术其中最为核心的部分, 该项技术能实现数据的格式化转换, 下文将对数据转换技术进行详细的分析。

2 数据异构性分析

2.1 系统异构

数据系统的异构性是指, 数据源在其存在的数据系统环境、数据库管理系统以及实际数据操作系统中所表现出来的异构, 在数据形态上表现出来较大的显性, 对于数据系统的异构分析具有较强的现实意义。最为常见的数据异构就是数据库管理系统的不同。数据库管理系统从文件管理系统中发展而来, 能实现数据的结构和数据管理, 在数据模型基础上, 对物理数据模型进行异构。而操作系统的不同是指, 操作系统在各个数据库系统中, 其最为基本的操作系统可以是Windows、Unix, 但是信息在不同的操作系统中, 也具有着不同方式的表达, 因此数据也存在很多差异性。不同数据来源于不同存储格式, 有的数据来源于XML文件, 有的数据来源于其它格式, 存储异构的问题需要在数据交换技术中被解决。

2.2 模式异构

数据模式异构中, 数据长度不同比较明显。不同长度的数据, 即使其属于同一字段, 但是在不同数据形式之间的交换长度的定义也存在很多不同。例如, 不同长度的编译器中, 不同数据类型所能分配到的数据长度有着明显的差异性。数据模式的异构性还表现在数据精度的不同方面, 字段的属性的精度不同, 数据交换的双方都必须是数字类型。当一个数据的精确度是小数点后面两位, 那么来过一个要进行数据交换的数据精度也需要是精确到小数点后两位。

3 数据转换技术

3.1 XML文件数据模型交换

在异构数据之间进行转换技术, 就是对数据库中的中数据进行数据转换, 其核心就是对异构数据中包含的问题进行分析。数据模型实际上就是对数据固态特征的抽象化, 能充分展示出数据库管理的形式框架来。而数据模型同时也是数据库中数据的约束条件, 通过数据库的结构部分、操作部分对其约束。对XML数据交换模型进行分析, XML文件是模型中的中间数据, XML丰富的表现形式能将数据表示与结构相互分开[5]。

3.2 数据配置

在数据配置模块中, 主分为三大部分, 分别为注册集成、数据匹配以及数据卸载。这三部分对数据配置模块进行大力支持, 能帮助其实现功能。要想完成数据交换中的数据配置, 这三个模块在形式上缺一不可。其中, 数据注册集成, 实现了对应用系统中的需求集成, 将配置信息已统一格式写入XML文档中。数据匹配是指, 在传输的数据中, 为数据匹配提供规则, 实现数据转换。数据卸载是指, 在数据交换成功之后将需求运用的数据退出平台中, 并对数据信息进行卸载。

3.3 数据平台管理

数据的平台管理是指, 对数据日常交换中产生的日志以及数据浏览进行管理与维护。在数据平台管理模块中, 主要包括四部分:日志管理、用户管理、系统数据信息维护以及数据交换监控。其中日志管理是指, 在进行数据交换环节中, 会产生一些由于数据接收、数据发送等的历史数据记录, 用户数据访问记录档案等。而用户管理是指, 对数据交换平台进行直接管理, 例如信息交换的密钥、重点信息存储等。系统的维护是指, 在进行数据交换环节中, 难免会产生一些数据故障, 此时就需要系统维护对故障进行处理, 实现数据搜索的优化[6]。

3.4 数据映射之间的关系

在实际的异构数据交换技术中, 存在着以下的数据之间的映射关系。

Equal相等关系:该种关系比较简单, 所表达的含义是数据源中数据与目标数据相同, 在数据长度、数据类型以及数据精度等方面都能相互吻合。

Const固定值关系:该种关系是指需要被转换的目标数据与规定的数据常亮。

Null空值关系:该种数据关系是指, 在实际准换中, 目标数据为空。

Custom自定义关系:该种关系是指从数据用户的自定义公式中得出目标数据。

Double Config双配置表关系:数据源配置表能衍生出目标数据。

DBMapping数据表映射:该种数据关系是指在数据表的简单计算下, 能计算得出目标数据。

4 结语

随着科技信息技术不断发展, 各行各业中为了实现工作效率, 并将工作流程进行简化, 在企业数据管理中建立众多数据库系统。为了实现各个部门、单位之间的数据信息共享, 需要一种数据转换技术在各个数据库系统中运用, 实现数据资源的交换。对于数据交换平台汇中的异构数据转换技术的研究能实现数据库系统中的数据转换, 在时代发展中发挥着重要的作用。

参考文献

[1]王亚玲, 刘迪, 曹占峰.基于优先级的任务调度模型在数据交换平台中的应用[J].中国电力, 2008 (4) .

[2]芦大鹏, 郭荷清, 郑毅强.数据交换平台中的中介结构研究[J].计算机应用与软件, 2008 (10) .

[3]陈艳, 刘燕, 杨彦臣.XML技术在森林资源数据交换平台中的应用研究[J].河北林果研究, 2007 (3) .

[4]展翔.基于XML技术的异构数据库数据交换技术的研究[D].武汉:武汉理工大学, 2007.

异构数据模型 篇7

网络与数据库技术的发展,促使油田信息化的不断进步与完善。过去由于受到技术的限制,企业内部应用的软件部分为单机版软件,而且数据库以小型数据库居多,数据库表以DBF格式的居多,现在软件大多需要更新换代,新的开发数据库系统都集成到以B/S方式为基础的Oracle这类大型数据系统上,这就涉及到了原有数据库的数据与现有数据库的相互转换。例如,油田公司这两年推广的A系列项目的数据库都使用的是大型数据库Oracle,这就涉及到了如何将小型数据库系统中的数据迁移到大型数据库系统中的问题。如果以前应用小型数据库(例如:VF中的DBF)的旧软件还需要应用,那么还要把大型数据库中的数据再转换成小型数据库的数据格式再导入。

2 利用PowerBuilder的数据管道Data Pipeline

PowerBuilder通过对不同数据库采用不同接口的形式同时支持多种关系数据库,并提供了数据管道技术,这是实现两个数据源之间数据传输的一种常用数据处理技术,它在数据库系统转换、原始数据录入、数据导出、移动存储、分布式数据库复制等方面应用非常广泛。通过数据管道,应用程序能够在不同的数据库之间移动数据,也就是说,可以把一个或多个源表中的数据复制到新表或已存在的目的表中,可以删除目的表及其数据后重建目的表,也可以只把最新数据传送到目的表中。而且,这种数据迁移既可以在同一个数据库的不同数据表之间进行,也能在不同数据库管理系统的不同数据库之间进行。除了迁移常规数据(比如数值型、字符型等)外,数据管道还可以在数据库之间迁移图像、声音之类的大二进制对象(Blob型数据)。用数据管道复制数据时,可以复制表中的所有数据,也可以复制部分数据,甚至还可以复制出加工了的数据。

2.1具体操作方法

在使用数据管道前首先要创建数据管道对象。创建数据管道对象时,需要确定源数据库、目的数据库,要从中复制数据的源表,要存放数据的目的表,要执行的数据管道操作类型,运行数据管道事务提交的频率,容许出现的最多错误数,是否要把表的扩展性一起传送到目的数据库中。

(1)启动画笔栏的“Pipeline”图标,系统显示“Select Data Pipeline”对话框.

(2)修改某数据管道对象时,通过单击从列出的对象中选择要修改的数据管道对象,然后单击“OK”按钮,进入数据管道画笔工作区;要创建新的数据管道对象时,单击“New”按钮,系统显示“New Data Pipeline”对话框.

(3)“New Data Pipeline”对话框分成了两个组:“Data Source”组框用于选择数据源,这些数据源的作用与创建数据窗口时的数据源的作用完全相同,它们生成指定的SQL SE-LECT语句;“Database Connections”组框用于指定提取数据的源表所在数据库的数据库配置和目的表所在数据库的数据库配置,如果所需的数据库配置没有在列表框中列出,那么必须使用数据库配置画笔定义相应的数据库配置.

(4)选择了源数据库、目的数据库以及数据源后,单击“OK”按钮,系统根据所选数据源的不同,出现不同的画面,按定义数据窗口数据源相似的方法定义数据源。

(5)定义了数据管道对象的各种选项后,就可以在数据管道画笔中运行数据管道了。单击数据管道画笔工具栏上的“Execute”图标或从“Design”菜单中选择“Execute”菜单项。

对于耗时较长的运行过程,随时都可以终止数据管道的运行,方法很简单:单击数据管道画笔工具栏“Execute”图标位置上的图标,此时图标的图案是只红色小手。数据管道运行结束后,小手图案又变成“Execute”图标图案。

3 利用VFP6.0的自动升迁

VFP6.0提供Oracle和SQL Server两个升迁向导。这两个升迁向导可以创建Oracle数据库或SQL Server数据库,实现数据库各表中的功能。VFP的数据库在升迁之前必须把所有的表都放在数据库里,自由表不能直接升迁,而实际上升迁上去的又只是表,数据库本身不能转到Oracle里。要把VFP数据升迁到Oracle上,必须先在Oracle里建立相应的数据库。

具体操作方法如下:

(1)先取得要导入的ORACLE的服务名,例如ORA10。

(2)配置ODBC,利用Oracle的服务ORA10创建DSN,命名为TEST。

(3)启动VFP,打开项目数据库,利用DSN创建连接Conn_test。

(4)选择“工具”、“向导”、“升迁”单击。

1)选择ORACLE升迁向导;

2)选择要升迁的本地数据库Library;

3)选择可用的数据源(test)或连接(conn_test);

4)输入用户名和口令;

5)选择要升迁的基表;

6)改变匹配字段的数据类型,即本地字段数据类型与服务器字段数据类型的映射;

7)选择表空间user_data;

8)选择表空间文件(采用默认值);

9)指定簇信息;

10)设置升迁选项;

11)单击完成。

4 格式转化

PL/SQL Developer软件是一个为ORACLE数据库开发存储单元的集成开发环境(IDE),使用PL/SQL Developer可以很方便地管理Oracle数据库。转换数据只是其中的极小部分的功能。具体操作如下:

打开PLSQL Developer软件后,点TABLE,找到要导出的表,右键单击,选择“Edit Date”,这时在“SQL”标签的右下角有一个“Expot Query Results……”的图标,单击后出现菜单“CSV File”,“TSV File”,“HTML File”,“XML File”,选择“CSV File”后存储路径,打开*.csv文件,另存为*.xls。然后用VFP导入。至此Oracle转化为dbf格式完成。

5 结语

数据转换中最重要的工作是建立正确的数据库连接数据,包括合适的驱动程序和正确的身份认证。如果源数据库类型与目标数据库类型相差较大转换时,一般可以采用过渡的方法,先将源数据库转成一种通用格式(如文本格式、表格格式或SQL数据等),然后再利用通用格式转换成目标格式。当针对一些简单的数据转换,也可以用VFP、Access等数据库软件自带的导入导出功能来实现转换。

数据转换是一项极为重要的数据库操作技术,它关系到应用系统的可移植和二次开发能力。数据转换可以很好地解决信息技术的发展和数据库的升级带来的问题,能够最大限度的利用现有资源,避免重复开发的浪费。数据转换灵活应用将会给油田应用软件开发带来极大的便利。

摘要:由于油田软件的更新换代,需要应用大型数据库管理系统以满足油田日益增长的业务需求,这就涉及到如何将现有小型数据库系统中的数据转移到一个大型数据库系统中的问题。本文对工作中经常使用的几种有效的数据转换方法进行了介绍。

关键词:数据库,数据,转换

参考文献

[1]Microsoft Corporation.Visual FoxPro6.0中文版程序员指南.北京希望电子出版社,2000.

[2]冯晓利,叶晓虎.学用Visual FoxPro6.0中文版.清华大学出版社,1999.

异构数据库同步问题研究 篇8

关键词:数据同步,一致性,变化捕获

本章在分析数据同步技术现状的基础上,针对异构数据库环境,提出了一种“基于SQL还原法”的适合于企业级数据同步的技术。该方法运用触发器或日志分析工具对源数据库变化进行捕获,还原出源数据库发生变更的SQL语句并记录日志,然后通过从日志文件中获取被还原的SQL语句,执行更新目标数据库,从而达到数据同步。该方法具有完全异构、灵活性好、通用性强、安全性高的特点。

一、数据同步方法分类

对象变化捕获是数据同步的基础,它直接决定了数据同步的更新方式和选时方式,所以数据同步常常按照其变化捕获的不同进行分类,一般可以归纳为以下六种基本方法。

1、基于快照法:

快照(Snapshot)是数据库中存储对象在某一时刻的即时映像。通过为同步对象定义一个快照或采用类似方法,可以将它的当前映像作为更新副本的内容。

2、基于触发器法:

在源数据库为同步对象创建相应的触发器,当对同步对象进行修改、插入或删除等DML(Data Manipulation Language)命令时,触发器被唤醒,将变化传播到目标数据库。

3、基于日志法:

数据库日志作为维护数据完整性和数据库恢复的重要工具,其中已经包含了全部成功提交的操作记录信息。基于日志法就是通过分析数据库日志的信息来捕获同步对象的变化序列。

4、基于API法:

一些小型数据库和非关系型的数据库没有触发器和日志机制,可以在应用程序和数据库之间引入一类中间件,由它提供一系列API[包括ODBC驱动程序),在API上来完成应用程序对数据库修改的同时,记录下同步对象的变化序列。

5、基于影子表法:

许多情况下,源数据库无须了解同步对象的每一次操作,只要知道最后总共发生了什么变化就足够了。因此,可以在初始化时为同步对象表T建立一个影子(shadow)表S,也就是作一份当时的拷贝,以后就可在适当时机通过比较当前T和S的内容来获取净变化信息。

6、基干控制表变化法:

基于控制表变化(Control Table Change)法就是为每个要同步的源表T创建一个控制表C,C只包含T的主键字段Pk和一些控制信息字段,当T中某个记录发生变化时,C中同主键Pk的记录也随即被修改。这一过程通常可以通过触发器实现,到时候只需根据C就能知道T的变化信息。

上述的6种同步方法各有利弊。为解决完全异构的数据库同步的问题,本文将保留优点、摒弃缺点,提出一种更加适用于企业级数据同步的方法,这里称它为“基于SQL还原法”。“基于SQL还原法”同步技术的核心思想就是为源数据库创建用户日志文件,当源表发生变化时,就立刻在日志文件中记录变化并还原SQL操作语句,然后通过从日志文件中获取被还原的SQL语句,将源表中的变更数据更新到目标表。

二、数据同步过程

“基于SQL还原法”的数据同步过程如下图所示。

整个同步流程可分为三个功能相对独立的处理步骤:变化捕获(Change Capture)、数据分发(Data Distribute)和数据更新(Data Update),它们是组成数据同步的三个主要环节。

三、变化捕获技术

变化捕获是捕获源表的变化序列的过程。由于绝大多数数据库的日志格式不公开,直接读取逻辑日志有困难,所以要对源数据库的变化进行跟踪、捕获。仔细分析第一大节所述的6种同步方法,不难看出每种方法(除了影子表法)归根结底还是依赖于触发器或日志,触发器法和日志法是最基本的变化捕获的方法,目前流行的商用数据库都提供触发器机制或日志分析工具,因此本方法将采用触发器法或日志分析法来捕获源数据库的变化。

1、触发器法:

在源数据库为需要同步的每一个源表分别创建插入(INSERT)、删除(DELETE)和修改(UPDATE)三个触发器,当源表发生插入、删除或修改操作时触发器被启动,利用触发器中记录影响行变化的临时表来获取源表的变化信息,将发生的操作还原为SQL语句,并记录日志文件,日志文件应至少包含操作时间、被还原的SQL语句等必要信息。

2、日志分析法:

另有一部分数据库的触发器机制没有上述功能表,则可以通过读取数据库的日志来获取同步对象的变化,因为数据库日志已经包含了全部成功提交的操作记录。由于大部分数据库的日志格式不公开,需用专用的日志分析工具或接口来解析数据库的逻辑日志将发生的操作还原为SQL语句,并记录日志文件,日志文件同样应包含操作时间、SQL语句等必要信息。

四、SQL语句还原技术

在获得同步对象的变化信息后,就可以根据源表与目标表的映射关系,还原出目标表的SQL语句。“基于SQL还原法”将统一按照SQL92标准进行SQL语句还原,而不针对某一具体的数据库DML,因为目前几乎所有的流行数据库都支持SQL92标准,这样支持面就更广泛了。

还原SQL语句不外乎三种情况:如果源表是插入操作,则被还原成目标表的INSERT语句;如果源表是删除操作,则被还原成目标表的DELETE语句;如果源表是修改操作,有两种情况,若是采用触发器法,则被还原成目标表的DELETE和INSERT两个语句,即UPDATE语句被拆分为先删除后插入两个子操作,因为从触发器的两个临时表可以直接还原出DELETE和INSERT两个语句;若是采用日志分析法,则被直接还原成目标表的UPDATE语句,因为日志分析的结果就是UPDATE语句,没有必要再拆分成两个语句。

1、数据类型格式的统一:

由于不同数据库的数据类型和引用格式与SQL92标准有所差异,所以在SQL语句还原过程中要进行类型格式的转换。“基于SQL还原法”采用接口的方式来统一转换,接口内预置有一张Oracle,SQLServer,DB2,Sybase等流行数据库的数据类型与SQL92标准的数据类型的映射表。

2、含有多媒体类型的SQL语句:

倘若同步对象中含有多媒体类型的字段,因为SQL92标准里没有对多媒体类型进行定义,所以只能根据数据库本身的DML语法来还原处理多媒体类型字段的SQL语句。例如Oracle,DB2都用BLOB来保存图像、声音等大数据对象,但是它们的用法却不尽相同。

综上所述,因此在还原过程中要根据各自的DML语法进行对应转换。

五、数据分发技术

分发有时也称传播(Propagate),负责节点之间的数据发送和接收。一般情况下,它把更新数据从源节点传输到目标节点。

1、连接方式

连接方式一般认为有基于消息(Message-based)式和基于会话(Session-based)式两种。

基于消息式连接又称消息队列(MessageQueuing)式或保存并转发(Store-and-Forward)连接。源节点事先把要分发的数据保存在本地日志中,到时再按照发送和接收消息包的方式来传递数据,传递消息包通过源节点和目标节点的出/入(Outbound/Inbound)消息队列来完成。典型的有通过Ftp,Email或使用诸如MQ这样的消息中间件来实现。

基于会话式连接也称点对点(Peer-to-Peer)连接。该方式不需要事先准备分发数据,允许在分发时才捕获变化。节点之间的数据传播以会话方式进行,每个节点可以同时发送和接收数据。基于会话式连接在效率、可标量性等方面优于基于消息式连接,但在可靠性方面却不如基于消息式连接。

2、分发模型:

分发由不同的节点承担会产生不同的分发模型,从而影响同步的组织形式和效率。一般可分成推式(Push)、拉式(Pull)、推拉结合等三类模型。

(1)推式模型:如果由源节点承担分发任务,传播内容表现为由源节点主动地发送给目标节点,称为“推式(Push)”模型。推式模型的优势在于效率较高;但可调度性差,它的传播信息都是事先定好的。

(2)拉式模型:如果由目标节点承担分发任务,传播内容表现为由目标节点向源节点申请而来,称为“拉式(Pull)”模型。拉式模型的优势在于容易调度,源节点可以减少传播信息,随着参与节点数量的增多而表现得更为明显;但是它的效率较差,且不能实现实时的信息传播。

(3)推拉结合模型:如果分发任务由第三节点承担,称为“推拉结合”模型。当节点增多而又有大量同步任务,特别是需要把同步工作独立出来时,推拉结合模式最为合适。而当节点数目比较少或同步任务比较轻松时,它的性能和成本都不合算。

考虑到同步的实时性要求,“基于SQL还原法”采用推式模型来实现分发。

六、数据更新技术

数据更新是指根据同步对象的变化信息来修改目标数据库,从而保证数据的一致性。在通常情况下,它紧接着分发环节执行,有时甚至被捆绑在一起。

1、更新操作

更新数据内容可以是同步对象的完全拷贝、变化序列或净变化。目标数据库在按不同操作处理它们时,对主键的要求也不一样。

(1) CREATE操作:用更新数据创建一个新表,一般用于初始化。源表和目标表是否有主键以及主键域是否等价都非必要条件。

(2) INSERT操作:将更新数据作为新记录插入已存在的表。有两种情况,已定义主键时,目标表的主键字段数一定多于或等于源表;而没有定义主键时,目标表包含重复记录的现象就不可避免。

(3) DELETE操作:删除已存在表的相关记录。源表和目标表都必须有主键而且主键域必须等价。

(4) UPDATE操作:修改已存在表的相关记录。只有在更新数据是完全拷贝的情况下,才可以不定义主键;否则源表和目标表都必须有主键而且主键域必须等价。

2、例外处理

数据更新并不肯定成功,失败的原因包括传输中断、超时、硬件故障以及违反原有的约束条件等,其中有部分可以通过DBMS的恢复机制得以解决,这里把不能恢复的更新失败称为“例外(Exception)”。例外的产生会延长数据不一致性的潜在期(Latency),严重时会造成数据库挂起,甚至引起系统崩溃。

如何处理例外主要取决于例外对数据一致性的破坏程度以及用户承受程度的影响,一般可供选择的处理方式有:

(1)Redo方式:要求重新分发更新数据;

(2) Ignore方式:忽略本次例外,留待下次同步时再解决;

(3) Execute方式:执行预先定义的一组指令,这是一种最为灵活的处理方式。

经过以上表明,运用“基于SQL还原法”实现的系统在理论上能够满足实际需求,体现了它的功能特性,达到了预期的目标。

相比于其它各种同步方法,“基于SQL还原法”具有以下技术特色:

1、完全异构:“基于SQL还原法”同步技术是完全异构的。同步能够在所有数据库至少是与关系数据库(RDB)兼容的数据库之间进行,而且能够做到不同表结构之间的同步更新。

2、DBMS无关性:“基于SQL还原法”同步技术可以做到DBMS无关。目前的许多同步方案,特别是数据库厂商提供的数据复制方案,都依赖于与厂商自己的DBMS核心关系紧密的实现技术,而“基于SQL还原法”采用ODBC或JDBC接口连接各种数据库,各大数据库厂商都制作了符合ODBC或JDBC标准的驱动,这样利用这些接口,就不用考虑太多底层的DBMS特性,可以透明地操作各种DBMS。

3、通用性:“基于SQL还原法”同步技术的变化捕获结果是按SQL92标准的SQL语句形式出现的,可以给任何支持SQL92标准的数据库作同步。如果不用标准的SQL语句,就必须写对应的数据库DML操作,这样一来就必须知道是哪种数据库,因为不同数据库的DML语句不尽相同。“基于SQL还原法”做的事情就是从源数据库获取变更操作的SQL语句,在目标数据库执行该SQL语句实施更新。

七、小结

数据同步作为分布式环境中的一项关键技术,文章在分析数据同步技术现状的基础上,针对异构数据库应用环境,研讨了一种“基于SQL还原法”的适合于企业级数据同步的技术。文章从数据同步的变化捕获、数据分发和数据更新等三个环节阐述了“基于SQL还原法”的基本工作原理,并着重讨论了实现该方法的变化捕获与SQL还原技术及其异构处理问题。

参考文献

[1]张正明,伶俐鹃,异构数据库系统集成的研究[J].计算机科学,2004,31(10增刊):372-374.

[2]张震,异构数据库同步系统的研究与实现[J].计算机应用,2002年10月,43-45.

[3]李扬,耿昌宇,张丽芬.基于Socket通讯模式下的跨平台数据同步[J].北京理工大学学报,2002,22(1):81-84.

[4]仲跻来,袁海等.数字同步技术网维护技术[M].北京:人民邮电出版社.2001:1-6.

[5]王存思,黄庆荣,傅清祥,异构数据库间的数据复制技术及其应用[J].福州大学学报(自然科学版),2001,29(3):21-23.

[6]张晓,张羽.远程数据库迁移技术研究[J].计算机应用研究,2005第4期.

上一篇:小组合作教学策略下一篇:隔爆电机