CN103853844A - 基于Hadoop的关系表非冗余键集合识别方法 - Google Patents

基于Hadoop的关系表非冗余键集合识别方法 Download PDF

Info

Publication number
CN103853844A
CN103853844A CN201410110441.7A CN201410110441A CN103853844A CN 103853844 A CN103853844 A CN 103853844A CN 201410110441 A CN201410110441 A CN 201410110441A CN 103853844 A CN103853844 A CN 103853844A
Authority
CN
China
Prior art keywords
key
data
algorithm
community
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410110441.7A
Other languages
English (en)
Inventor
袁晓洁
韩术鹏
蔡祥睿
莫云音
温延龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nankai University
Original Assignee
Nankai University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nankai University filed Critical Nankai University
Priority to CN201410110441.7A priority Critical patent/CN103853844A/zh
Publication of CN103853844A publication Critical patent/CN103853844A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

基于Hadoop的关系表非冗余键集合识别方法。包括:提出了一种基于数据修剪和属性修剪的键集合识别算法,并设计出了该算法的分布式解决方案MRKeyFinder。本发明提出的非冗余键集合识别算法,能够为大规模数据集中非冗余键集合信息识别提供一种有效的解决方案。本发明可用于数据建模、数据集成、异常检测、查询优化、建立索引等领域。

Description

