The invention discloses parallel migration technology of Oracle database based on Spark platform, uses Spark as a tool for data migration, and Oracle also has a specific ROWID to partition tables as a specific field, and then specifies an excutor of Spark to read a specific partition. The invention solves the problem that Spark reads Oracle in parallel and must specify special fields to divide tables, improves the universality of Spark reads Oracle in parallel without considering the structure and content of data tables. At the same time, the data volume of each partition can be set manually according to the requirements, and the performance of Oracle database machine can be fully utilized to avoid performance waste and improve the efficiency of data migration.
【技术实现步骤摘要】
基于Spark平台的Oracle数据库并行迁移技术
本专利技术涉及数据库迁移技术,具体是一种基于Spark平台的Oracle数据库并行迁移技术。
技术介绍
由于目前很多公司的业务系统设计时间较早,系统架构和数据存储选择了关系型数据库Oracle只满足于当时的业务需求,随着数据量的增大以及业务需求的越来越复杂,使用Oracle来做较复杂的数据分析效率就比较低,不能满足需求。若想满足这些需求就需要引入大数据系统来进行数据的分析和处理。引入大数据系统,这就涉及到了两个系统之间的数据交换,也就是数据迁移。在使用目前现有的数据迁移工具Sqoop发现效率很低。Sqoop脚本开始执行时,会将我们定义的脚本按照Sqoop自身的内部逻辑转换成MapReduce任务。MapReduce是Hadoop生态圈的一种编程模型,主要分为两部分map端和reduce端。而Sqoop脚本在转换为MapReduce任务时需要指定-m参数,-m的缺省值为1,如果不指定-m就意味着map端的任务只有一个线程来执行,效率非常非常低。若想指定-m参数就必须要指定-split-by参数,split-by的作用就是切分表,假设有一张表test,Sqoop命令指定参数-split-by‘id’,-m10。首先Sqoop会去查表的元数据,向关系型数据库比如mysql发送一个命令:selectmax(id),min(id)fromtest。然后会把max、min之间的区间平均分为10分,最后10个并行的map去找数据库。然而,并不是所有的表都有适合平均分配数据条数的字段。-split-by对非数字类型的字段 ...
【技术保护点】
1.基于Spark平台的Oracle数据库并行迁移技术,其特征在于,包括如下步骤:A)spark平台根据oracle数据库表名获取当前MaxRowid、MinRowid和记录总数,并设置spark平台上每个executor处理记录的条数,,若数据表的总记录数小于设置的记录条数,不用进行分区,直接进行整张数据库表的迁移操作;B)若数据表的总记录数大于设置的记录条数,则进行初步分区操作,在该步骤中,判断MaxRowid和MinRowid的FILE_ID是否相同;C)如果MaxRowid和MinRowid的FILE_ID相同,则分别截取10‑12位的BLOCK_ID,并通过base64解码,获得最大的BLOCK_ID和最小的BLOCK_ID;最大的BLOCK_ID减去最小的BLOCK_ID后加1得到当前表切分的数据块的总块数,最后执行迁移操作;D)如果二者FILE_ID不同,则将FILE_ID和BLOCK_ID结合起来用base64解码,然后类似计算数据表的分区数目,最后完成迁移操作。
【技术特征摘要】
1.基于Spark平台的Oracle数据库并行迁移技术,其特征在于,包括如下步骤:A)spark平台根据oracle数据库表名获取当前MaxRowid、MinRowid和记录总数,并设置spark平台上每个executor处理记录的条数,,若数据表的总记录数小于设置的记录条数,不用进行分区,直接进行整张数据库表的迁移操作;B)若数据表的总记录数大于设置的记录条数,则进行初步分区操作,在该步骤中,判断MaxRowid和MinRowid的FILE...
【专利技术属性】
技术研发人员:颜鹏,丁圣超,李增发,
申请(专利权)人:北京所问数据科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。