一种通过内存快速去重名单的方法技术

技术编号:8626126 阅读:202 留言:0更新日期:2013-04-25 23:15
本发明专利技术公开了一种通过内存快速去重名单的方法,包括如下步骤:读取数据库中的历史名单信息表并加载到内存中,存入历史名单集合;将需要导入的名单加载到数据库的临时表中;读取临时表中需要进行名单去重的数据项并加载到内存中,存入当前导入名单集合;通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表;删除临时表。本发明专利技术利用集合运算批量去重的方式对名单导入去重,大大提高了名单去重的速度。

【技术实现步骤摘要】

本专利技术涉及一种去重名单的方法,尤其涉及一种通过内存操作快速去重名单的方法,属于数据库

技术介绍
近年来,我国电子商务市场交易额稳定增长,电子商务在企业的应用成效以及对经济、社会发展的推动作用日益明显。针对电子商务的特性,一般都存在电子营销的过程。电子营销具有完全以客户为中心,互动性强、目标针对性强、客户准确性强、独具时空优势、传播范围广等特点。对于电子营销来说,电子营销名单的数据量非常大,不同的信息收集人员在收集营销信息过程中,不可避免会有重复名单信息被收集起来。电子营销名单不能重复,如果不去重,可能相同的电话被拨打多次,不但浪费人力和物力,而且会让客户很反感。收集到的电子营销名单导入过程是电子营销名单进入电子营销系统的重要入口,而导入电子营销名单的同时对电子营销名单的去重是必不可少的一个环节。传统的电子营销系统中名单去重主要采用遍历数据表记录进行去重的,这种方式在小数据量的情况下问题不太大,但是随着时间的累加,数据表的数据量也会越来越大,名单的去重会变的越来越慢,而且大批量的名单去重可能无法使用,甚至会导致系统崩溃。传统的电销系统中,名单导入时去重主要采用以下两种方式(I)数据库与程序配合处理的方式,如图1所示,从收集到的电子营销名单文件中拿出一条名单记录。按照当前拿出的名单去电子营销数据库中查询,判断查询结果是否存在。如果不存在则将该条名单记录存入电子营销数据库中;如果存则在去除此条名单记录。按此方法查询下一条名单记录,直至所有名单记录都一一比对完毕。(2)完全依赖数据库的方式,即在导入的表中将需要去重的项设置唯一约束,如图2所示,从收集到的电子营销名单文件中拿出一条名单记录。按照当前拿出的名单直接插入到数据库中,判断是否插入成功。如果插入成功,则说明该名单不重复;如果插入不成功,则说明该条名单重复。按此方法插入下一条名单记录,直至所有名单记录都一一比对完毕。以上两种方式都是依赖遍历数据库逐条比对实现去重的,虽然通过这两种方式可以实现去重,但是当数据量和并发量过大时,这个效率是相当低,甚至会导致服务器的崩溃。第二种方式看起来应该会比第一种方式快,但是这种方式对文件的格式要求比较高,而且当需要将数据导入到多个表中时,效率会再降低。由于数据库的连接数和硬盘的IO速度都有限的,逾越这两个问题目前还存在一定的困难。
技术实现思路
针对现有技术所存在的不足,本专利技术所要解决的技术问题在于提供。该方法通过集合运算批量去重,节约了去重时间、提高了去重效率。为实现上述的专利技术目的,本专利技术采用下述的技术方案,包括如下步骤读取数据库中的历史名单信息表并加载到内存中,存入历史名单集合;将需要导入的名单加载到数据库临时表中;读取临时表中需要进行名单去重的数据项并加载到内存中,存入当前导入名单集合;通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表;删除临时表。其中较优地,通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表的步骤进一步包括当前导入名单集合与历史名单集合做交集运算找出重复名单集合,批量删除重复名单集合;当前导入名单集合与历史名单集合做并集运算得到新的历史名单集合,将所述新的历史名单集合回填到内存中;将临时表中的名单信息批量插入数据库中的历史名单信息表中。其中较优地,通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表的步骤进一步包括当前导入名单集合与历史名单集合做并集运算得到新的历史名单集合;将所述新的历史名单集合回填到内存中;将所述新的历史名单集合替换数据库中的历史名单信息表。其中较优地,通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表的步骤进一步包括当前导入名单集合与历史名单集合做交集运算找出重复名单集合,批量删除重复名单集合;将临时表中的名单信息批量插入历史名单集合;将临时表中的名单信息批量插入数据库中的历史名单信息表中。其中较优地,所述将需要导入的名单加载到数据库的临时表中的步骤之前还包括对要导入的名单文件预处理对要导入的名单文件配置去重项;按照配置的去重项对要导入的名单文件拆分表处理;设置多张数据表,在数据表中增加数据项;将拆分后的名单信息存放在所述数据表中。其中较优地,所述名单信息在所述数据表中是以键值对形式存放的。其中较优地,将需要导入的名单加载到数据库临时表的过程是一次性加载的。其中较优地,所述历史名单信息表是批量更新的。相对于现有技术而言,本专利技术所提供的通过内存快速去重名单的方法,利用集合运算去重的方式对名单导入批量去重,实现了名单批量去重,提高了名单导入的去重效率。附图说明图1是现有技术中,第一种名单去重方式的流程示意图2是现有技术中,第二种名单去重方式的流程示意图;图3是本专利技术所提供的通过内存快速去重名单的方法流程图。具体实施例方式下面结合附图和具体实施方式对本专利技术作进一步的详细说明。本专利技术提供了,包括如下步骤读取数据库中的历史名单信息表并加载到内存中,存入历史名单集合;将需要导入的名单加载到数据库的临时表中;读取临时表中需要进行名单去重的数据项并加载到内存中,存入当前导入名单集合;通过历史名单集合与当前导入名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表;删除临时表,名单导入流程结束。下面对该通过内存快速去重名单的方法展开详细的说明。在电子营销系统中,所有的名单信息均储存于数据库的名单信息表中。首次导入名单信息时数据库中没有数据,名单信息表为空。读取数据库中数据项为空的名单信息表时,需要在内存中建立一个为空的历史名单集合(AllSet)。只要导入过一次名单,该名单信息表中就存在数据,存在数据的名单信息表称为历史名单信息表。信息收集人员在收集营销名单信息时,收集到的营销名单信息中名单属性可能有所不同(例如,有可能是10个属性也有可能是100个属性)。为了更好的细化去重要导入名单的属性,防止名单去重不彻底的情况,在导入不同名单之前需要对要导入的名单文件预处理,用户可以根据实际的需求对要导入的名单文件配置去重项,这种配置去重项的过程是可选择的。按照配置的去重项对要导入的名单文件拆分表处理,根据需要设置多张数据表,在这些数据表中增加文件ID、名单ID、名单属性ID等数据项。将这拆分后的名单信息储存在这些数据表中。这些名单信息均以键值对形式存放。例如,表I存放本次导入文件的文件头和名单的属性名称,表2存放每个名单和导入文件的关系,表3存放名单属性值。表2和表3以键值对形式按照名单ID或名单属性ID存放数据。例如,一个名单中如果有10个属性,在表2中存放一条数据,需在表3中存放10条数据。由于不同名单的属性不固定,在导入不同名单文件时,需要在数据库中建立临时表来临时放置和处理这些不固定属性的名单。该临时表根据导入名单文件的文件头生成,在导入这些名单数据时,优选先将需要导入的名单预处理,预处理后再一次性加载到临时表中;然后根据实际的需要读取该临时表中的名单数据,按批量查出名单数据中需要去重的数据项对名单信息粗略去重,并将这些粗略去重后需要进行名单再去重的数据项(一项或多项)连接起来,作为一本文档来自技高网
...