基于Hadoop的关系表非冗余键集合识别方法
技术领域
本发明属于数据库技术领域,具体涉及一种新型的关系表的非冗余键集合识别技术。 
背景技术
随着计算机的普及和网络技术的飞速发展,互联网上出现了海量的数据可供人们利用,关系型数据是其中最主要的数据组织形式之一。在关系数据库中,键集合信息是理解数据库的结构和特征的基础。所谓键,是指给定数据表中可以唯一标识一条数据记录的属性或属性集合。不存在两条数据记录其构成键的所有属性值都相同。键集合信息对数据建模、数据集成、异常检测、查询优化、索引等大量数据库任务具有至关重要的作用。例如,利用键集合信息,在基于成本的查询优化中可以更好地进行选择性估计;利用键集合信息,数据库管理员可以通过创建索引、创建视图等方法来提高数据访问的效率;利用键集合信息,在数据集成方面可以实现自动化处理;利用键集合信息,可以提高数据表检索元组的速度。然而,在现实应用场景中的大型、复杂数据集中,键集合信息往往缺失或者不完整。原因在于:数据库设计者对数据库内在隐含的关系不够了解;出于性能的考虑,数据库设计者没有明确标出键信息;为了设计方便,数据库设计者采用自动递增的方式产生主键,自增主键只具有唯一标识记录的功能,不具有实际意义。在大型、复杂数据集中,通过人工方法确定数据集的键集合不切实际。数据库管理员和开发者迫切需要有效的键集合信息识别方法,辅助完成数据库优化、分析、维护等繁重任务。因此,如何高效自动识别数据集的键集合方法具有重要理论意义和应用价值。 
然而,由于数据库关系表属性数目较多、数据元组数量庞大,数据库关系表的键集合信息识别通常具有较高的复杂性。目前,键集合识别的相关研究工作较少。发现一个非冗余的键是一个NP完全问题,发现所有的非冗余键就更加困难。以前的大部分键识别工作只解决了单属性键的识别问题,并没有解决复合键的识别问题。BruteForce算法是当前大多数商业产品使用的键集合识别方法,但由于CPU和内存容量的限制,该算法只能用于小规模的、属性个数少的数据集。GORDIAN算法能有效地发现数据集中的所有非冗余的键,但当数据集较大时,该算法无法直接进行处理,需要在执行算法前进行数据采样,缩小要处理的数据规模,这样可能会影响结果的正确性。因此,在大数据集之上高效、准确识别非冗余的键集合信息,是一项非常具有挑战性的研究工作。 
大规模数据集处理通常需要进行大量计算,一种有效的解决方法是采用分布式计算方法。分布式计算是近年提出的一种新型的计算方式,它结合IT技术,充分利用互联网上的计算机的闲置处理能力来实现超级计算和大数据存储,有效地解决大型计算问题。分布式计算的工作原理是将大的计算任务分解为许多小的子任务,然后将这些小的子任务分配给多台计算机进行处理,最终将计算得到的结果进行收集综合而得到大计算任务的结果,从而有效解决大数据集处理的相关问题。 
Hadoop是Apache软件基金会提出的一个开源分布式计算平台,是能够对海量数据进行存储和分析的软件框架。Hadoop利用分布式存储方式来提高读写速度、扩大存储容量,采取MapReduce并行地处理分布式文件系统上的数据以加快数据的处理速度。Hadoop为用户提供了系统底层细节透明的分布式基础架构,用户可以在低廉的硬件设备上部署Hadoop,搭建自己的分布式计算平台。Hadoop集群在存储及计算方面都很强大,用户可以有效地组织计算机资源,非常轻松和方便地完成海量数据的处理。Hadoop的主要特点包括高效性、可靠性、伸缩性及开源性等,用户可以充分利用该平台解决大数据处理的相关问题。 
发明内容
本发明的目的是解决在大数据集之上如何高效、准确识别非冗余的键集合信息的问题,提出一种基于Hadoop的关系表非冗余键集合识别方法。 
本发明针对现有技术中的问题,创新性的在成熟的BruteForce算法的基础上提出了属性剪枝和数据剪枝策略,极大提高了算法的运行效率;提出了一种基于Hadoop的键集合识别方案,实现了基于Hadoop的键集合识别算法;最终本发明能够高效地得出关系表中所有的非冗余键集合。 
本发明提出的基于Hadoop的关系表非冗余键集合识别方法,包括如下步骤: 
第1、识别数据中的键集合
第1.1、使用投影统计方法判断一个属性集合是否是键,
定义1:键:键是数据表中唯一标识一条数据记录的属性或属性集合;在数据表中,不存在两条数据记录构成键的所有属性值都相同;
第1.1.1、投影操作:将数据表在属性集合K进行投影得到数据集合S;
第1.1.2、统计操作:统计投影后集合S中每一条数据在S中出现的次数,如果每一条数据都只出现过一次,则说明属性集合K是键,否则,K不是键;
第1.2、对冗余的属性集进行修剪,
定义2:冗余键:除了包含键的所有属性之外,还含有关系中的其它属性的属性集合;
第1.2.1、基于启发式规则:如果一个属性集合是某个键的超集,那么这个属性集合是一个冗余键;根据该启发式规则可以对需要进行键判别的属性集合进行修剪,避免对冗余键的投影统计操作;
第1.2.2、对于键所组成的集合KeySet中的每一个非冗余键key,如果待判定属性集合CandidateKey包含任意一个key,则说明CandidateKey是冗余的键;
第1.3、对数据集进行修剪,
在对某一个CandidateKey判别结束后,可以先对数据集进行修剪,去除数据表中执行投影统计操作后统计结果count域为1的数据记录,从而可以降低数据集的规模,降低键识别过程中的计算代价;
第2、基于Hadoop的键集合识别算法
       含数据修剪的分布式非冗余键集合识别算法:MRPKeyFinder;该算法的主要内容是:在属性集修剪操作及数据集合修剪操作的基础之上,基于Hadoop平台同时对属性集合树中每一个节点的子节点进行键判别;
       定义3:属性集合树:一种用于表示属性集合之间包含关系的树形结构。
       属性集合树中的每一个节点都是关系表中的属性所组成的集合,树中每一个节点所表示的集合都是这个节点的子节点表示的集合的子集,位于同一层的节点所表示的集合具有相同的阶数,即集合具有相同的元素数;属性集合树的事例见附图2; 
