一种跨数据库的数据迁移方法、数据访问方法技术

技术编号:24035548 阅读:88 留言:0更新日期:2020-05-07 01:48
本发明专利技术提出一种跨数据库的数据迁移方法、数据访问方法,所述数据迁移方法包括步骤:在oracle/mysql数据库存储数据时,将存储的数据在系统空闲时导出;根据导出的数据生成Hbase指定格式的业务数据文件;建立Hbase数据表,根据业务需求设计rowKey格式;将业务数据文件通过importtsv命令写入Hbase数据库。所述数据访问方法基于所述数据迁移方法实现数据迁移,然后通过phoenix查询引擎和thritf查询引擎将数据访问请求中的查询表达式转化为rowKey查询,从Hbase数据库中查询所需数据返回给客户端。本发明专利技术能够在不影响线上系统稳定性的前提下进行数据迁移,并减轻线上系统访问压力。

A method of data migration and data access across databases

【技术实现步骤摘要】
一种跨数据库的数据迁移方法、数据访问方法
本专利技术涉及数据库
,尤其是一种跨数据库的数据迁移方法、数据访问方法。
技术介绍
随着系统的建设运行,系统数据越来越多。智慧城市对接第三方业务数据越来越多。传统的关系型数据库例如mysql、oracle在大量数据的写入处理、字段不固定时应用、简单查询需要快速返回结果的处理方面的效率不尽如人意,需要解决大量数据并发操作时的数据库瓶颈。传统的性能调优,从sql优化和数据库性能入手,但行式数据库mysql/oracle的瓶颈在于,数据量超过千万级后,行式数据库便会暴露性能的弱点。经过业务对比,使用行式数据库比列式数据库查询效率慢5倍。访问量较大时并且达到一定数量级的时候,行式数据库就可能会出现访问瓶颈问题。目前也有采用HBASE数据替代oracle数据库,提升查询效率的解决方案,列式数据库Hbase本质上只有一种操作,就是插入,其更新操作是插入一个带有新的时间戳的行,而删除是插入一个带有插入标记的行。其主要操作是收集内存中一批数据,然后批量的写入硬盘,所以其写入的速度主要取决于硬盘传输的速度。行式数据库Oracle则不同,因为他经常要随机读写,这样硬盘磁头需要不断的寻找数据所在,所以瓶颈在于硬盘寻道时间。采用HBASE数据替代oracle数据库的方案,在数据的导入导出环节,一般通过HBASE的数据导入导出功能sqoop直连业务数据库,从而进行数据的迁移。此办法可以很好的做数据的增量同步,但如果使用sqoop针对全量业务数据的导入导出操作,因为数据库巨大,直接访问线上环境数据库,会增加业务系统的访问压力,就会对线上业务造成影响。
技术实现思路
专利技术目的:为了克服现有技术的缺陷,本专利技术提出种跨数据库的数据迁移方法、数据访问方法,本专利技术能够在不影响线上系统稳定性的前提下进行数据迁移,并减轻线上系统访问压力。技术方案:为实现上述目的,本专利技术提出以下技术方案:一种跨数据库的数据迁移方法,包括步骤:(1)在oracle/mysql数据库存储数据时,将存储的数据在系统空闲时导出;(2)根据导出的数据生成Hbase指定格式的业务数据文件;(3)建立Hbase数据表,根据业务需求设计rowKey格式;(4)将业务数据文件通过importtsv命令写入Hbase数据库。进一步的,所述业务数据文件的格式为csv。进一步的,所述rowKey格式为:MD5主键+rowKey主键+时间戳。本专利技术还提出一种数据访问方法,包括步骤:(1)采用所述跨数据库的数据迁移方法将oracle/mysql数据库中存储的数据迁移到Hbase数据库中;(2)当客户端向oracle/mysql数据库发送数据访问请求时,根据负载均衡原则将数据访问请求分配给phoenix查询引擎和thritf查询引擎;(3)phoenix查询引擎和thritf查询引擎分别将数据访问请求中的查询表达式转化为rowKey查询,从Hbase数据库中查询所需数据返回给客户端。有益效果:与现有技术相比,本专利技术具有以下优势:本专利技术通过数据迁移异步处理的方法,避免直接访问线上环境数据库,充分保证线上系统的平稳运行;对于数据访问业务,利用Hbase数据库、phoenix查询引擎和thritf查询引擎进行数据访问业务的分流,降低了原数据库oracle/mysql在数据访问业务应答的压力。附图说明图1为本专利技术实施例涉及的一种跨数据库的数据迁移方法的流程图;图2为本专利技术实施例涉及的一种数据访问方法的架构图。具体实施方式下面将结合附图和具体实施例对本专利技术作更进一步的说明。但应当理解的是,本专利技术可以以各种形式实施,以下在附图中出示并且在下文中描述的一些示例性和非限制性实施例,并不意图将本专利技术限制于所说明的具体实施例。图1示出了根据本专利技术的一种数据访问方法的一种实施方式,包括以下步骤:(1)在oracle/mysql数据库存储数据时,将存储的数据在系统空闲时导出;(2)根据导出的数据生成Hbase指定格式的业务数据文件;(3)建立Hbase数据表,根据业务需求设计rowKey格式;(4)将业务数据文件通过importtsv命令写入Hbase数据库。在本专利技术的一种数据访问方法的一个或多个实施中,所述业务数据文件的格式为csv。在本专利技术的一种数据访问方法的一个或多个实施中,所述rowKey格式为:MD5主键+rowKey主键+时间戳,采用这种rowKey设计方式可以提升查询效率。图2示出了根据本专利技术的一种数据访问方法的一种实施方式,该方法中包括phoenix查询引擎和thritf查询引擎。所述数据访问方法的步骤如下:(1)采用所述跨数据库的数据迁移方法将oracle/mysql数据库中存储的数据迁移到Hbase数据库中;(2)当客户端向oracle/mysql数据库发送数据访问请求时,根据负载均衡原则将数据访问请求分配给phoenix查询引擎和thritf查询引擎;(3)phoenix查询引擎和thritf查询引擎分别将数据访问请求中的查询表达式转化为rowKey查询,从Hbase数据库中查询所需数据,例如:StrVeccolumnNames;std::stringtable("H_05_TG_DW201510_GS");columnNames.push_back("cf:GGSN");std::cout<<"Startingscanner..."<<std::endl;intscanner=client.scannerOpen(table,"dedac612529978^20111001001236AAByu6AAvAAA",columnNames,dummyAttributes);std::cout<<"Startedscanner..."<<std::endl;查询结束后,phoenix查询引擎/thritf查询引擎将查询结果返回给客户端。应当理解的是,在技术上可行的情况下,以上针对不同实施例所列举的技术特征可以相互组合,从而形成本专利技术范围内的另外的实施例。此外,本专利技术所述的特定示例和实施例是非限制性的,并且可以对以上所阐述的结构、步骤、顺序做出相应修改而不脱离本专利技术的保护范围。上述实施例,特别是任何“优选”实施例,是实施方式的可能示例,并且仅仅为了清楚理解本专利技术的原理而提出。在基本上不脱离本专利技术描述的技术的精神和原理的情况下,可以对上述实施例做出许多变化和修改,这些变化和修改也应视为本专利技术的保护范围。本文档来自技高网
...

【技术保护点】
1.一种跨数据库的数据迁移方法,其特征在于,包括步骤:/n(1)在oracle/mysql数据库存储数据时,将存储的数据在系统空闲时导出;/n(2)根据导出的数据生成Hbase指定格式的业务数据文件;/n(3)建立Hbase数据表,根据业务需求设计rowKey格式;/n(4)将业务数据文件通过importtsv命令写入Hbase数据库。/n

【技术特征摘要】
1.一种跨数据库的数据迁移方法,其特征在于,包括步骤:
(1)在oracle/mysql数据库存储数据时,将存储的数据在系统空闲时导出;
(2)根据导出的数据生成Hbase指定格式的业务数据文件;
(3)建立Hbase数据表,根据业务需求设计rowKey格式;
(4)将业务数据文件通过importtsv命令写入Hbase数据库。


2.根据权利要求1所述的一种跨数据库的数据迁移方法,其特征在于,所述业务数据文件的格式为csv。


3.根据权利要求1所述的一种跨数据库的数据迁移方法,其特征在于,所述row...

【专利技术属性】
技术研发人员:胡立鑫
申请(专利权)人:紫光云南京数字技术有限公司
类型:发明
国别省市:江苏;32

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

1