【技术保护点】
一种通过内存快速去重名单的方法,其特征在于包括:读取数据库中的历史名单信息表并加载到内存中,存入历史名单集合;将需要导入的名单加载到数据库临时表中;读取临时表中需要进行名单去重的数据项并加载到内存中,存入当前导入名单集合;通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表;删除临时表。

【技术特征摘要】
1.一种通过内存快速去重名单的方法,其特征在于包括 读取数据库中的历史名单信息表并加载到内存中,存入历史名单集合; 将需要导入的名单加载到数据库临时表中; 读取临时表中需要进行名单去重的数据项并加载到内存中,存入当前导入名单集合;通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表; 删除临时表。2.如权利要求1所述的通过内存快速去重名单的方法,其特征在于通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表的步骤进一步包括 当前导入名单集合与历史名单集合做交集运算找出重复名单集合,批量删除重复名单集合; 当前导入名单集合与历史名单集合做并集运算得到新的历史名单集合,将所述新的历史名单集合回填到内存中; 将临时表中的名单信息批量插入数据库中的历史名单信息表中。3.如权利要求1所述的通过内存快速去重名单的方法,其特征在于通过当前导入名单集合与历史名单集合间运算批量删除重复名单,更新历史名单集合,更新历史名单信息表的步骤进一步包括 当前导入名单集合与历史名单集合做并集运算得到新的历史名单集合; 将所述新的历史名单集合回填到内存中; 将所述新...

【专利技术属性】
技术研发人员:吴为民陶敏超
申请(专利权)人:北京讯鸟软件有限公司
类型:发明
国别省市:

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

1