本发明主要利用属性集修剪操作及数据修剪操作对BruteForce算法进行改进,并在此基础上提出了分布的式键集合识别算法MRPKeyFinder;由于将数据集在属性集合K上进行投影的计算过程中,数据集中的每一条记录在K上进行投影的过程是相互独立、互不影响的,所以可以将数据集的投影过程并行执行;因此,MRKeyFinder将属性集合树中同一层的属性集合的判别过程并行执行,从而可以在不影响程序正确性的基础上很大程度上提高程序的执行效率; 
第2.1、键判别算法MRPCheckKey用来验证一个属性集合是否是键。MRPCheckKey采用KeyValueTextInputFormat的作业输入方式,key与value以“|”作为分隔符;该算法由一个Mapper类和一个Reducer类组成;
第2.1.1、Mapper 类根据传入的属性列表,对输入数据进行投影:在Map任务中解析出AttrList,对于AttrList中的每一个Attr,根据传入的<key,value>及Attr拼接出输出的key,将输出的value设置为输入的value,输出到 Reduce;
第2.1.2、Reducer 类对投影记录进行分组聚集,并根据聚集结果进行相应的输出:在 Reduce中,对于传入的<key,value-list>,如果value-list不止含有一个value,则遍历value-list,对于value-list的每一个value,将<key,value>输出到与该key对应的文件中;
第2.2、MRPKeyFinder算法中定义如下数据结构用以保存上下文信息:
ContextInfo {
            String Path;
            String curKey;
            ArrayList<int> Attr;
}
       其中,Path为数据集文件路径,curKey为属性ID拼接成的字符串,Attr为属性ID集合;此外,MRPKeyFinder算法中定义变量Parallelism,用以指示允许同时进行键判别的属性集合的最大个数,该参数是为了防止内存空间不足而设置的;
假设算法执行到对属性集合树第m层的属性集合集A[A1,A2,…An]进行键判别,其中Ai是第m层中的第i个属性集合, curKeyList表示待验证的属性集合所组成的列表,MRPKeyFinder算法的执行流程如下:
①、首先遍历A,对A i 进行冗余键判别,如果A i 不是冗余键,则将A i 插入curKeyList中,否则对以A i 为根的子树进行剪枝;
②、遍历完A后,将curKeyList传递给MapReduce化的键判别算法MRCheckKey,同时对curKeyList中的所有属性集合进行键判别,并在判别的过程中进行数据剪枝;
③、判别结束后,遍历curKeyList,对于curKeyList中的每一个A i ,根据MRCheckKey算法的输出判断A i 是否是键,如果A i 是键,则将A i 插入KeySet中,并对以A i 为根的子树进行剪枝;
④、遍历curKeyList结束后,进入对下一层属性集合集的键判别过程。
  
本发明的优点和积极效果:
本发明通过对当前键集合识别的相关算法和技术的研究分析,基于Hadoop平台在大数据处理任务中表现出来的优越性,采用Hadoop平台作为数据库关系表非冗余键集合识别的开发环境,提出一个基于Hadoop的键集合识别方案,并具体实现了基于Hadoop的键集合识别算法,为大规模数据集中非冗余键集合信息识别提供了一种有效的解决方案。
  
