一种快速查找关联数据的方法技术

技术编号:14048265 阅读:33 留言:0更新日期:2016-11-23 23:51
本发明专利技术提供一种快速查找关联数据的方法,包括如下步骤:对待处理数据进行集合划分;将集合数据存入二维表中,并设置分组编号字段;对二维表分别按集合字段和元素字段进行排序,得到不同的表A和表B,同时引入索引字段和反向索引字段;通过反向索引在表A和表B中反复查找,直至查找到所有相关联的集合的所有记录,并将所有关联集合的记录所对应的分组编号置为一相同数值;根据相同的分组编号快速查询到所有关联的集合,从而得到所有相关的记录,得到所有关联数据群。本发明专利技术提高数据分类以及数据关联查询的效率。

【技术实现步骤摘要】

本专利技术涉及一种数据查找领域,尤其涉及一种快速查找关联数据的方法
技术介绍
在大数据挖掘中,对于一些有关联的数据需要进行整合,例如电信套餐资费上需要以用户或套餐信息进行存储与关联,根据需要获取相关联的所有信息,再比如在设置一些推荐功能(菜单推荐、音乐推荐等)时,同样需要获取大量的相关信息进行处理。目前,对于相关数据的收集与处理,一般通过集合进行分类后在关联,而集合之间的合并与关联的效率直接影响着数据处理的效率。当数据通过集合进行分类表示时,通常采用大写字母表示集合,小写字母表示集合的元素,并将集合A中不同元素的数目称为集合A的基数,记作card(A),当存在多个集合A0,A1,A2,……,An,每个集合中包含有不同数量的有限多个元素,那么在计算各个集合的关联度时,需要对所有有交集的集合进行合并,要求合并完成后的最终的新的集合之间无交集,并获取此时最大元素个数的集合Ax,计算其元素的个数card(Ax)。在现有技术中,合并存在关联的集合时的处理方式是这样的:如图1所示,把集合从左到右排列分别为A0,A1,A2,……,An-1,An,从最左边的第一个集合A0开始作为主端集合,依次与其右边A1,A2,A3直到An(这轮比较这些集合称作副端)进行交集判断,逻辑如下:若主端A0集合与副端A1集合有交集,则A0集合与A1集合需要进行合并,生成的并集替换原有的副端的A1集合中内容,如此反复,从左到右依次完成主端集合A0集合的交集计算;A0集合的所有交集计算完成后,依次向右从A1作为主端集合开始,从左到右分别与A2、A3直到An逐一计算A1的交集,处理的方式与A0一致,以此反复;最后一轮是计算An-1和An的交集情况(由于An右边没有集合了,就此结束)。所有计算完成后将形成所有无交集的集合,这就是我们最终要的集合分组,分别计算每个集合的元素个数,最大的集合就是包含最多元素数量的集合。上述方案逻辑比较简洁清晰,但是该方案的效率一般,处理过程中会发现处理最慢的地方是在集合操作中的交集判断,当集合数量巨大(超过百万),且每个集合之间的关联度很大时(如十万个集合以上有相互的关联关系,并将最终形成交集),处理性能将急剧下降。
技术实现思路
本专利技术要解决的技术问题,在于提供一种快速查找关联数据的方法,提高数据分类以及数据关联查询的效率。本专利技术是这样实现的:一种快速查找关联数据的方法,包括如下步骤:步骤10、获取待处理数据进行分类,将同一类别的数据划分在一个集合下,作为该集合的元素,每一集合包含数量不等的元素;步骤20、对每一集合的每一元素创建一条记录插入二维表中,每一记录包含元素字段、集合字段以及分组编号字段;步骤30、将所述二维表按集合字段进行排列得到表A,按元素字段进行排列得到表B,所述表A和表B均包含元素字段、集合字段、索引字段、反向索引字段以及分组编号字段;步骤40、依次获取表A中的一分组编号为空的记录作为源记录,设置本轮次的分组编号值,通过反向索引在表A和表B中反复查找,得到与所述源记录所在的源集合的所有关联集合,并将所述源集合的记录以及所述源集合的所有关联集合的记录所对应的分组编号置为本轮次的分组编号值;步骤50、根据相同的分组编号快速查询到所有关联的集合,从而得到所有相关的记录,得到所有关联数据群;其中,所述表A和表B互为对应列表,所述索引字段按对应记录所在列表的位置进行编号,所述反向索引字段按照对应记录在对应列表中的位置进行编号。进一步的,所述分组编号初始值为空。进一步的,所述步骤40进一步包括:步骤41、创建一新的二维表relaA,用于存储表A中的待遍历记录;步骤42、依次获取表A中一条分组编号为空的记录作为源记录,并设置本轮次的分组编号值,通过反向索引查询表B中所有与所述源记录存在相同元素字段的第一相关记录集,再逐一通过所述第一相关记录集中每一条记录的反向索引查询表A中所有与该条记录存在相同集合字段的第二相关记录集,逐一判断所述第二相关记录集中每一记录对应的分组编号是否为空,若是,则将第二相关记录集的记录插入列表relaA的尾部,并将其对应的分组编号置为本轮次的分组编号值,否则,跳过对该条记录的操作;步骤43、依次获取列表relaA中未被遍历到的一记录作为源记录,通过反向索引查询表B中所有与源记录存在相同元素字段的第三相关记录集,再逐一通过所述第三相关记录集中每一条记录的反向索引查询表A中所有与该条记录存在相同集合字段的第四相关记录集,逐一判断所述第四相关记录集中每一记录对应的分组编号是否为空,若是,则将所述第四相关记录集的记录插入到列表relaA的尾部,并将其对应的分组编号置为本轮次的分组编号值,否则,跳过对该条记录的操作;步骤44、判断列表relaA中是否存在未被遍历到的记录,若是,则返回步骤43,否则,进入步骤45;步骤45、判断表A中是否存在分组编号为空的记录,若是,则返回步骤42,否则,结束流程。进一步的,所述本轮次对应的分组编号值为与所述表A中非空的分组编号值不同的数值。本专利技术具有如下优点:本专利技术通过将数据划分集合后存入二维表,并引入反向索引,在两个列表之间的往返关联查找能直接命中被关联记录,最大限度减少计算中的无用性遍历,极大的提升了集合关联性分析的处理性能,提高大数据处理效率。附图说明下面参照附图结合实施例对本专利技术作进一步的说明。图1为现有技术中集合合并的原理示意图。图2为本专利技术一种快速查找关联数据的方法执行流程图。具体实施方式如图2所示,一种快速查找关联数据的方法,包括如下步骤:步骤10、获取待处理数据进行分类,将同一类别的数据划分在一个集合下,作为该集合的元素,每一集合包含数量不等的元素;步骤20、对每一集合的每一元素创建一条记录插入二维表中,每一记录包含元素字段、集合字段、索引字段、反向索引字段以及分组编号字段,所述分组编号初始值为空;步骤30、将所述二维表按集合字段进行排列得到表A,按元素字段进行排列得到表B,所述表A和表B均包含元素字段、集合字段、索引字段、反向索引字段以及分组编号字段,所述分组编号初始值为空;步骤40、依次获取表A中的一记录作为源记录,设置本轮次的分组编号值,作为最外围大循环,从这里开始,会给个分组编号,通常是从0或1开始,这条记录处理完,开始处理第二条记录后,组号就+1,就这样把分组编号定出来,即每一大轮中的分组编号都是一样的,都取本轮最开始订立的分组编号,通过反向索引在表A和表B中反复查找,得到与所述源记录所在的源集合的所有关联集合,并将所述源集合的记录以及所述源集合的所有关联集合的记录所对应的分组编号置为本轮次的分组编号值;所述步骤40进一步包括步骤41至步骤45:步骤41、创建一新的二维表relaA,用于存储表A中的待遍历记录;步骤42、依次获取表A中一条分组编号为空的记录作为源记录,并设置本轮次的分组编号值,通过反向索引查询表B中所有与所述源记录存在相同元素字段的第一相关记录集,再逐一通过所述第一相关记录集中每一条记录的反向索引查询表A中所有与该条记录存在相同集合字段的第二相关记录集,逐一判断所述第二相关记录集中每一记录对应的分组编号是否为空,若是,则将第二相关记录集的记录插入列表relaA的尾部,并将其对应的分组编号置为本轮次的分组编号值,否本文档来自技高网
...
一种快速查找关联数据的方法

