本发明专利技术公开了一种关系数据库到无模式数据库异步转换系统及方法,包括关系数据库,所述关系数据库将信号传输给日志监听器,所述日志监听器将信号传输给模式调整器,所述模式调整器将信号传输给无模式数据库,所述日志监听器还将信号传输给单元格状态缓存器,所述单元格状态缓存器将信号传输给单元格状态回写器,所述单元格状态回写器将信号传输给无模式数据库。本发明专利技术在不影响关系数据库性能前提下将关系数据库的模式和数据通过该装置异步到转换到无模式数据库,异步方式不会造成关系数据库阻塞,以关系数据库为主,无模式数据库为辅,用于解决传统关系数据库在大数据查询时的I/O瓶颈问题。
【技术实现步骤摘要】
本专利技术涉及互联网行业分布式数据库领域,尤其涉及。
技术介绍
传统关系数据库是目前Web应用中存取数据的主要形式。然而,随着Web2. O、大数据、云应用等技术的发展,传统的关系数据库在I/O、可扩展性上遇到了瓶颈,在大数据存取和访问时效率急剧下降,在高可扩展性和高可用性方面也遇到难题。为了解决此问题,许多方案相继提出,比如分布式数据库、主从数据库、无模式数据库等。无模式数据库,是一种模式自由的数据库,其模式主要为关系、树、图、文档等多种方式。实际上,很难完全抛弃现有的关系数据库而直接使用无模式数据库。以关系数据库为主,无模式数据库为辅,成了工业界和产业界普遍接受的方案。现有的技术中,存在两类关系数据库与无模式数据库进行结合的方法(1)以用户插件的方法,将无模式数据库集成到关系数据库中,使得关系数据库同时支持关系操作和无模式操作。该方法缺点是大量的打开/关闭表的操作十分耗时,降低了数据库性能;(2)混合使用关系数据库,以关系数据库为主,无模式数据库为辅,使用关系数据库进行大数据更新操作,采用某种机制将关系数据库模式和数据同步到无模式数据库。对于大数据的查询直接使用无模式数据库,而更新仍采用关系数据库。该方法优点是既解决了关系数据库中大数据的查询瓶颈问题,又解决了无模式数据库更新瓶颈问题。该方法的难点是如何将关系数据库模式和数据转换到无模式数据库。现有技术的解决方案及实现主要有两种方法(1)通过关系数据库触发器,将数据的变化记录到临时查询表。该查询表通常由ID、表名、行号、时间戳和操作等模式构成。然后将临时查询表的数据同步到目标无模式数据库;(2)对方法(I)改进,取消临时查询表,通过增加关系数据库自定义HTTP函数,直接将关系数据库数据变化增量通过HTTP协议发送给目标无模式数据库,实现数据和模式的同步。综上,现有关系数据库到无模式数据库的转换方法主要有以下问题(1)不管是触发器还是用户自定义函数,其严重影响关系数据库性能;(2)数据传输过程无法保证数据操作的有序性,容易造成数据的不一致;(3)同步方式会阻塞数据库进程,降低关系数据库的模式和数据更新性能。
技术实现思路
本专利技术的目的就是为了解决上述问题,提供,将关系数据库的模式和数据通过该装置异步转换到无模式数据库,以关系数据库为主,无模式数据库为辅,用于解决传统关系数据库在大数据查询时的I/o瓶颈问题。为了实现上述目的,本专利技术采用如下技术方案—种关系数据库到无模式数据库异步转换系统,包括关系数据库,所述关系数据库将信号传输给日志监听器,所述日志监听器将信号传输给模式调整器,所述模式调整器将信号传输给无模式数据库,所述日志监听器还将信号传输给单元格状态缓存器,所述单元格状态缓存器将信号传输给单元格状态回写器,所述单元格状态回写器将信号传输给无模式数据库。所述关系数据库是关系数据库到无模式数据库异步转换系统的源。所述无模式数据库是关系数据库到无模式数据库异步转换系统的目标。所述日志监听器用于监听关系数据库的日志。基于行的关系数据库二进制日志包括模式更新与数据更新,所述模式更新记录着每次模式修改的SQL语句,所述数据更新记录着每次事务中以行为单位变化前后的数据。对于插入操作,监听得到的变化前数据为NULL,变化后数据为新增数据;对于更新操作,监听得到修改前后数据,对于删除操作,监听得到的变化前数据为被删除数据,变化后数据为NULL。所述单元格状态缓存器负责将日志监听器监听到的基于行的变化数据拆分为单元格状态。所述模式调整器负责将日志监听器监听到的模式变化映射到无模式数据库。映射规则如下关系数据库中的一对一关系映射为无模式数据库中的关系结构,关系数据库中的一对多或多对一关系映射为无模式数据库中的树型结构,关系数据库中的多对多关系映射为无模式数据库的图型结构。关系数据库数据库名映射为无模式数据库名,关系数据库的表名映射为无模式数据库集合名(Collection),关系数据库的列索引映射为无模式数据库的列索引(Index)。所述单元格状态回写器负责将单元格状态缓存器中的单元格状态键值序对写入到无模式数据库。上述关系数据库到无模式数据库异步转换系统所采用的转换方法,具体工作步骤如下步骤(I):日志监听器监听到基于行的关系数据库二进制日志,并进行解析,得到变化的数据和模式,若监听到的为变化数据,转步骤(2),反之转步骤(3)。步骤(2):日志监听器将基于行的变化前后的数据拆分为单元格状态,若单元格数据发生变化,修改单元格状态键值序对V中的值和修订版本,若单元格数据未发生变化,则不进行任何处理,按此方法将单元格状态存储在单元格状态缓存器中,转步骤(I)。步骤(3):日志监听器对监听到的模式变化SQL语句进行解析,将单元格状态缓存器中的所有单元格状态回写到无模式数据库,转步骤(4)。4)根据日志监听器监听的模式修改SQL语句,模式调整器按源关系数据库模式变化修改目标无模式数据库模式,转步骤(I)。所述步骤(3)的解析过程分为以下四个步骤步骤(3-1):若单元格状态基础版本为I且修订版本为0,说明新增单元格被删除,不做任何处理;步骤(3-2):若单元格状态基础版本大于I且修订版本为0,说明新增单元格修改后被删除,需要在无模式数据库中删除对应数据;步骤(3-3):若单元格状态基础版本为I且修订版本不为0,说明为新增单元格,需要将单元格状态回写到无模式数据库;步骤(3-4):若单元格状态基础版本大于O且修订版本不为0,说明单元格被修改,需要修正无模式数据库对应数据。上述关系数据库到无模式数据库异步转换系统涉及到以下几个术语所述单元格是指单元格状态定义中的关系数据库二维表中的数据。所述关系数据库是由行列组成的数据单元格构成。按照行列定位单元格,由主键键值序对定位数据库记录所在行,由列名定位数据记录所在列。每个单元格状态定义了一个键值序对K — V,其中K定义为三元组〈表名,主键键值序对,列名〉,而V定义为二元组〈列值,修订版本〉。修订版本记录着该单元格数据的版本信息,可以用正整数表示。新增加数据初始版本为I,每次单元格数据发生变化后,版本加I。当单元格删除后,版本修改为O0所述单元格状态修订版本为单元格状态在缓存器中的最新版本。所述单元格状态基础版本为单元格状态在缓存器中的最初修订版本。对于新增加数据,拆分为单元格状态,其修订版本和基础版本为I ;对于修改数据,拆分为单元格状态,若该单元格不在单元格状态缓存器中,其修订版本和基础版本为2,若该单元格在单元格状态缓存器中,其修订版本为原修订版本加I,基础版本为原单元格状态基础版本;对于删除数据,修订版本为O。若单元格在单元格状态缓存器中,基础版本为原单元格基础版本,若单元格不在单元格状态缓存器中,基础版本为O。本专利技术的有益效果I无需影响关系数据库的性能就可以实现关系数据库到无模式数据库的异步转换功能;2异步转换装置可以保证数据传输过程中数据的有序性;3异步数据转换过程中不会造成关系数据库进程的阻塞;4将关系数据库的模式和数据通过该装置异步到转换到无模式数据库,以关系数据库为主,无模式数据库为辅,用于解决传统关系数据库在大数据查询时的I/o瓶颈问题。附图说明图1关系数据库到无模式数据库异步转换方法及装置的架构图;图2根据本文档来自技高网...
【技术保护点】
一种关系数据库到无模式数据库异步转换系统,其特征是,包括关系数据库,所述关系数据库将信号传输给日志监听器,所述日志监听器将信号传输给模式调整器,所述模式调整器将信号传输给无模式数据库,所述日志监听器还将信号传输给单元格状态缓存器,所述单元格状态缓存器将信号传输给单元格状态回写器,所述单元格状态回写器将信号传输给无模式数据库。
【技术特征摘要】
【专利技术属性】
技术研发人员:马坤,杨波,陈广伟,
申请(专利权)人:济南大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。