【附图说明】
图1为基于Hadoop的键集合识别方案流程图。
图2为MRPKeyFinder算法流程图。 
图3为包含a,b,c,d四个属性的属性集合树示例。 
【具体实施方式】
本发明以Hadoop为平台,提出了一种关系表中非冗余键集合的识别的方法,方法整体流程如图1所示,下面以表1所示示例中的属性集合树对方法核心内容加以解释。
第1、    含数据修剪分布式键集合识别算法MRPKeyFinder 
第1.1、基于启发式规则的属性剪枝能够避免对冗余键集合的判别,从而能够提高程序的运行效率;判断属性集合是否是冗余键的算法CheckRedudant中,KeySet用于保存键识别过程中发现的非冗余键的集合,对于KeySet集合中的每一个非冗余的键key,如果key被CandidateKey包含,则返回true,说明CandidateKey是冗余的键;如果KeySet中任意一个key都不被CandidateKey包含,则返回false,说明CandidateKey不是冗余的键;CheckRedundant算法的伪代码如下:
算法1 CheckRedundant
输入:键集合KeySet,待判定属性集合CandidateKey
输出:true or false
1)        foreach key  in KeySet
2)                      if CandidateKey covers key  then
3)                             return true
4)                      end if
5)        endfor
6)        returnfalse
算法结束
第1.2、键判别算法MRPCheckKey,算法仅由一个job完成,采用KeyValueTextInputFormat的作业输入方式,key与value以“|”作为分隔符;在执行任务前,将需要进行键判别的属性集合AttrList设置在Hadoop运行任务的配置信息文件中;
第1.2.1、Mapper 类根据传入的属性列表,对输入数据进行投影,其伪代码如下:
算法2  MRPCheckKey算法的map函数
输入:键值对<key,value>
1)        从Configuration解析出参数AttrList
2)        分割输入的value,即数据记录,获得属性值数组AtrrValue
3)        if key的值不为空 then
4)           根据"#"分割key,得到字符串数组str
5)           KeyCol=str[0]+ ","//KeyCol和KeyValue初始值都为""
6)           KeyValue=str[1]+ ","
7)        end if
8)        for i=0 to AttrList.size()
9)          Key=KeyCol+AttrList[i]+"#"+KeyValue+AtrrValue[AttrList[i]])
10)      context.write(new Text(Key),value)
11)    end for
算法结束
第1.2.2、Reducer 类对投影记录进行分组聚集,并根据聚集结果进行相应的输出,其伪代码如下:
算法3  MRPCheckKey算法的reduce函数
输入:键值对<keyvalue-list>
1)        if  value-list中的value多于1个 then
2)           KeyNo=key.toString()
3)           KeyNo=KeyNo.substring(0,KeyNo.indexOf('#'))
4)           for each value in value-list
5)              /*将结果输出到KeyNo目录下的1.txt文件*/
6)              context.write(new Text(KeyNo),value)
7)           end for
8)        end if
算法结束
第1.2、MRPKeyFinder算法的实现
第1.2.1、算法首先判断ContextInfoList是否为空,其中ContextInfoList是由用以保存上下文信息的ContextInfo结构组成的列表,如果ContextInfoList为空,则结束算法,否则构建curKeyList及AttrList,并将AttrList传递给算法MRPCheckKey进行键判别;
第1.2.2、判断结束后,接着遍历curKeyList,对于curKeyList中的每一个curKey,根据MRPCheckKey的输出结果判断curKey是否是键,如果curKey是键,则将curKey插入键所组成的集合KeySet中,否则根据相应条件构建ContextInfo并将其插入ContextInfoList中,为下一步的键识别做准备;
MRPKeyFinder算法实现的伪代码如下:
算法4  MRPKeyFinder
输入:ContextInfoList,outputPath, Parallelism
输出:键集合KeySet
1)        while ContextInfoList 不为空 do
2)               将ContextInfoList的第一个元素赋值给info
3)               AttrNumber=info.Attr.size()//AttrNumber为info.Attr的元素个数
4)               for i=0 to AttrNumber
5)                      curKey=info.curKey+ ","+info.Attr.get(i)
6)                      IsRedundantKey=CheckRedundant(curKey)
7)                      if IsRedundantKey==false then
8)                             curKeyList.add(curKey)
9)                             AttrList.add(info.Attr.get(i))
10)                  end if
11)           end for
12)           if AttrList 不为空 then
13)                  /*构建输出路径,OutFolderIndex初始为0 */
14)                  ChildOutPutPath= outputPath +OutFolderIndex 
15)                  if  Parallelism=0 then
16)                         MRPCheckKey(AttrList,info.Path, ChildOutPutPath)
17)                  else
18)                         Time=1
19)                         for i=0 to AttrList.size()
20)                                if i < Parallelism*Time then
21)                                       newList.add(AttrList [i])
22)                                else
23)                                       MRPCheckKey(AttrList,info.Path, ChildOutPutPath)
24)                                       Time++;
25)                                       newList.clear()
26)                                end if
27)                         end for
28)                  end if
29)                  for each curKey in curKeyList
30)                         if curKey 是键 then   /*与curKey对应的文件不存在,则为键*/
31)                                KeySet.Add(curKey)
32)                         else
33)                                Path=ChildOutPutPath+"/"+ curKey
34)                         for j=i+1 to AttrNumber
35)                                newAttr.add(info.Attr.get(j))
36)                         end for
37)                         利用Path、curKey和newAttr构建新的ContextInfo节点newinfo
38)                         将newinfo添加到ContextInfoList
39)                  end if
40)           end for
41)           OutFolderIndex++
42)    end if
43)           从ContextInfoList中移除info
44)    end while
45)    return KeySet
算法结束
下面以表1所示的数据表为例来演示算法的执行过程:
表1 关系Student
Figure 2014101104417100002DEST_PATH_IMAGE010
算法开始执行时,ContextInfoList中只有一个ContextInfo节点,该节点的数据集dt为表1中的数据集,curKey为空,Attr为{Name, Major, Grade, StudentID},KeySet为空。在MRPKeyFinder算法中,每个属性集合进行键判别的数据集是由info.Path所存储的路径指定的。MRPKeyFinder算法的执行过程如下:
①      、info={Path1,{},{Name,Major,Grade,StudentID}}, Path1为表1中的数据集所在的路径。根据info依次构建{Name}、{Major}、{Grade}、{StudentID}进行键识别,{Name}、{Major}、{Grade}都不是键,{StudentID}是键。在对{Name}、{Major}、{Grade}进行键识别的过程中,对Path1中的数据集进行修剪分别得到表2-1、表2-2、表2-3所示的数据集;分别构建{ Path2,{Name},{Major,Grade,StudentID}}、{ Path3,{Major},{Grade,StudentID}}、{ Path4,{Grade},{StudentID}}等三个ContextInfo节点,并添加到ContextInfoList中,其中,Path2、Path3、Path4三个路径表示的数据集分别为表2-1、表2-2、表2-3中的数据集。从ContextInfoList中移除info,此时ContextInfoList含有三个元素。
表2-1数据集修剪结果1 
Figure 2014101104417100002DEST_PATH_IMAGE012
表2-2数据集修剪结果2
Figure 2014101104417100002DEST_PATH_IMAGE014
表2-3数据集修剪结果3
Figure 2014101104417100002DEST_PATH_IMAGE016
②、info={ Path2,{Name},{Major, Grade, StudentID}}。根据info依次构建{Name, Major}、{Name,Grade}、{Name, StudentID}进行键识别,{Name, Major}不是键,{Name,Grade}是键,{Name, StudentID}是冗余键。在对{Name, Major}进行键识别的过程中,对Path2进行修剪得到表2-4所示的数据集,同时构建ContextInfo节点{ Path5,{Name, Major},{Grade, StudentID}}并添加到ContextInfoList中,其中Path5为表2-4中的数据集。从ContextInfoList中移除info,此时ContextInfoList含有三个元素。
  