【技术保护点】
一种快速查找关联数据的方法,其特征在于:包括如下步骤:步骤10、获取待处理数据进行分类,将同一类别的数据划分在一个集合下,作为该集合的元素,每一集合包含数量不等的元素;步骤20、对每一集合的每一元素创建一条记录插入二维表中,每一记录包含元素字段、集合字段以及分组编号字段;步骤30、将所述二维表按集合字段进行排列得到表A,按元素字段进行排列得到表B,所述表A和表B均包含元素字段、集合字段、索引字段、反向索引字段以及分组编号字段;步骤40、依次获取表A中的一分组编号为空的记录作为源记录,设置本轮次的分组编号值,通过反向索引在表A和表B中反复查找,得到与所述源记录所在的源集合的所有关联集合,并将所述源集合的记录以及所述源集合的所有关联集合的记录所对应的分组编号置为本轮次的分组编号值;步骤50、根据相同的分组编号快速查询到所有关联的集合,从而得到所有相关的记录,得到所有关联数据群;其中,所述表A和表B互为对应列表,所述索引字段按对应记录所在列表的位置进行编号,所述反向索引字段按照对应记录在对应列表中的位置进行编号。

【技术特征摘要】
1.一种快速查找关联数据的方法,其特征在于:包括如下步骤:步骤10、获取待处理数据进行分类,将同一类别的数据划分在一个集合下,作为该集合的元素,每一集合包含数量不等的元素;步骤20、对每一集合的每一元素创建一条记录插入二维表中,每一记录包含元素字段、集合字段以及分组编号字段;步骤30、将所述二维表按集合字段进行排列得到表A,按元素字段进行排列得到表B,所述表A和表B均包含元素字段、集合字段、索引字段、反向索引字段以及分组编号字段;步骤40、依次获取表A中的一分组编号为空的记录作为源记录,设置本轮次的分组编号值,通过反向索引在表A和表B中反复查找,得到与所述源记录所在的源集合的所有关联集合,并将所述源集合的记录以及所述源集合的所有关联集合的记录所对应的分组编号置为本轮次的分组编号值;步骤50、根据相同的分组编号快速查询到所有关联的集合,从而得到所有相关的记录,得到所有关联数据群;其中,所述表A和表B互为对应列表,所述索引字段按对应记录所在列表的位置进行编号,所述反向索引字段按照对应记录在对应列表中的位置进行编号。2.根据权利要求1所述的一种快速查找关联数据的方法,其特征在于:所述分组编号初始值为空。3.根据权利要求2所述的一种快速查找关联数据的方法,其特征在于:所述步骤40进一步包括:步骤41、创建一新的二维表relaA,用于存储表A中的待遍历记录;步骤42、依次获取表...

【专利技术属性】
技术研发人员:陈心咏
申请(专利权)人:福建富士通信息软件有限公司
类型:发明
国别省市:福建;35

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

1