当前位置: 首页 > 专利查询>暨南大学专利>正文

基于MapReduce的MYSQL数据库的变化数据捕获方法技术

技术编号:9434592 阅读:127 留言:0更新日期:2013-12-12 00:38
本发明专利技术公开了一种基于MapReduce的MYSQL数据库的变化数据捕获方法,包括:(1)生成摘要的查询语句“select?into?outfile”,根据FIELDS子句设置标志位;将“select?into?outfile”从数据库查询得到的一行元组插入“属性值分隔符”;根据标志位值对“select?into?outfile”查询执行的结果生成摘要md5value和产生输出格式;将查询结果写到磁盘文件outfile;(2)采用Hadoop?MapReduce并行框架求差分;从map端读入两个快照文件old.txt和new.txt,MapReduce的shuffle函数对Key/value结构中相同key的value值存入迭代器iterator,将reduce的输出文件合并成insert文件和delete文件,即CDC的结果。本发明专利技术对MYSQL中的查询语句从语法到实现上作了改进,使其一次查询数据库数据文件就能生成带摘要的快照文件,一个快照文件的生成就减少了一次I/O,连续多次的快照差分过程可以减少大量的I/O。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种,包括:(1)生成摘要的查询语句“select?into?outfile”,根据FIELDS子句设置标志位;将“select?into?outfile”从数据库查询得到的一行元组插入“属性值分隔符”;根据标志位值对“select?into?outfile”查询执行的结果生成摘要md5value和产生输出格式;将查询结果写到磁盘文件outfile;(2)采用Hadoop?MapReduce并行框架求差分;从map端读入两个快照文件old.txt和new.txt,MapReduce的shuffle函数对Key/value结构中相同key的value值存入迭代器iterator,将reduce的输出文件合并成insert文件和delete文件,即CDC的结果。本专利技术对MYSQL中的查询语句从语法到实现上作了改进,使其一次查询数据库数据文件就能生成带摘要的快照文件,一个快照文件的生成就减少了一次I/O,连续多次的快照差分过程可以减少大量的I/O。【专利说明】
本专利技术涉及数据捕捉的
,特别涉及一种。
技术介绍
变化数据捕获(changedata capture, CDC)是 ETL (Extract Transform Load)过程所要解决的主要问题之一。⑶C用于捕获生产数据库中数据更新操作(如插入insert、删除delete、修改update)的数据,为OLAP数据库、报表数据库、数据仓库,商业智能数据库等企业应用数据库的数据同步更新提供增量数据抽取服务。现有的变化数据捕获⑶C方法可归纳为五类:(I)基于时间属性的⑶C方法若数据库的表是只追加表(只允许插入不允许删除、更新操作的表称为只追加表),在表结构中包含了一个时间属性,该时间属性的值为记录插入数据库的系统时间,基于时间戳的方法采用定期地使用SQL (structure query language)查询获得某个时间段新插入的记录来实现变化数据的捕获。⑵基于触发器的⑶C方法触发器是数据库系统在特定的条件或某事件发生时调用的存储过程,基于触发器的⑶C方法就是利用这些触发器机制创建插入、删除和更新操作(insertdeleteupdate, IDU)的触发器,当数据库执行了 IDU操作时触发器将这些操作的记录写入另一些表来获取变化数据。(3)基于日志的⑶C方法数据库日志记录了数据库所有的IDU操作,通过对数据库日志进行分析,提取出已提交事务的IDU操作记录即可获得数据库的变化数据。(4)基于API的CDC方法假设数据库系统为应用程序提供了一组API (application program interface),应用程序通过调用API来操作数据库,基于API的⑶C方法通过这些API来记录应用程序对数据库的操作。(5)基于快照差分的⑶C方法给定数据库D,t为某一时刻,D在t时刻的状态称为数据库的一个快照,快照是数据库中选择的部分数据的拷贝,它反映了数据库在过去的某个时刻的状态。基于快照差分的CDC方法是对数据库二个连续的快照通过对比得出数据库的变化数据。现有的差分方法归纳为三类:排序归并算法、Hash分区算法和Window算法。排序归并算法先对二个连续的快照文件进行排序,然后对排序的文件依次扫描找出IDU的记录。Hash分区算法首先根据给定的哈希函数对二个连续的快照文件进行分区,然后对健值相同的哈希桶进行对比找出IDU的记录。Window算法基于二个连续的快照文件相匹配的元组在物理位置上也是相互接近这一前提,不匹配的元组先被保存在预先建立的“窗口”区中等待匹配,当窗口缓冲区溢出时,将“较老”的元组看作是IDU的记录。不同的CDC方法主要在适用范围、对生产系统(数据库所在系统)计算机资源的占用、对业务系统(数据库的应用系统)的修改要求、同步操作的时间延迟及算法实现的复杂性等几方面存在差异。(I)基于时间属性的⑶C方法基于时间属性的CDC方法采用利用时间属性的查询来获得变化数据,因此仅限于只追加表,仅能捕获到新插入或新修改的数据;基于时间属性的CDC方法实现简单,不涉及对业务系统的修改,查询操作占用生产系统资源较少,同步操作的延迟较低。(2)基于触发器的⑶C方法基于触发器的CDC方法仅适用于支持触发器的数据库系统中。触发器满足ECA(Event Condition Action)规则,数据库的每项操作都需要检查触发器,当条件满足时需要成倍地增加数据库操作,降低了生产系统和业务系统的执行效率。基于触发器的CDC方法实现简单,同步操作是实时的。(3)基于日志的⑶C方法日志是数据库系统为实现事务ACID性质和数据库恢复而建立的一种机制。数据库日志采用二进制或加密的二进制文件格式,用户程序只能通过数据库系统提供的访问接口来读取数据库日志;不同数据库产品或同一产品的不同版本在日志记录格式存在千差万另|J,这使得日志文件的读取和分析变得非常困难。基于日志的CDC方法可以将日志文件复制到生产系统之外的系统上进行读取和分析,因此对生产系统和业务系统的效率不产生任何影响,同步操作存在延迟。 (4)基于API的CDC方法基于API的⑶C方法主要通过API来获取数据库操作,仅能获取调用该API的业务系统产生的变化数据,无法获得其他不采用API操作数据库的业务系统产生的变化数据。基于API的CDC方法对生产系统的效率不产生任何影响,算法实现简单,同步操作是实时的。(5)基于快照差分的⑶C方法基于快照差分的⑶C方法适用任何类型的数据库(如关系型数据库、XML数据库等)。基于快照差分的CDC方法可将快照文件存放在生产系统之外的系统上,因此对生产系统和业务系统的执行效率不产生任何影响,算法实现较复杂,同步操作存在延迟。
技术实现思路
本专利技术的目的在于克服现有技术的缺点与不足,提供一种可以降低快照差分的I/O代价,缩短求差分时间的。本专利技术的目的通过下述技术方案实现:本专利技术,包括下述步骤:(I)生成摘要的查询语句“select into outfile”,其具体步骤如下:(1-1)词法和语法分析“select into outf ile”,根据FIELDS子句设置标志位;(1-2)将“select into outf ile ”从数据库查询得到的一行元组插入“属性值分隔符”;(1-3)根据标志位值对“select into outfile”查询执行的结果生成摘要md5value和产生输出格式;(1-4)将查询结果写到磁盘文件outfile ;(2)采用Hadoop MapReduce并行框架求差分;(2-1)从map端读入两个快照文件old.txt和new.txt,通过文件按行切分在map端输出〈key, imd5valueivalue> 或者〈key, imd5value> 的形式,其中 0md5value@value 或imd5value 作为 Key/value 结构中的 value 值;(2-2)MapReduce 的 shuffle 函数对 Key/value 结构中相同 key 的 value 值存入迭代器 iterator,发送 reduce 端;(2-3) reduce 端接收的数据形式为〈key, iter本文档来自技高网
...

【技术保护点】
基于MapReduce的MYSQL数据库的变化数据捕获方法,其特征在于,包括下述步骤:(1)生成摘要的查询语句“select?into?outfile”,其具体步骤如下:(1?1)词法和语法分析“select?into?outfile”,根据FIELDS子句设置标志位;(1?2)将“select?into?outfile”从数据库查询得到的一行元组插入“属性值分隔符”;(1?3)根据标志位值对“select?into?outfile”查询执行的结果生成摘要md5value和产生输出格式;(1?4)将查询结果写到磁盘文件outfile;(2)采用Hadoop?MapReduce并行框架求差分;(2?1)从map端读入两个快照文件old.txt和new.txt,通过文件按行切分在map端输出或者的形式,其中@md5value@value或@md5value作为Key/value结构中的value值;(2?2)MapReduce的shuffle函数对Key/value结构中相同key的value值存入迭代器iterator,发送reduce端;(2?3)reduce端接收的数据形式为,对iterator中的value个数进行统计和分类可取获得变化的数据:(2?4)将reduce的输出文件合并成insert文件和delete文件,即CDC的结果。...

【技术特征摘要】

【专利技术属性】
技术研发人员:邹先霞李鹏杜威
申请(专利权)人:暨南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1