一种向数据库关联表导入数据的方法和装置制造方法及图纸

技术编号:13005940 阅读:90 留言:0更新日期:2016-03-10 17:42
本申请公开一种向数据库关联表导入数据的方法及装置,所述方法及装置通过对本次数据处理过程所需的关联表进行加锁,来禁止其他数据处理过程操作所述关联表,通过锁定关联表可实现在导入数据过程中,将关联表中自动增长的主键ID控制为一系列的可预期数值,从而在此基础上,可通过预先获取目标数据文件中各条关联数据对应的主键ID,实现将目标数据文件中的基本数据及扩展数据这些相关联的数据并行导入相应的关联表。从而,本申请实现了基本数据及扩展数据导入过程的并行执行,提升了向数据库关联表导入数据的速度。

【技术实现步骤摘要】

本专利技术属于数据库管理和应用
,尤其涉及一种向数据库关联表导入数据的方法和装置
技术介绍
随着互联网和信息技术的不断发展,及在此基础上大数据处理的广泛应用,各种应用系统在进行数据处理过程中可能会需要对接第三方系统数据,或者将第三方系统数据融合到本系统,从而在数据处理过程中可能会存在将各种有关联的数据导入到相应数据库关联表的需求,如以用户数据为例,具体需将数据文件中的用户基本信息、订单数据及相关参考信息,分别导入数据库的用户信息表、订单表及参考信息表这些关联表中。在关联表中,订单表和用户参考信息表等这些扩展数据表(辅表)一般通过关联ID (identity,身份标识号码),如主键ID等,与作为基本数据表(主表)的用户信息表进行关联,其中,基本数据表的主键ID为自动增长字段,数据库会为每条添加至基本数据表的记录自动生成一主键ID。现有技术在向数据库关联表导入数据时,先向基本数据表导入基本数据,之后利用基本数据表提交后返回的主键ID,再向扩展数据表导入扩展数据并提交。基于以上阐述可知,现有技术在向数据库关联表导入数据时,基本数据及扩展数据的数据导入过程无法并行执行,从而导致数据导入的速度非常缓慢。基于此,本领域亟需提供一种较优的关联表数据导入方案来改善这一情况,以提升向数据库关联表导入数据的速度。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种向数据库关联表导入数据的方法和装置,旨在解决现有技术存在的上述问题,提升向数据库关联表导入数据的速度。为此,本专利技术公开如下技术方案:—种向数据库关联表导入数据的方法,所述关联表包括基本数据表及扩展数据表,所述方法包括:锁定所述关联表,所述锁定用于禁止其他数据处理过程操作所述关联表;基于所述关联表被锁定时的数据信息,获取目标数据文件中的各条关联数据对应的关联身份标识号码ID ;其中,每条所述关联数据包括一条基本数据及一条或多条扩展数据;基于所述各条关联数据对应的关联ID,将所述目标数据文件中的各条基本数据导入所述基本数据表,将所述目标数据文件中的各条扩展数据导入所述扩展数据表;其中,所述基本数据及所述扩展数据的导入过程并行执行。上述方法,优选的,所述关联ID为主键ID,所述基于所述关联表被锁定时的数据信息,获取目标数据文件中的各条关联数据对应的关联ID,包括:获取所述基本数据表中数值最大的主键ID,得到目标主键ID ;利用所述目标主键ID,分别计算所述目标数据文件中的各条关联数据对应的主键ID。上述方法,优选的,所述基于所述各条关联数据对应的关联ID,将所述目标数据文件中的各条基本数据导入所述基本数据表,将所述目标数据文件中的各条扩展数据导入所述扩展数据表,包括:为所述目标数据文件分配一块内存区域;基于所述内存区域的可用空间大小,读取所述目标数据文件中的相应部分目标关联数据至所述内存区域,并在所述内存区域中独立缓存所述目标关联数据包括的目标基本数据及目标扩展数据;基于预设的批量提交数据量上限及所述目标关联数据对应的各主键ID,将所述目标基本数据分批导入所述基本数据表,将所述目标扩展数据分批导入所述扩展数据表;其中,所述目标基本数据及所述目标扩展数据的导入过程并行执行。上述方法,优选的,所述将所述目标基本数据分批导入所述基本数据表,将所述目标扩展数据分批导入至所述扩展数据表,包括:为所述目标基本数据中的每条基本数据生成相应的第一结构化查询语言SQL插入语句,所述第一 SQL插入语句用于实现将相应基本数据导入所述基本数据表;为所述目标扩展数据中的每条扩展数据生成相应的第二 SQL插入语句,所述第二SQL插入语句用于实现将相应扩展数据导入所述扩展数据表;基于预设的批量提交数据量上限,将所述第一 SQL插入语句及所述第二 SQL插入语句并行分批提交至目标数据库;其中,所述目标数据库为所述关联表所在的数据库。上述方法,优选的,还包括:在将所述目标数据文件中的所有关联数据导入所述关联表之后,解锁所述关联表。—种向数据库关联表导入数据的装置,所述关联表包括基本数据表及扩展数据表,所述装置包括:加锁模块,用于锁定所述关联表,所述锁定用于禁止其他数据处理过程操作所述关联表;获取模块,用于基于所述关联表被锁定时的数据信息,获取目标数据文件中的各条关联数据对应的关联ID ;其中,每条所述关联数据包括一条基本数据及一条或多条扩展数据;导入模块,用于基于所述各条关联数据对应的关联ID,将所述目标数据文件中的各条基本数据导入所述基本数据表,将所述目标数据文件中的各条扩展数据导入所述扩展数据表;其中,所述基本数据及所述扩展数据的导入过程并行执行。上述装置,优选的,所述关联ID为主键ID,则所述获取模块包括:获取单元,用于获取所述基本数据表中数值最大的主键ID,得到目标主键ID ;计算单元,用于利用所述目标主键ID,分别计算所述目标数据文件中的各条关联数据对应的主键ID。上述装置,优选的,所述导入模块包括:内存分配单元,用于为所述目标数据文件分配一块内存区域;读取单元,用于基于所述内存区域的可用空间大小,读取所述目标数据文件中的相应部分目标关联数据至所述内存区域,并在所述内存区域中独立缓存所述目标关联数据包括的目标基本数据及目标扩展数据;分批导入单元,用于基于预设的批量提交数据量上限及所述目标关联数据对应的各主键ID,将所述目标基本数据分批导入所述基本数据表,将所述目标扩展数据分批导入所述扩展数据表;其中,所述目标基本数据及所述目标扩展数据的导入过程并行执行。上述装置,优选的,所述分批导入单元包括:第一生成子单元,用于为所述目标基本数据中的每条基本数据生成相应的第一结构化查询语言SQL插入语句,所述第一 SQL插入语句用于实现将相应基本数据导入所述基本数据表;第二生成子单元,用于为所述目标扩展数据中的每条扩展数据生成相应的第二SQL插入语句,所述第二 SQL插入语句用于实现将相应扩展数据导入所述扩展数据表;分批提交子单元,用于基于预设的批量提交数据量上限,将所述第一 SQL插入语句及所述第二 SQL插入语句并行分批提交至目标数据库;其中,所述目标数据库为所述关联表所在的数据库。上述装置,优当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种向数据库关联表导入数据的方法,其特征在于,所述关联表包括基本数据表及扩展数据表,所述方法包括:锁定所述关联表,所述锁定用于禁止其他数据处理过程操作所述关联表;基于所述关联表被锁定时的数据信息,获取目标数据文件中的各条关联数据对应的关联身份标识号码ID;其中,每条所述关联数据包括一条基本数据及一条或多条扩展数据;基于所述各条关联数据对应的关联ID,将所述目标数据文件中的各条基本数据导入所述基本数据表,将所述目标数据文件中的各条扩展数据导入所述扩展数据表;其中,所述基本数据及所述扩展数据的导入过程并行执行。

【技术特征摘要】

【专利技术属性】
技术研发人员:舒金才高伟李登彪
申请(专利权)人:北京斗牛科技有限公司
类型:发明
国别省市:北京;11

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

1