表2-4数据集修剪结果4
Figure 2014101104417100002DEST_PATH_IMAGE018
③、info={ Path3,{Major},{Grade, StudentID}}。根据info依次构建{Major, Grade}、{Major, StudentID}进行键识别,{Major, Grade}是键,{Major, StudentID}是冗余键。从ContextInfoList中移除info,此时ContextInfoList含有两个元素。
④、info={ Path4,{ Grade },{StudentID}}。根据info构建{Grade, StudentID}进行键识别,{Grade, StudentID}是冗余键。从ContextInfoList中移除info,此时ContextInfoList含有一个元素。 
⑤、info={ Path5,{Name, Major},{Grade, StudentID}}。根据info依次构建{Name, Major ,Grade}、{Name, Major , StudentID}进行键识别,{Name, Major ,Grade}、{Name, Major , StudentID}都是冗余键。从ContextInfoList中移除info,此时ContextInfoList为空,算法执行结束。 
⑥、PKeyFinder算法在表1所示的数据集中识别出的键集合KeySet为{{StudentID},{Name,Grade},{Major, Grade}}。 

Claims (1)

1.基于Hadoop的关系表非冗余键集合识别方法,其特征在于该方法包括如下步骤:
第1、识别数据中的键集合
第1.1、使用投影统计方法判断一个属性集合是否是键,
定义1:键:键是数据表中唯一标识一条数据记录的属性或属性集合;在数据表中,不存在两条数据记录构成键的所有属性值都相同;
第1.1.1、投影操作:将数据表在属性集合K进行投影得到数据集合S;
第1.1.2、统计操作:统计投影后集合S中每一条数据在S中出现的次数,如果每一条数据都只出现过一次,则说明属性集合K是键,否则,K不是键;
第1.2、对冗余的属性集进行修剪,
定义2:冗余键:除了包含键的所有属性之外,还含有关系中的其它属性的属性集合;
第1.2.1、基于启发式规则:如果一个属性集合是某个键的超集,那么这个属性集合是一个冗余键;根据启发式规则可以对需要进行键判别的属性集合进行修剪,避免对冗余键的投影统计操作;
第1.2.2、对于键所组成的集合KeySet中的每一个非冗余键key,如果待判定属性集合CandidateKey包含任意一个key,则说明CandidateKey是冗余的键;
第1.3、对数据集进行修剪,
在对某一个CandidateKey判别结束后,可以先对数据集进行修剪,去除数据表中执行投影统计操作后统计结果count域为1的数据记录,从而可以降低数据集的规模,降低键识别过程中的计算代价;
第2、基于Hadoop的键集合识别算法
    含数据修剪的分布式非冗余键集合识别算法:MRPKeyFinder;该算法的主要内容是:在属性集修剪操作及数据集合修剪操作的基础之上,基于Hadoop平台同时对属性集合树中每一个节点的子节点进行键判别;
    定义3:属性集合树:一种用于表示属性集合之间包含关系的树形结构;
    属性集合树中的每一个节点都是关系表中的属性所组成的集合,树中每一个节点所表示的集合都是这个节点的子节点表示的集合的子集,位于同一层的节点所表示的集合具有相同的阶数,即集合具有相同的元素数; 
