




已阅读5页,还剩67页未读, 继续免费阅读
(计算机科学与技术专业论文)异构数据转换与同步技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 摘要 在信息时代,能否拥有及时、准确、全面的信息已经成为衡量一个企业是否具有发展 潜力的一个重要指标,数据集成作为企业获取信息的重要方法,负责完成数据从数据源向 目标数据库流动,是实现数据集成和共享的重要基础,是构建数据仓库的核心,是决策分 析支持系统的前提。 本文设计并实现了数据集成系统,主要研究数据集成中的如下内容:数据集成的体系 结构、异构数据的转换方法和异构数据的同步策略。 在数据集成的体系结构研究中,通过对目前传统的数据集成体系结构进行理论研究, 分析了其一些缺陷,依据软件工程中分而治之和模块化思想,做出了部分改进,提出了一 种改进的三层数据集成体系结构。该体系结构中,将数据集成各个阶段分成三个独立的部 分,数据转换逻辑事务被单独分离出来,使得集成更能满足分布环境下系统集成的需求。 在异构数据转换方法的研究中,通过对几种数据转换的方法进行比较分析,提出了一 种基于元数据驱动的数据转换方法。在该方法中,将数据集成的各种信息作为元数据资源 存储起来,所有的数据转换和清洗都基于元数据进行,同时用户可以向系统注册转换函数, 并提供了重用机制使得转换中的些公共方法和策略能够被重用。 在数据同步策略的研究中,分析了基于快照差分算法的数据同步策略和基于日志检测 数据同步策略,通过对基于快照差分算法同步策略中几种快照差分算法进行理论研究及分 析,了解掌握了它们的适用范围、处理速度及精度:对于有日志系统支持的数据源的日志 检测同步策略,分析了0 r a c l e 、s q ls e r v e r 数据库的日志记录内容,分析了获取增量数 据的流程。针对上述策略效率低和复杂等缺陷,并依据数据源对触发器的支持程度和分布 网络环境下的一些特性,提出了两种同步策略:一种是基于时间戳和触发器的数据同步策 略,在该策略中将时间戳和触发器结合到一起,并将同步监视的对象缩小为字段级,减少 了数据的冗余和网络的传输量;另一种是针对数据源不支持触发器的情况提出的基于 m d 一5 算法的数据同步策略,利用 i d 一5 算法对数据记录进行摘要,通过对前后两次摘要的 比对,决定数据同步操作,该算法易于实现且运行速度快,减少了数据同步的时间。 在实现系统中,提出了基于公共数据类型的数据类型转换方法,简化了众多的数据类 型转换,此外,还解决了大对象类型的问题和一部分冲突问题。 关键字:企业应用集成数据集成元数据驱动时间戳触发器m d 一5 算法公共数据类型 大对象类型 国防科学技水稀j 景四基爹札疋雷 囊鬟鬻嚣 丽筵一蓬器域i 鬻馨薹¥羔篓霪羹穗嚣孺鼬薅鲢鋈露慧蠹廷冀i 蘸嚣嚣鞴舔鲤塑纛并 鍪矧撼蚤燃,豁冀撩雨辨鬻;嚣帮趣窝强地蕊臻。型嚣鐾型霞疆签酩篱淘蚕精蔷靼鑫蕊裂 囊端凳熬嚣簦嚣筏冀馨秘i 掣鞘。露型翼嚣囊燕趟琵鬟翌j 翊 熏嚣懿警静嚣掳琵辨据i 帮妻垄誉簿嗡毽i ;鸶墨雾i i j i ;i ;疆雾鞫矍壑羹羹差碍誊馕萎i i i ,蘩震嚣蓬鞫询强錾囊忑目塑蚕姜 ;i 逸; 簿样蘑鬻辩鞭袋璧蓄渤芎蛩璇囊醚童囊餐萄竺雯二耋霸掣矍霉妻蹇茹廷霉嚣替肄囊嚣辫墨 麓誉i 崮霎鳓唆蓄麓薷篓胬粒疆警艚。矍薷妻螽鞠矍m - l 一塞羹至嚣 x 国防科学技术大学研究生院学位论文 图目录 图1 1数据仓库整体框架图1 图1 2e t l 概念模型5 图2 1 传统数据集成体系结构一1 2 图2 2改进的三层数据集成体系结构1 3 图3 1基于o d b c 的数据转换15 图3 2通用数据访问的软件层次模型1 6 图3 3 a d 0 的对象模型一18 图3 4基于x m l 的数据转换 x 国防科! 学技术大学研究生院学位论文 表目录 表31 表3 2 表3 3 表34 表35 表36 表3 7 表4 1 表4 2 表4 3 表4 4 表4 5 表5 1 表 表 表 表 表 数据库信息表( d b i n f o ) 结构 任务信息表( t s k i n f o ) 结构 源数据和目标数据的表( t a b l e s t r u c t u r e ) 结构 转换函数表( t r a n s f u n ) 结构一 默认数据类型映射表( m a p p i n g t y p e ) 结构 列映射表( m a p p 附g f i e l d s ) 结构 任务同步信息表( t a s k s y n i n f o ) 结构 快照差分算法的比较 r e c o r d d a t a 作用 r o w d a t a 字段作用 源操作表结构 m d 5 源操作表结构 t r a n s e d 表结构 l o a f ) e d 表结构 o d b cs q l 数字数据类型 大对象类型 转换表( t r a n s ) 结构 数据集成系统应用情况列表 i v 挖 玛 拼 抖 笛 羽 弭 弭 弘 铊 驰 弱 舛 鲐 鼹 国防科学技术人学研究生院学位论文 1 1 1 课题背景 第一章绪论 1 1 课题背景与意义 随着市场竞争的加剧,能否根据市场的变化制定出正确的决策直接关系到企业的生死 存亡。因此,各种各样的分析决策系统纷纷出台,充当各行各业的“企业智囊”。最早的 分析决策系统是在以电子表格为主体的数据基础之上建立的,而后随着数据库技术的发 展,人们尝试对数据库中数据进行再加工,形成一个综合的、面向分析的环境,以更好地 支持分析决策,从而形成了数据仓库( d a t aw a r e h o u s e ,简称d w ) 。数据仓库技术就是在 这种背景下被提出,并迅速发展起来,成为决策分析支持系统首选的数据存储和管理方式。 业界公认的数据仓库概念创始人w h i n m o n 在构建数据仓库一书中对数据仓库做 了精确的定义:数据仓库是面向主题的、集成的、不可更新的( 稳定性) 、随时间不断变 化( 不同时间) 的数据集合,用以支持经营管理中的决策制定过程【i 】。数据仓库与传统数 据库不同,它并非是一个仅仅存储数据的简单数据库,它实际上是一个以大型数据管理信 息系统为基础的、附加在这个数据库系统之上的、存储了从企业所有业务数据库中获取的 综合数据的,并能利用这些综合数据为用户提供经过处理后的有用信息的应用系统。数据 仓库的重点与要求是能够准确、安全、可靠地从数据库中取出数据,经过加工转换成有规 律信息之后,再供管理人员进行分析。 w h i n m o n 给出的定义很好地概括了数据仓库在存储和组织结构上的特点,即数据仓 库中的数据是面向主题的、集成的、不可更新的( 稳定的) 、随时间不断变化的,建立数 据仓库的目的是为了更好地支持决策。数据仓库整体框架图如图1 1 所示。 图1 1 数据仓库整体框架图 第】页 国防科学技术大学研究生院学位论文 数据集成有很大的优势。为了缩短数据仓库的开发周期,适应数据仓库数据驱动的“螺旋 式”开发方法,保障数据仓库中数据的高质量,构建数据集成工具是很有必要的口】。 异构数据同步是数据集成中需要考虑的又一个问题,目前在新的分布式环境下,日益 增长的大量异构数据的集成的应用需求下,由于技术水平和网络发展不均衡,特别是网络 建设、带宽等存在很大差别,减少异地大量异构数据传输与同步时间成为困扰数据集成的 瓶颈。在数据同步过程当中,更为关键和重要的是实现数据的增量更新,为了捕捉增量数 据变化,对已有数据的增量扫描处理是必须面对的问题卜”。 可见,不管是在数据仓库的建立和维护过程中还是在企业信息集成中,数据集成都扮 演着一个极其重要的角色,是数据源和目的数据库之间的桥梁与纽带。特别是在数据仓库 的构建过程中,数据集成的作业量最大,并且日常运行中问题最多【9 】。这样,与数据集成相关 的问题成为了当前研究的热点i l ”j 。 1 2 1 国外研究现状 1 2 国内外研究现状 国外对数据集成的研究比较早,许多数据库系统提供了专门的数据转换集成工具。如 s q ls e r v e r2 0 0 0 的d t s ,o r a c l e 的s q l 木l o a d e r ,i b m 的v i s u a lw a r e h o u s e 等。另外, 还有一些第三方软件开发商也推出一些产品,例如:a s c e n t i a ls o f t w a r e 公司的 d a t a s t a g e ,a p p l i e dd a t a b a s et e c h n o l o g y 公司的d a t a m a p p e r ,d a t a f l u x 公司的 sj i l a r t s c u r b 和d a t aj u n c t i o n 公司开发的析取包等。这些数据库附带的、第三方公司开 发的数据集成工具对于结构化数据在功能上可以说已经基本上能满足一般的要求。 而对于数据库研究组织来说,不少研究小组针对数据集成中一些重要的技术难点展开 研究工作,例如集成模型,数据集成的通用性,数据集成的构件化,数据转换的技术,数 据转换规则的制订,数据同步策略等等。结合本文,重点介绍数据集成体系结构,数据转 换方法和数据同步策略的相关研究情况。 1 数据集成体系结构 如图l ,2 所示,p a l l o s v a s s i l i a d i s 等人提出了数据集成的概念模型,并且分析了在该概 念模型下数据抽取、转换、加载的表示方法【1 3 】。pv a s s i l i a d i s 等人提出了数据集成的逻辑 模型,并讨论了在逻辑模型中元模型层( m e ta i i l o d e ll a y e r ) 、临时层( t e m p l a t el a y e r ) 和 模式层( s c h e m a s c e n a r i ol a y e r ) 的功能1 1 4 ,”。在数据集成的优化问题方面,a l l d ss i m i t s i s 等人做了深入的研究【l “。 国防科学技术大学研究生院学位论文 图1 2 e t l 概念模型 2 异构数据转换方法的研究现状 在数据转换方面,目前流行的有两种方案,一种是模式级的数据转换,另外一种是数 据级的数据转化j 。 在数据级的数据转换研究中,p a i l o s v a s s i l i a d i s 等人对数据转换进行了分类,并着重阐 述了在数据转换过程中的映射关系、转换方法的表示等【13 。 在模式级的数据转换研究中,e r h a r d r a h m 等人讨论了模式匹配的通用体系结构以及模 式匹配的过程叭”】;s e r g e ym e l n i k 教授等人提出了一种基于定点计算的s f ( s i m i l a r i t y f l o o d i n g ) 匹配算法;j a y a n tm a d h a v a n l 提出了一种基于x m l 的c u p i d 匹配算法1 2 0 】。 在数据转换过程当中,数据类型转换是最为普遍的,目前常用的方法尚停留在一一直 接映射,在这种方式下,当增加一个数据库系统时,需要解决该数据库系统与已存在的多 个异构数据库的数据类型映射匹配问题,并增加多个转化程序。 3 异构数据同步方法的研究现状 集成数据的质量是整个系统的关键点,而保证源数据和目标数据库的数据同步则是保 证数据质量的前提,特别是在目前分布式异步数据集成的环境下,减少数据传输过程中的 冗余量,实现数据同步的高效性和增量报送成为数据同步的目标。 j h a m m e r 教授讨论了数据同步的两种可能方法:如果数据源是功能完备的数据库系 统,则可以通过定义一组触发器,或者通过读取日志的方式来检测分析数据源的变化实现 数据同步。该方法的可行性及实现依赖于具体的数据源类型,比如文本型数据源就不支持 日志或触发器机制。而对于任意类型的数据源,都可以采用基于快照差分的方法实现数据 同步:每隔一定时期重新生成基表的快照,同上一次的旧快照作差分计算,得到反映基表 自上次到本次生成快照以来变化的增量数据。增量数据中可以只包含数据源中被删除或插 入的元组【2 ”。w j l a b i o 综述了可应用于快照差分的算法,包括几种常用算法:s o r tm e r g e 算法、p a r t i t i o nh a s h 算法、w i n d o w 算法,和一类新提出的基于压缩策略的算法,并对所 有这些算法作了详尽的分析【2 2 1 。 在增量数据更新方面,目前有五种技术可以达到数据增量更新的要求。第一种方法是 第5 页 国防科学技术大学f 究生院学位论文 扫描已经打上利间戳的数据,当一个应用对记录的最后一次修改打上时间戳时,扫描程序 就根据时间戳得到增量数据,但必须原业务系统存在时间戳字段;第二种方法是扫描增量 文件,增量文件仅记录应用中所发生的变化,有了增量文件,扫描的过程就会高效,增量 文件的生成可以改造应用来完成,如触发器:第三种方法就是扫描日志文件或审计文件, 但必须使用某种技术手段作为日志文件内容输出的接口,常见的使用s y b a s e 的工具 r e d l i a c t i o n s e r v e r 来识别;第四种方法就是修改以往的应用程序代码,使这些程序能够 数据集成:第五种方法就是将前后两个快照文件进行比对。 1 2 2 国内研究现状 目前,国内大部分应用系统采用针对系统本身设计开发的数据集成工具,有的甚至用 手工方法实现数据抽取、转换和加载。因此当日标数据库结构发生变化或者重建时,需要 重新编程实现该过程。 在数据集成技术研究方面,针对目前多数异构数据转换工具普遍采用的一一直接转换 的特点,文献【2 3 1 分析了其缺点,并提出了一种基于中间数据库来实现多个异构数据库之间 的相互转换。文献1 2 4 】通过分析e t l 的特点,提出了一个面向数据集成的e t l 过程模型。文献 【2 5 】采用向导驱动方式和g u i 图形用户界面,设计了一个通用的数据集成工具,可以进行各 种数据库系统与o r a c l e 数据库之间的数据存储、转换和调用。文献【2 6 】给出了一种以工作流 为模式,以中 x 国防科学技术大学研究生院学位论文 降低了数据加载到目标数据中心的效率; 同步的数据集成模式使得源数据库和目标数据库必须同时在线,一旦在数据集成 过程当中任一数据库出现问题就将导致本次数据集成失败; 对增量方式的数据更新支持不够,在数据抽取的过程当中要对数据源进行频繁的 操作、读取大量无用的信息,导致在分布式环境下,网络造成很大的拥挤; 加载过程采用一条一条记录加载的办法,需要不断切换数据库上下文,严重地影 响数据加载的效率,造成数据集成效率低下。 在新的分布计算环境下,新的应用需求层出不穷,大量的异构数据需要集成,使得数 据转换更趋向于复杂和多变,传统数据转换已经远远不能满足数据集成的需求: 数据转换与特定的应用耦合度太高,灵活性较差,功能较弱,也有可能造成转换 的重复开发; 对数据转换规则没有一个统一分类和管理,简单的映射和复杂的转换没有区别对 待,导致数据转换混乱,难以进行管理和维护: 难以进行二次开发,不利于满足用户的特殊应用需求。 在数据转换过程当中,数据类型转换是最为普遍的,目前常用的方法尚停留在一一直 接映射,在这种方式下,数据类型的转换关系和转换程序混淆在一起,当增加一个数据库 系统时,需要解决该数据库系统与已存在的多个异构数据库的数据类型映射匹配问题,并 增加多个转化程序。这种方法的缺点是显而易见的,当数据库种类繁多,解决数据类型匹 配时工作量很大、效率低、难以集成在一起、难以实现分布式的需求和网络要求,导致系 统可扩充性差“。 对增量数据更新方法,在现状中所提到的技术应该说是各有优缺点,比如有的方法需 要对应用代码进行修改和升级,在应用中是很困难的,用快照差分算法则需要消耗同等数 据量级的存贮空间和i o 开销;扫描日志或审计文件的方法完全依赖专门的数据库厂商, 依赖性太大,不灵活。 1 3 论文研究的主要内容 结合课题背景,本文深入研究了数据集成中的异构数据转换和同步技术,其目的是为 了能够支持各种异构数据源集成为数据仓库的构建提供高质量的可靠数据,最终为用户的 决策分析提供保障。具体来讲,主要包含如下内容: 1 数据集成体系结构的研究 首先给出了传统的数据集成体系结构,并对该结构进行分析的基础上,提出了一个改 进的三层数据集成体系结构,将数据处理事务逻辑形成相对的中间层,使得数据的抽取、 转换和加载独立、并行执行,降低了源数据方和目标数据方的耦合度,加快数据集成的效 率。 2 异构数据转换方法的研究 借鉴源数据管理的c w m 标准化的思想,根据实际需求进行设计,提出了个基于元数 据驱动的数据转换方法,将数据转换进行统一管理,增加了数据转换的通用性和灵活性。 第7 页 国防科学技术人学硼究生院学位论文 在数据类型转换方面,采用了一种基于公共数据类型的星型数据类型映射方法。此外,还 对数据转换中几个关键难点( 大对象类型处理、冲突) 进行研究分析给出了相应的解决方 案。 3 异构数据同步更新策略的研究 首先了解数据同步策略的研究现状,特别是增量数据的更新同步策略,对现存方法进 行算法的复杂度分析和比较;并对基于触发器的方法改进提出了一种基于时间戳和触发器 的数据同步策略;针对那些不支持触发器的数据库系统提出了一种基于m d 一5 算法的数据同 步策略。在基于时间戳和触发器的数据同步策略中,针对分布式网络环境特点,将监视对 象从源表记录缩小到字段,过滤掉那些无关的数据,减少了数据传输的冗余量和数据同步 的时间。 4 数据集成原型系统的设计、实现与应用工作 系统的设计主要解决现状分析中提到的问题,基于本文所提出的技术和策略进行设计 和实现。对系统中所用的主要数据结构和重要模块进行了介绍,特别是元数据使用和针对 不同的数据库系统采用不同的数据同步策略。最后对系统的功能和效率做了部分测试和评 估。 1 4 论文的组织结构 论文分六章进行论述,其中第二、三、四章和第五章是本文的重点。 第一章:绪论。简要介绍本文的课题背景、数据集成领域当前的研究现状、本文的主 要研究内容和组织结构。 第二章:数据集成体系结构研究。首先给出设计数据集成系统应考虑的因素,接着对 目前市场上存在的数据集成工具进行分析,接着又讨论了传统的数据集成体系结构,并针 对其开放性差、耦合度高和难以二次开发等不足提出一种改进的三层数据集成体系结构, 第五章中的原型系统中使用了该结构。 第三章:异构数据转换方法。首先介绍了三种异构数据转换方法,即基于o d b c 的 数据转换,基于o l ed b 的数据转换和基于x m l 的数据转换;在分析已有转换方法的基 础上,针对复杂的数据转换和数据转换的重用问题提出一种基于元数据驱动的数据转换方 法。 第四章:异构数据同步更新策略研究。根据目前的研究情况,对存在的快照差分算法 和基于日志检测的同步策略分析比较,接着根据数据源的不同,提出基于时间戳和触发器 的数据同步策略以及基于m d 一5 算法的同步策略,并且与其它的同步策略做分析比较。 第五章:数据集成系统的实现与应用。基于第二章所介绍的三层的体系结构以及三、 四章所提出的方法,阐述整个数据集成系统的设计思路和主要的数据结构,对系统进行模 块划分,针对几个重要模块进行分析讨论;以及性能评估。 第六章:结束语。总结本文研究工作的成果并对未来的工作进行了展望。 第8 页 国防科学技术大学研究生院学位论文 常见的数据源,目前常见的数据源包括:d b 2 、i n f o n n i x 、o r a c l e 、s y b a s e 、s q ls e r v e r 、 m y s 0 l 、a c c e s s 、p o s t g r e s q l 等。3 数据转换功能 数据转换是数据集成中最令人头疼的问题,由于业务系统的开发一般有一个较长的时间跨度,这就柱錾嚣龚 固薹些丕致数舞的价值露封麴翘鹣鞋霸新叶蠹鲶鬯荭趔魁罂;翘靼您酲鲤熟鞋姐翳斜雌业 垫蛐骚醐删巧9 i ! :翳醐酾卵心+ 壁拍j 格式蒿儒簪瀑耀渊爆裂张黼编塔罐掰藕鳄辊幕指对 从业务系。统中;弛强鼹整蝣裂珏髹琵孽;孺样铲盲蓬,融嚣纂趋露属劐影托路k 日确j 鞑塑羼数据括辊集算袖叛琚攀一成过程j 的核坐盐追堰嚷曜一啄罐;臀浮滚璀溶舞耋煎; 强驯r 一蓉羹簿:习过程中最复杂、最繁重的工作。 数据转换的作用是将业务数据从一个或几个来源取出,并逐字段地将数据映射到目标 数据库的新数据结构上。实现业务数据结合的困难在于如何将它们集成为个紧密的数据 模型,因为数据必须从多个数据源中提取出来,并结合成为一个新的实体。这些数据来源 往往遵守不同的业务规则,生成新的数据,必须充分考虑这种差异。数据变换可大致分为 两类:字段水平的简单映射和复杂集成。字段水平的简单映射是数据中的一个字段被转移 到目标数据字段中的过程,它占数据变换工作量的8 0 左右。数据变换其他工作量是进行 数据的复杂集成,它需要做更多的分析,包括通用标识符问题、目标元素的多个来源、计 算数据、聚集与概括数据、衍生数据等等。实例层数据清洗用来检查字段或记录的实际内 容,消除脏数据,保证集成数据的质量。实例层数据清洗过程需要检查的是字段或记录的 实际内容而不仅是存储格式,并提供解决方法,包括:检查数据字段中的有效性( 可能通 过范围检验、枚举清单和相关检验来完成) ;结合一定的领域知识将脏数据转换为符合数 据质量的数据。 数据转换中转换规则的制定是数据集成中最令人头疼的问题,但它又是数据转换的关 键。通常情况下,遇到的转换要求包括:字段映射;映射的自动匹配;字段的拆分;多字 段的混合运算;跨异构数据库的关联;自定义函数;多数据类型支持;复杂条件过滤;数 据的批量装载;时间类型的转换;对各种码表的支持;环境变量是否可以动态修改;去重 复记录;抽取断点;记录间合并或计算:记录拆分;抽取的字段是否可以动态修改:行、 列变换;排序:统计;度量衡等常用的转换函数;代理主键的生成;调试功能;抽取远程 数据;增量抽取的处理方式;制造样品数据;在转换过程中是否支持数据比较的功能;数 据预览;性能监控; 数据清洗及标准化;按行、按列的分组聚合等。 由以上情况可知,制定转换规则的难度和工作量都是很大的。如果手工编码实现数 据集成,那么对各个异构数据源都要单独实现数据集成,这样对数据集成的管理和维护难 度就较大,实现数据集成的开发周期较长,工作量较重,数据集成的性能和效率波动性较 大,完全取决于开发者的水平。如果对各个异构数据源构建统一的数据集成工具,那么前 期投入较大,但后期的管理和维护容易,版本更新方便,性能和效率稳定,开发周期较短, 工作量较轻,可移植 国防科学技术大学研究生院学位论文 当用户的需求发生变化时,需要大量的改动源代码,且不利于用户的二次开发。 2 2 2 改进的三层数据集成体系结构 正是基于传统数据集成体系结构的不足,将软件工程中模块化思想运用到数据集成架 构中提出了一种改进的三层数据集成体系结构,如图2 2 所示。 图2 2 改进的三层数据集成体系结构 改进的三层数据集成体系结构与传统的数据集成结构主要不同在于源数据层和目标 数据层之间增加了一个中间业务层,将数据转换逻辑事务单独分离出来,将数据集成各个 阶段分成三个独立的部分,但中间层又不仅仅只是一个临时的数据存储区,还是整个数据 集成的枢纽,数据集成的所有数据都在本层进行存储转发。中间层的设置将使得数据的转 换阶段在数据集成中的地位得到了提升,这也与目前数据转换在数据集成中的地位是完全 吻合的。 中间层在数据集成过程当中将数据抽取之后得到的数据首先存储在临时数据中心1 当中,数据转换就不需要再访问源数据库而直接在临时数据中心1 上进行数据转换的各种 操作,再把转换后的数据存储在i 临时数据中心2 中,临时数据中心1 成为事实上的数据源。 改进的三层数据集成体系结构与传统的数据集成结构相比,主要有如下优点: 数据的抽取、转换和加载可以独立、并行地执行,加快了数据集成的效率; 数据集成过程当中实现了数据源和目标数据库的分离,使得数据集成更加灵活, 可靠性更高: 增加一个中间层也对集成的数据起到了一定的缓冲作用: 第13 页 国防科学技术大学研究生院学位论文 第三章异构数据转换方法 3 1 异构数据转换方法概述 本章首先介绍三种异构数据转换方法,即基于o d b c 的数据转换,基于o l ed b 的 数据转换和基于x m l 的数据转换:在分析已有转换方法的基础上,针对复杂的数据转换 和数据转换的重用问题提出一种基于元数据驱动的数据转换方法,并对该方法进行评价。 3 2 1 基于0 d b c 的数据转换 3 2 数据转换方法比较 开放数据库联接( o p e nd a t a b a s ec o n n e c t i v i t y , o d b c ) 是m i c m s o f t 公司提出的标 准应用程序接口。它允许应用程序以s q l 语言为数据库的存取标准,来存取不同的d b m s 管理的数据。o d b c 屏蔽了底层数据库系统的不同,从而简化了对数据库的访问,其分 层结构如图3 1 所示,包括应用程序( a p p l i c a t i o n ) 、驱动程序管理器( d r i v c r m a n a g e r ) 、 驱动程序( d r i v e r ) 、数据源( d a t as o u r c e ) 4 个组件。 o d b c a p i 驱动程序管理器 驱动程序l驱动程序2驱动程序n 数据涌l数据源2数据源n 图3 1基于b e 的数据转换 列络 应用程序作为数据库对用户的界面,它需要完成的工作是通过调用o d b c a p i ,执行 s q l 语句对数据库进行查询等工作。o d b c 应用程序必须包括三个对象:环境 ( e n v i i o 盥l e n t ) 、联接( c o n n e c t i o n ) 和语句( s e m e n t ) 。这三部分都是通过各自的句柄 ( h a n d l e ) 来标志和控制的。0 d b ca p i 是o d b c 运用数据通信方法、数据传输协议、 第1 5 页 国防科学技术大学研究生院学位论文 d b m s 等多种技术定义的一个标准的接口,应用程序通过o d b ca p i 与数据源进行数据 交换。o d b ca p i 包括函数库、o d b cs q l 语法、o d b c 数据类型和一套错误代码。 通过o d b c 进行数据转换按照以下步骤:o d b c 分配环境句柄、执行s q l 语句、检 索结果与服务器断开。具体过程如下: 1 初始化( 包括分配环境,分配联接句柄,与服务器连接,分配语句旬柄) ,可视化 界面下连接数据源与目标数据库; 2 通过相关的o d b ca p i 读取源数据的信息; 3 驱动程序通过函数返回数据源数据类型与o d b cs q l 类型之间的映射关系,从中找 出源数据类型与目标数据类型的对应关系,生成目标表的结构信息; 4 在界面下可显示源数据库和目标数据库的表结构和列映射关系,提供检查和修改 的手段; 5 在目标数据库上建立目标表结构: 6 逐行读取源表记录,调用方法进行加载到目标数据库中,直到读取最后一条记录: 7 终止( 释放语句句柄,与服务器断开,释放连接旬柄,释放环境) 。 3 2 2 基于0 l ed b 的数据转换 通用数据访问技术u d a 包括o l ed b 和a d o 两层标准接口,o l ed b 是系统级的 编程接口,而a d o 是应用层的编程接口,它通过0 l e d b 提供的c o m 接口访问数据。 通用数据访问的软件层次模型如图3 2 所示。 应用系统 a d o 0 瞪d b l 黧盔量翌 0 雌糯 一上 r| | 立一l l 鬟露嚣墨一鍪嚣黧荔 数搿使用煮 ”“由醴点婕洪豹日务 - 鼗融| = 斟l 者 图3 2 通用数据访问的软件层次模型 第1 6 页 国防科学技术大学研究生院学位论文 3 2 2 10 l ed b 技术及数据转换原理 u d a 技术的核心是o l ed b ,o l ed b 是一套通过c o m 接口访问数据的a c t i v e x 接口,它建立了数据访问的标准接口,把所有的数据源经过抽取形成行集( r o w s e t ) 的概 念。o l ed b 还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理 等操作。因此,数据提供方只需提供一些简单的数据操作,在使用方就可以获得全部的数 据控制能力。 o l ed b 接口相当通用,足以提供一种访问数据的统一手段,而不管存储数据所使用 的方法如何。o l ed b 模型主要包括以下一些c o m 对象: 1 数据源( d a t as o u r c e ) 数据源对象对应于一个数据提供者,它负责管理用户权限、 建立与数据源的连接等初始操作。 2 会话( s e s s i o n ) 在数据源连接的基础上建立会话对象,会话对象提供了事务控制 机制。 3 命令( c o 哪a n d ) 数据使用者利用命令对象执行各种数据操作,如查询命令、修改 命令等。 4 行集( r o w s e t ) 提供了数据的抽象表示,它可以是命令执行的结果,也可以直接 由会话对象产生,它是应用程序主要的操作对象。 o l ed b 分为两部分,一部分由数据提供者实现,包括一些基本功能,如获取数据、 修改数据、添加数据项等;另一部分由系统提供,包括一些高级服务,如游标功能、分布 式查询等等。这样的层次结构既为数据使用者即应用程序提供了多种选择方案,又为数据 提供方简化了服务功能的实现手段,它只需按o l e d b 规范编写一个c o m 组件程序即可, 使得第三方发布更为简便,而在应用程序方面可以得到全面的功能服务。 3 2 2 2a d o 技术及数据转换方法 a d o 是一种用于开发0 l ed b 数据源应用程序的a p i ,它提供了更高级并容易理解 的服务器o l e d b 数据库机制,在o l e d b 提供者的支持下,a d o 还可以用来访问已有 的o d b c 数据源。a d o 内存覆盖低,线程安全,支持分布式事务和基于w e b 的远程数据 访问,与一般的数据库接口相比,a d o 可更好地用于网络环境,通过优化技术,尽可能 地降低网络流量:a d o 的另一个特性是使用简单,因为它是一个面向高级用户的数据库 接口,而且使用了一组简化的接口用以处理各种数据源,作为m i c r o s o f cu d a 策略的一部 分,a d o 成为基于跨平台的、数据源异构的数据访问标准模型。a d 0 的对象模型如图 3 3 所示。 国防科学技术大学研究生院学位论文 广一一1 厂 l 竺竺竺l r l ;p r o p e 难l e s | l 二一一i 图3 3 a d 0 的对象模型 在a d o 模型中,主体对象只有三个:c o l l l l e c t i o n ,c o m m a i l d 和r e c o r d s e t ,其他四个 集合对象e r r o r s 、p r 叩e r t i e s 、p a r a m e t e r s 和f i e l d s 分别对应e r r o r 、p r o p e 啊、p a r a m e t e r 和 f i e l d 对象,整个a d 0 对象模型由这些对象组成。通过a d o 进行数据转换时使用 c o n n e c t i o n 对象建立与数据源的连接,然后用c o m m a n d 对象给出对数据库操作的命令, 比如查询或者更新数据等,而r e c o r d s e t 用于对结果集数据进行维护或者浏览等操作。 3 2 3 基于x m l 的数据转换 3 2 3 1x m l 概述及数据转换原理 可扩展的标识语言x m l 描述了一类称为x m l 文档的数据对象,而且部分地描述了 处理这些对象的计算机程序的行为。它是s g m l ( s t a n d a r dg e n e r a l i z e sm a l l 缸d l a i l g u a g c 【i s o8 8 7 9 】) 的一个应用案例。x m l 是由w 3 c ( w o r l dw 曲c o n s o n i 啪) 对其进 行标准化的。它可应用于计算机、数字化广播、通讯、电子出版等许多领域,已成为电子 发布和数据交换的格式。【2 9 】 基于x m l 数据转换的基本原理就是在数据的转换过程当中以x m l 格式为中介,首 先将异构数据转换为x m l 模式,将x m l 模式进行处理之后,再将其转换为目标数据库。 如图3 4 所示。 第1 8 页 国防科学技术大学研究生院学位论文 数据源n 刘x m l 唳瓣 卜 r d b 簧i ) 溉缺瓣 一一p 图3 4基于x m l 的数据转换 3 2 3 2 数据到】( m l 的转换 鞠标数据库 异构数据到x m l 的转换有很多不同的方法,比如使用i b m 的x m l e x t e n d e r 工具【3 0 】, x m l d b m s 【3 l 】,s i l k m u t e 【3 2 】和) ( p e m 1 d 1 3 3 】等,这些工具都需要用户使用不同的方法指 定映射规则,在x m le x t e n d e r 中,用户使用d a d 或i b me x t e n d e r 的转换语言来指定映 射,而在x m l d b m s 中是使用一种模板驱动( t e m p l a 把d r i v e n ) 的映射语言来指定映射 的。s i l k r o u t e 和x p e r a n t o 都是根据查询生成数据的x m l 视图,只是两者使用的语言 不同,前者是一种称为r x l ( d e c l a r a t i v eq u e r y1 a i l g u a g e ) 的查询语言,后者使用x m l 查询 语言。 转换一般分为如下步骤: i 确定映射的关系表的范围,得到每个表的相关信息。由此建立x m ls c h e m a 的元 素定义。表的相关信息包括的字段名、字段类型、字段长度、字段是否为空、字段的缺省 值、主键的构成、外键的构成、与此表发生联系的表的名称、各个索引的构成、各个表之 间的一对一或一对多的关系,可通过关系数据库的系统表得到。建立简单的元素和复杂元 素的全局定义。为简化算法,一般规定当某个表只是用来存储多值情况的,将该表映射为 全局的s i m p l e t y p e 元素。其余所有表( 含主表和从表) 都映射为全局的c o m p l e x 聊e 元 素。全局定义的元素名直接使用表名。比如,建立数据结构 t a b l e e l e m e n t ( t a b l e n 锄e ,e 1 e m e n t n 锄e ,e l e m e m t y p e ,o i d ) ,其中t a b l e n a m e 是关系表的名 称,e l e m e n t n 锄e 是映射的元素名, e l e m e n t t y p e 是元素的类型, o i d 是元素的唯一 标识。按照直接映射的为元素的规则填写t a b l e e l e m e n t 数据结构。根据t a b l e e l e m e m 中 的内容生成元素定义,如 第1 9 页 9 9 竺 国防科学技术大学研究生院学位论文 o i d 建立全局定义的元素的内部元素声明,主要是规定由字段映射的元素都在所在的表映 射元素内部声明。【2 9 】【3 4 】【3 5 】【3 6 2 进行参照约束的映射,包括主键约束映射、外键约束映射和唯一性约束映射,通 过映射完整的存储了数据的结构和语义信息,最后输出x m ls c h e m a 文档。 3 2 3 3 ) 【m l 到目标数据的转换 本阶段主要负责的是将x m l 文档转换加载到目标数据库。转换一般分为如下步骤: 1 建立x m ls c h e m a 定义的元素关系图。在本阶段需要分析x m ls c h e m a 的语法中 的各个元素的属性,并取出s c h e m a 中定义的所有元素和属性;并根据元素声明的位置关 系建立元素间的关系。 2 根据存储的关系确定元素的映射方法包括不映射、映射为表名或映射为字段名。 3 对映射为字段的元素进行精确的类型映射。由于x m ls c h e m 支持元素、属性、 数据类型定义继承的机制,对于其中数据类型要跟踪到基本的数据类型,即直到b a s e 或 t v d e 的值可直接映射到关系模式中,并将分析的结果记录在数据结构之中。【3 7 】【3 8 】 3 9 】 依照上述转换规则和算法实现步骤,分析给定的x m ls c h e m a 中的类型定义、属性 声明和元素声明,记录其中的元素关系和语义约束,最终的输出为创建关系模式的s o l 语句,由此自动生成关系数据库。 3 2 4 已有数据转换方法的比较 以上给出的数据转换方法在异构数据源的数据转换上各有优劣。 基于0 d b c 的数据转换功能强大,容易得到各种元数据信息,但编程复杂,对底层 的o d b ca p i 的理解程度要求较高,该方法过多的依靠某一数据源所提供的o d b c 驱动 程序接口,如果提供的有关数据源的信息不正确,则无法正确实 。另外,虽然用户可以 进行修改但是灵活性有限,一般只是进行表名的修改,对数据类型的修改和字段的组合、 拆分则无能为力。使用0 l e d b 方法进行数据转换,通用性强,支持多种数据源,可以对所有的关系数据库进行转换,对于某些特定的o l e d b 驱动程序,转换效率高。采用a d o 读取数据 并进行转换,使其实现得到简化,且具有更高的程序灵活性。但这种方法难以取得完整的数据源信息,而且需要安装相应的o l e d b 驱动程序以及a d 0 对象库。 基于x m l 的数据转换的实质是将x m l 文档作为一种临时的数据存储中介,虽然也提供了对各种异构数据源的支持,但这种转换方法实现较为复杂,转换过程中的映射关系 国防科学技术大学研究生院学位论文 难以确定,转换过程当中难以避免的丢失很多信息,转换的灵活性和正确性都有待提高。 总之,基于o d b c 和o l ed b 的数据转换实际上还是传统体系结构的数据集成模式, 而基于x m l 的数据转换虽然有一定缓冲作用也趋向于三层体系结构的数据集成,但数据 缓冲的作用不明显,实现复杂,而且正确性有待商榷;此外,基于o d b c 、o l ed b 和 x m l 的数据转换,实质上主要还是解决了数据访问的问题,数据的转换过程几乎上都是 隐含在应用程序当中,导致数据的转换和应用程序耦合度太高,当转换逻辑发生变化时, 则需要修改大量的原程序;另外,对于可以共用的数据转换规则因为没有重用机制而不得 重复开发造成人财力和时间的浪费:此外,数据的转换没有一个统一的管理,也不利于二 次开发。 3 3 基于元数据驱动的数据转换方法 正是基于上面考虑,本节提出了一种基于元数据驱动的数据转换方法,将数据的转换 阶段单独分离出来,同时提供数据转换重用机制,将那些可以重用的规则保存下来己备其 它业务重用;用户也可以根据自己的需求进行二次开发只要向元数据中心注册转换函数即 可,实现了转换的动态管理,增加了集成的灵活性和通用性:将数据转换阶段的剥离,这 也与目前数据转换在数据集成中的地位完全吻合的。 3 3 1 基于元数据驱动的数据转换机理 按照传统的定义,元数据h o j ( m e t a d a t a ) 是关于数据的数据。本文里的元数据库内容 不仅仅只包含业务数据源和目标数据库的元数据,而是包含整个集成相关的元数据,而且 可以根据需要进行扩展。 元数据是数据转换的核心,其作用体现在:首先,实现数据转换所需要的各种规则必 须用元数据来定义;其次,用来表示数据转换的次序流程;最后,为保证数据质量而定义 的各种“质量特征”也需要来描述。 根据元数据发挥的作用不同,可将其划分为“数据”和“数据处理规则”两类。其中, “数据”主要用来描述源数据库中有什么数据以及数据之间的关系,包括数据类型定义、 关系表结构与属性和目标数据库的层次定义等技术细节,因此可以称它们为技术元数据: “数据处理规则”定义了数据集成过程中所有的数据处理规则,包括表字段的映射、数据 转换、数据清洗规则以及数据质量特征的描述规则,是数据集成工具开发的指导原则,可 以称它们为业务元数据。 元数据存储在中间层的临时数据缓冲区,转换过程如3 5 所示,首先提取数据库的各 种信息,将其写入到元数据中心当中去,转换程序会自动读取元数据当中的默认规则,调 用转换函数和存储过程,以及字段的信息供用户选择进行字段的匹配、差分、合并和数据 类型转换等,生成本次集成任务的信息一并作为元数据,并存储到元数据中心当中去。 第2 1 页 国防科学技术火学研究生院学位论文 r 一1 l 转撩函数l l 一,、j r 、吟 晤两甄1 l ,一“ ,一 ? 元数据中心 、 控也轴 ; 襁时数据存储蓬l 数据转换 ” 蠕截数据存镶区2 图3 5基于元数据驱动的数据转换 3 3 2 元数据库的设计及内容 控制流一一卜 数据瀛 在基于元数据驱动的数据转
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年实战砌筑工职业技能鉴定试卷
- 2025年钳工(技师)工艺设计考试试卷
- 广东海洋大学《架构与开发》2024-2025学年第一学期期末试卷
- 陕西财经职业技术学院《编辑学概论》2024-2025学年第一学期期末试卷
- 海南外国语职业学院《物联网中间件技术》2024-2025学年第一学期期末试卷
- 海南热带海洋学院《工业机器人建模与仿真》2024-2025学年第一学期期末试卷
- 2025年炼油工艺中级操作实践模拟题集与答案详解
- 巴音郭楞职业技术学院《劳动经济学》2024-2025学年第一学期期末试卷
- 2025年汽车维修工技能测试题库
- 辽宁财贸学院《水污染控制工程(下)》2024-2025学年第一学期期末试卷
- 配网防外破管理制度
- 2025至2030年中国饲料酶制剂行业市场需求分析及投资方向研究报告
- 不寐的中医辨证论治课件
- 7.4 一元一次不等式组 (课件)华东师大版数学七年级下册
- 天府新区招商推介报告
- 体育旅游市场结构分析及创新产品开发路径研究
- 初中体育与健康排球运动作业设计
- 高空作业安全技术交底完整
- 营运车误工费协议合同模板
- 消防设施操作员(中级监控方向)理论知识考试(重点)题库600题(含答案解析)
- 企业领导力课件百度云
评论
0/150
提交评论