一种将数据批量导入数据库的方法及系统技术方案

技术编号:3844463 阅读:280 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种将数据批量导入数据库的方法及系统,属于数据库技术 领域。现有技术中,将数据导入数据库的方式为分析一条数据记录,写入一条 数据记录,效率较低。本发明专利技术所述方法及系统,分析数据文件中数据的过程和 将分析后数据写入数据库的过程并行;数据经过分析后存入缓存,直到分析完 毕;当缓存中的数据达到预设数据量时,将该数据一次性写入数据库,并将该 数据从缓存中删除;当分析完毕后,将缓存中的所有数据一次性写入数据库。 采用本发明专利技术所述方法及系统,数据分析和写入的速度快,尤其适用于将大量数 据导入到数据库中。

【技术实现步骤摘要】

本专利技术属于数据库
,具体涉及一种将数据批量导入数据库的方 法及系统,尤其适用于将大量数据导入数据库中。
技术介绍
现有技术中,将数据文件中按照特定格式存储的数据批量导入数据库通常采用的方法为首先取得数据文件中的一条数据,然后进行分析,从分析 结果中得到数据所属的数据表,最后将该分析结果写入到数据库中。也就是 分析一条数据,往数据库写入一条数据记录。这种方法分析数据和将数据写 入数据库不能同时进行,而且一次只能往数据库中写入一条数据记录,其缺 陷主要表现如下(1) 数据分析速度慢,只有当一条数据写入到数据库以后才能进行下一 条数据的分析;(2) 数据写入速度慢, 一次只能往数据库中写入一条数据,而数据写入 数据库之前需要和数据库进行连接,当数据写入数据库后,又要断开连接, 数据库的连接和断开都要花费很长的时间,如果保持数据库的连接不断开, 则数据库资源将一直被占用,浪费了宝贵的数据库资源;(3 )不能充分利用分析服务器的资源,所述分析服务器为分析数据的计 算机,由于数据的分析需要间断,不能连续分析数据,所以分析服务器的硬 件资源没有得到充分的利用;(4 )不能充分利用数据库服务器资源,连接一次数据库只能写入一条数 据,这对于数据连接资源来说是非常浪费的;(5)数据库服务器的压力非常大,导入数据的过程需要频繁的和数据库 进行交互,由于数据库的交互过程会占用大量的数据库资源,所以频繁的交 互给数据库服务器带来的压力非常大,数据导入非常慢,效率很低。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的是提供一种效率高的将数据 导入数据库的方法及系统。为了实现上述目的,本专利技术采用的技术方案如下一种将数据批量导入数据库的方法,包括对数据文件中数据进行分析的步 骤和将分析后的数据写入到数据库中的步骤,其特征在于分析数据文件中数 据的过程和将分析后数据写入数据库的过程并行;数据经过分析后存入緩存, 直到分析完毕;当緩存中的数据达到预设数据量时,将该数据一次性写入数据 库,并将该数据从緩存中删除;当分析完毕后,将緩存中的所有数据一次性写 入数据库。如上所述的 一种将数据批量导入数据库的方法,所述数据文件中数据的类 型相同或者不同。当数据文件中数据的类型相同时,分析数据文件中数据的过程包括以下步骤(1 )将数据格式配置文件中存储的数据格式信息加载到内存,所述数据 格式信息与数据文件中数据的类型对应;(2) 取出数据文件中的一条未经分析的数据;(3) 验证该数据是否合法,如果不合法,则给出该数据不合法原因的提示 信息后转入步骤(2);(4) 分析该数据,根据该数据的类型进行相应处理;(5) 将处理后的数据存入緩存中的数据表中,所述数据表在第一次将数据 存入緩存时根据加载到内存中的数据格式信息建立;(6) 重复步骤(2)至步骤(5),直到分析完数据文件中的所有数据。 其中,步骤(3)中验证数据是否合法的过程为将从数据文件中取出的数据与内存中的数据格式信息进行比较,如果与内存中的数据格式信息相应, 则该数据为合法数据,否则为非法数据。当数据文件中数据的类型不同时,分析数据文件中数据的过程包括以下步6骤① 将数据格式配置文件中存储的数据格式信息加载到内存, 一种数据格 式信息对应数据文件中 一 种数据类型;② 取出数据文件中的 一条未经分析的数据;③ 验证该数据是否合法,如果不合法,则给出该数据不合法原因的提示 信息后转入步骤②;④ 分析该数据,根据该数据的类型进行相应处理;(D将处理后的数据存入緩存中与该数据的类型相应的数据表中,所述数据表在第 一次将该种类型数据存入緩存时根据加载到内存中的与该类型数据相应的数据格式信息建立;⑥重复步骤②至步骤⑤,直到分析完数据文件中的所有数据。其中,步骤③中验证数据是否合法的过程为将从数据文件中取出的数据与内存中的数据格式信息进行匹配,如果存在与该数据相匹配的数据格式信息,则该数据为合法数据,否则为非法数据。如上所述的一种将数据批量导入数据库的方法,其中,加载到内存中的数 据格式信息,在分析完数据文件中所有数据后释放。如上所述的 一种将数据批量导入数据库的方法,所述当緩存中的数据达 到预设数据量时将该数据一次性写入数据库的过程包括以下步骤(a) 依次循环监测緩存中每张数据表的数据量;(b) 当某一数据表的数据量达到预设的值时,锁定緩存,在緩存被锁定 期间如有数据需要緩存,则等待,直到緩存被解锁;(c) 将该数据表中数据写入内存后删除;(d) 解除对緩存的锁定,同时,建立与数据库的连接,将内存中数据一 次性写入数据库;(e) 回到步骤(a),从下一个数据表开始依次循环检测緩存中的所有数据表。其中,步骤(d)中,与数据库的连接只建立一次,直到将所有数据导入 到数据库后才释放连接。7一种将数据批量导入数据库的系统,包括用于对数据文件(14)中数据进行分析的数据分析模块(11 ),用于对分析后数据进行緩存的緩存器(13),以 及用于将緩存器(13)中数据写入数据库(15)的数据写入模块(12)。本专利技术发所述方法及系统,由于数据分析不受其他任何条件影响,从数 据分析开始直到结束,都以同样的速度、不间断的状态进行,因此数据分析 的效率高。同时,由于一次写入数据库的数据是一块数据, 一块数据的数据 量可能是几千或几万条数据记录,甚至更多, 一块数据写入数据库的时间非 常短暂(毫秒数量级),因此将数据写入数据库的速度块,效率高。附图说明图1是具体实施方式中所述系统结构图; 图2是具体实施方式中数据分析流程图; 图3是具体实施方式中数据写入流程图。具体实施例方式下面结合具体实施方式和附图对本专利技术进行详细描述。 如图l所示,本专利技术所述系统包括数据分析模块11、数据写入模块12和 缓存器13。数据分析模块11用于对数据文件14中的数据进行分析。緩存器13 用于对数据分析模块11分析后的数据进行緩存。数据写入模块12用于当緩存 器13中的数据达到预设最大数据量时将该数据一次性写入到数据库15中。其 中,緩存器13可以为内存中的一块区域。如图2和图3所示,采用图1所示系统将婆:据批量导入数据库的方法如下 (1 )数据分析模块11分析数据文件14中的数据,如图2所示。启动数据分析模块11,首先将数据格式配置文件中存储的数据格式信息 加载到内存。所述数据格式配置文件以XML形式存储与数据文件14中所有 类型数据相对应的数据格式信息,数据文件14中一种类型的数据对应数据格 式配置文件中的一个数据格式信息。在将数据批量导入数据库15之前需要先 定义数据文件14中所有类型的数据的数据格式信息,并将其保存到一个数据格式配置文件中。数据分析模块11读取数据文件14中的一条数据,分析该数据是否为合法的数据,即将从数据文件14中读取的数据与加载在内存中的数据格式信息进行匹配。如果存在与该数据相匹配的数据格式信息,则该数据为合法数据, 否则为非法数据。当出现非法数据时,数据分析模块11给出数据不合法的原 因的提示信息,如该类型的数据格式信息不存在配置文件中或者数据格式信息和数据不一致等,然后读取数据文件14中的下一条数据继续进行分析。对于合法的数据,按照该数据的特征进行相应的处理,即根据该数据的数据格式信息对该数据进本文档来自技高网...

【技术保护点】
一种将数据批量导入数据库的方法,包括对数据文件中数据进行分析的步骤和将分析后的数据写入到数据库中的步骤,其特征在于:分析数据文件中数据的过程和将分析后数据写入数据库的过程并行;数据经过分析后存入缓存,直到分析完毕;当缓存中的数据达到预设数据量时,将该数据一次性写入数据库,并将该数据从缓存中删除;当分析完毕后,将缓存中的所有数据一次性写入数据库。

【技术特征摘要】

【专利技术属性】
技术研发人员:邓振林
申请(专利权)人:北京泰合佳通信息技术有限公司
类型:发明
国别省市:11

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

1