本发明主要利用属性集修剪操作及数据修剪操作对BruteForce算法进行改进,并在此基础上提出了分布式键集合识别算法MRPKeyFinder;由于将数据集在属性集合K上进行投影的计算过程中,数据集中的每一条记录在K上进行投影的过程是相互独立、互不影响的,所以可以将数据集的投影过程并行执行;因此,MRKeyFinder将属性集合树中同一层的属性集合的判别过程并行执行,从而可以在不影响程序正确性的基础上很大程度上提高程序的执行效率; 
第2.1、键判别算法MRPCheckKey用来验证一个属性集合是否是键;MRPCheckKey采用KeyValueTextInputFormat的作业输入方式,key与value以“|”作为分隔符;该算法由一个Mapper类和一个Reducer类组成;
第2.1.1、Mapper 类根据传入的属性列表,对输入数据进行投影:在Map任务中解析出AttrList,对于AttrList中的每一个Attr,根据传入的<key,value>及Attr拼接出输出的key,将输出的value设置为输入的value,输出到 Reduce;
第2.1.2、Reducer 类对投影记录进行分组聚集,并根据聚集结果进行相应的输出:在 Reduce中,对于传入的<key,value-list>,如果value-list不止含有一个value,则遍历value-list,对于value-list的每一个value,将<key,value>输出到与该key对应的文件中;
第2.2、MRPKeyFinder算法中定义如下数据结构用以保存上下文信息:
ContextInfo {
             String Path;
             String curKey;
             ArrayList<int> Attr;
}
    其中,Path为数据集文件路径,curKey为属性ID拼接成的字符串,Attr为属性ID集合;此外,MRPKeyFinder算法中定义变量Parallelism,用以指示允许同时进行键判别的属性集合的最大个数,该参数是为了防止内存空间不足而设置的;
假设算法执行到对属性集合树第m层的属性集合集A[A1,A2,…An]进行键判别,其中Ai 是第m层中的第i个属性集合, curKeyList表示待验证的属性集合所组成的列表,MRPKeyFinder算法的执行流程如下:
①、首先遍历A,对A i 进行冗余键判别,如果A i 不是冗余键,则将A i 插入curKeyList中,否则对以A i 为根的子树进行剪枝;
②、遍历完A后,将curKeyList传递给MapReduce化的键判别算法MRCheckKey,同时对curKeyList中的所有属性集合进行键判别,并在判别的过程中进行数据剪枝;
③、判别结束后,遍历curKeyList,对于curKeyList中的每一个A i ,根据MRCheckKey算法的输出判断A i 是否是键,如果A i 是键,则将A i 插入KeySet中,并对以A i 为根的子树进行剪枝;
④、遍历curKeyList结束后,进入对下一层属性集合集的键判别过程。
CN201410110441.7A 2014-03-24 2014-03-24 基于Hadoop的关系表非冗余键集合识别方法 Pending CN103853844A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410110441.7A CN103853844A (zh) 2014-03-24 2014-03-24 基于Hadoop的关系表非冗余键集合识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410110441.7A CN103853844A (zh) 2014-03-24 2014-03-24 基于Hadoop的关系表非冗余键集合识别方法

Publications (1)

Publication Number Publication Date
CN103853844A true CN103853844A (zh) 2014-06-11

Family

ID=50861499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410110441.7A Pending CN103853844A (zh) 2014-03-24 2014-03-24 基于Hadoop的关系表非冗余键集合识别方法

Country Status (1)

Country Link
CN (1) CN103853844A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462222A (zh) * 2014-11-11 2015-03-25 安徽四创电子股份有限公司 一种卡口车辆通行数据的分布式存储方法及系统
CN107301094A (zh) * 2017-05-10 2017-10-27 南开大学 面向大规模动态事务查询的动态自适应数据模型
CN109388636A (zh) * 2017-08-11 2019-02-26 中国移动通信集团重庆有限公司 业务数据插入数据库方法、装置、计算机设备及存储介质
CN110147354A (zh) * 2019-04-19 2019-08-20 平安科技(深圳)有限公司 批量数据编辑方法、装置、计算机设备及存储介质
WO2021143055A1 (zh) * 2020-01-19 2021-07-22 平安科技(深圳)有限公司 智能化的数据优化方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402590A (zh) * 2011-10-31 2012-04-04 深圳中兴力维技术有限公司 一种键值数据管理方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402590A (zh) * 2011-10-31 2012-04-04 深圳中兴力维技术有限公司 一种键值数据管理方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
曾理: ""Hadoop的重复数据清理模型研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
莫云音: ""基于Hadoop的关系表非冗余键集合识别技术研究"", 《万方学术期刊数据库》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462222A (zh) * 2014-11-11 2015-03-25 安徽四创电子股份有限公司 一种卡口车辆通行数据的分布式存储方法及系统
CN107301094A (zh) * 2017-05-10 2017-10-27 南开大学 面向大规模动态事务查询的动态自适应数据模型
CN109388636A (zh) * 2017-08-11 2019-02-26 中国移动通信集团重庆有限公司 业务数据插入数据库方法、装置、计算机设备及存储介质
CN110147354A (zh) * 2019-04-19 2019-08-20 平安科技(深圳)有限公司 批量数据编辑方法、装置、计算机设备及存储介质
CN110147354B (zh) * 2019-04-19 2023-06-02 平安科技(深圳)有限公司 批量数据编辑方法、装置、计算机设备及存储介质
WO2021143055A1 (zh) * 2020-01-19 2021-07-22 平安科技(深圳)有限公司 智能化的数据优化方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
Addo-Tenkorang et al. Big data applications in operations/supply-chain management: A literature review
US9773029B2 (en) Generation of a data model
CN106980669B (zh) 一种数据的存储、获取方法及装置
Mukherjee et al. A comparative review of data warehousing ETL tools with new trends and industry insight
US20110302168A1 (en) Graphical models for representing text documents for computer analysis
CN105550268A (zh) 大数据流程建模分析引擎
CN103853844A (zh) 基于Hadoop的关系表非冗余键集合识别方法
CN102033748A (zh) 一种数据处理流程代码的生成方法
CN102915365A (zh) 基于Hadoop的分布式搜索引擎构建方法
CN104573124A (zh) 一种基于并行化关联规则算法的教育云应用统计方法
Rousseau A view on big data and its relation to Informetrics
CN103678436A (zh) 信息处理系统和信息处理方法
CN104133891B (zh) 一种基于关系型数据库的海量结构化数据的存储方法
Savitha et al. Mining of web server logs in a distributed cluster using big data technologies
Mostajabi et al. A systematic review of data models for the big data problem
CN106445645B (zh) 用于执行分布式计算任务的方法和装置
Hashem et al. An Integrative Modeling of BigData Processing.
Potey et al. Database migration from structured database to non-structured database
Singh et al. Spatial data analysis with ArcGIS and MapReduce
Zhang et al. Research on cloud computing and its application in big data processing of distance higher education.
Arora et al. Big data: A review of analytics methods & techniques
Mandal et al. Architecture of efficient word processing using Hadoop MapReduce for big data applications
CN108052507A (zh) 一种城市管理信息舆情分析系统及方法
Loni et al. Crowdsourcing for Social Multimedia at MediaEval 2013: Challenges, Data set, and Evaluation.
Mishra et al. Challenges in big data application: a review

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140611

WD01 Invention patent application deemed withdrawn after publication