CN104408159A - 一种数据关联、加载、查询方法及装置 - Google Patents

一种数据关联、加载、查询方法及装置 Download PDF

Info

Publication number
CN104408159A
CN104408159A CN201410734165.1A CN201410734165A CN104408159A CN 104408159 A CN104408159 A CN 104408159A CN 201410734165 A CN201410734165 A CN 201410734165A CN 104408159 A CN104408159 A CN 104408159A
Authority
CN
China
Prior art keywords
data
objects
association
data objects
hbase
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.)
Granted
Application number
CN201410734165.1A
Other languages
English (en)
Other versions
CN104408159B (zh
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.)
Shuguang Information Industry Henan Co ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
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 Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN201410734165.1A priority Critical patent/CN104408159B/zh
Publication of CN104408159A publication Critical patent/CN104408159A/zh
Application granted granted Critical
Publication of CN104408159B publication Critical patent/CN104408159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/325Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing

Landscapes

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

Abstract

本发明提供了一种数据关联、加载、查询方法及装置,方法包括如下步骤确定需要关联的两个数据对象,将两个数据对象中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一数据对象中的每条记录生成对应的key值,通过对key值进行哈希Hash确定每条记录是否与内存中的key值关联;当存在关联时,将所有存在关联的记录作为新数据对象输出;将关联后的新数据对象加载到Hadoop平台的指定组件上;当接收到查询请求时,根据查询字段在关联后的新数据对象中进行查找并返回查询结果;本发明所提供的技术方案,优化了数据对象关联机制,进而提高了系统的关联查询效率。

Description

一种数据关联、加载、查询方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据关联、加载、查询方法及装置。
背景技术
在关系数据库系统中对于表与表之间连接(join)操作已经有很多的优化,同样在通用的大数据系统中,对于多个非结构化/半结构化数据对象通过关联加载的方式导入到Hadoop平台上(分布式文件系统HDFS,HBase,Hive等等)作进一步分析处理,同样需要一种机制来支持。
目前,现有的技术可以直接借助于关系数据库引擎,通过数据库内建的join的相关机制和优化,来实现对数据对象的关联。
现有技术不足在于:
现有的大数据对象的关联主要依赖于一些关系数据库的查询引擎,当数据量急剧增大的条件下,系统的关联查询性能存在明显的瓶颈。而采用NoSQL型的数据库,由于设计的特性,大部分也无法完美的支持数据对象的关联。
发明内容
本发明实施例提出了一种数据关联、加载、查询方法及装置,解决了现有技术中的关系数据库无法完美支持大数据对象关联的技术问题。
本发明实施例提供了一种数据关联方法,包括如下步骤:
确定需要关联的两个数据对象;
将两个数据对象中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一数据对象中的每条记录生成对应的key值,通过对key值进行哈希Hash确定每条记录是否与内存中的key值关联;
当存在关联时,将所有存在关联的记录作为关联后的新数据对象输出。
本发明实施例提供了一种数据关联装置,包括:
确定模块,用于确定需要关联的两个数据对象;
预处理模块,用于将两个数据对象中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一数据对象中的每条记录生成对应的key值,通过对key值进行哈希Hash确定每条记录是否与内存中的key值关联;
关联模块,用于当存在关联时,将所有存在关联的记录作为关联后的新数据对象输出。
本发明实施例所提供的技术方案,当两个数据对象需要关联时,首先将其中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一个数据对象的每一条记录生成对应的key值,判断另一个数据对象的每条记录是否与内存中的key值关联,如果关联则作为新数据对象输出,本发明实施例通过优化数据对象关联机制,只将数据对象的关联限定为两个数据对象之间进行,从而可以提高后续关联查询、加载的效率。
本发明实施例提供了一种对利用上述方法关联的数据进行加载的方法,包括如下步骤:
接收关联后的新数据对象;
对于小数据对象关联后的新数据对象,根据新数据对象的模式设置Hadoop平台上指定组件的存储模式,将新数据对象通过指定组件的加载接口加载到指定组件上;
对于其中一个是大数据对象的两个数据对象关联后的新数据对象,直接存储于HDFS上,当需要加载到HBase时,根据新数据对象的模式设置HBase组件的存储模式,利用HBase组件的接口导入到HBase中;当需要加载到Hive时,根据新数据对象的模式建立外部表,并将数据对象映射到表上;
对于含有分区信息的新数据对象,在HDFS上定义二级分区;在Hive上建立外部表并将该数据对象映射到表上;在HBase上设置表模式后建立与Hash数量对等的表,将HDFS上的数据通过HBase组件的接口导入到HBase中。
本发明实施例提供了一种对利用上述装置关联的数据进行加载的装置,包括:
接收模块,用于接收关联后的新数据对象;
第一加载模块,用于根据新数据对象的模式设置Hadoop平台上指定组件的存储模式,将小数据对象关联后的新数据对象通过指定组件的加载接口加载到指定组件上;
第二加载模块,用于将其中一个是大数据对象的两个数据对象关联后的新数据对象,直接存储于HDFS上;当需要将其加载到HBase时,根据新数据对象的模式设置HBase的存储模式,利用HBase组件的接口导入到HBase中;当需要将其加载到Hive时,根据新数据对象的模式建立外部表,并将数据对象映射到表上;
第三加载模块,用于为含有分区信息的新数据对象,在HDFS上定义二级分区;在Hive上建立外部表并将该数据对象映射到表上;在HBase上设置表模式后建立与Hash数量对等的表,将HDFS上的数据通过HBase组件的接口导入到HBase中。
由于本发明实施例中的数据采用上述关联方式进行关联,对这种方式关联的数据进行加载,数据对象的关联仅限于两个数据对象之间,采用这种方式进行将关联后的数据对象加载到指定的Hadoop平台的组件上,可以在一定程序上提高加载的效率。
本发明实施例提供了一种对利用上述方法关联的数据进行查询的方法,包括如下步骤:
接收查询请求,请求中包括查询字段;
根据查询字段在关联后的新数据对象中查找并返回查询结果。
本发明实施例提供了一种对利用上述装置关联的数据进行查询的装置,包括:
查询接口,用于接收查询请求,请求中包括查询字段;
查询执行模块,用于根据查询字段在关联后的新数据对象中查找并返回查询结果。
由于本发明实施例中的数据采用上述关联方式进行关联,对这种方式关联的数据进行查询,根据查询字段可以在关联后的新数据对象中进行查找,采用这种方式进行查询,由于关联的数据对象为两个数据对象,不存在多个数据对象之间的关联,从而可以方便快捷的查找到相关联的数据。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了本发明实施例中数据关联方法实施的流程示意图;
图2示出了本发明实施例中对象关联的流程示意图;
图3示出了本发明实施例中对象关联的另一流程示意图;
图4示出了本发明实施例中数据加载方法实施的流程示意图;
图5示出了本发明实施例中数据查询方法实施的流程示意图;
图6示出了本发明实施例中数据关联装置的结构示意图;
图7示出了本发明实施例中数据加载装置的结构示意图;
图8示出了本发明实施例中数据查询装置的结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
本发明实施例提出了一种数据关联、查询、加载方法及装置。下面进行说明。
图1示出了本发明实施例中数据关联方法实施的流程示意图,如图所示,该方法可以包括如下步骤:
步骤101、确定需要关联的两个数据对象;
步骤102、将两个数据对象中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一数据对象中的每条记录生成对应的key值,通过对key值进行哈希Hash确定每条记录是否与内存中的key值关联;
步骤103、当存在关联时,将所有存在关联的记录作为关联后的新数据对象输出。
本发明实施例中当两个数据对象需要关联时,首先将其中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一个数据对象的每一条记录生成对应的key值,判断另一个数据对象的每条记录是否与内存中的key值关联,如果关联则作为新数据对象输出,本发明实施例通过优化数据对象关联机制,只将数据对象的关联限定为两个数据对象之间进行,从而可以提高后续关联查询、加载的效率。
其中,数据量可以以数据对象的文件大小、数据记录数等参数作为参考,数据量较小可以指数据对象的文件较小,也可以指数据记录数较少,本领域技术人员还可以以其他参数作为数据量参考依据,本发明对此不作限制。
图2示出了本发明实施例中对象关联的流程示意图,如图所示,包括:
步骤201、判断是否为较小的数据对象,
如果是,则执行步骤202;
如果不是,则执行步骤203;
步骤202、将该数据对象以(key,value)方式放入内存中;
步骤203、读取该数据对象的记录;
步骤204、对存在key对应关系的记录进行合并。
具体实施中,可以首先确定需要两个数据对象关联的字段,作为key,对于key存在以下两种情况:
1)key为两个数据对象中都存在的某个字段;
2)key为两个数据对象中需要组合的字段。
在关联时,将较小的数据对象以(key,value)方式放入内存中,key为关联字段的值。如果两个数据对象存在组合关联字段,则将相应的字段值组合在一起后作为key值,而value则可以是该数据对象在关联后的新数据对象中存在的字段或者字段组合的值。
在判断是否存在关联时,对于左连接、右连接,则需要对相应的数据对象进行扫描一次,将标记为未关联的记录输出,即完成半外连接;而对于全连接则需要对两个数据对象均做一次扫描,将所有未标记的记录输出。
其中,左连接和右连接都是外部连接,也即,区别于内部连接,外部连接对不关联的记录并不是像内部连接那样完全过滤掉,而是保留一部分记录(对于左连接来说,左边表的数据必显示;对于右连接来说,右边表的数据必显示),数据对象的记录行数不会减少。
实施中,可以进一步包括:
将所有数据对象根据预设的判断阈值分成大数据对象和小数据对象。
本发明实施例中,为了提高数据对象关联的效率,将数据对象分为大数据对象和小数据对象,以选择不同的关联策略,通过分类后可能存在以下场景:小数据对象之间的关联、小数据对象与大数据对象之间的关联和大数据对象之间的关联。
其中,分类的标准可以以数据对象的文件大小、数据记录数等作为参考,还可以进一步根据设备的硬件环境,如内存的大小等,设定一个判断阈值。对于大于该阈值的数据对象,即认为是大数据对象;小于该阈值的数据对象,即认为是小数据对象。
实施中,当需要关联的两个数据对象均为小数据对象时,可以直接采用图1所示的步骤进行关联。
实施中,当需要关联的两个数据对象中有一个是大数据对象时,可以包括:
将需要关联的大数据对象加载到分布式文件系统HDFS上,将小数据对象通过分布式缓存(DistributedCache)机制在Map开始前传至内存中,在Map执行过程中将大数据对象与内存中的小数据对象进行关联;
图3示出了本发明实施例中对象关联的另一流程示意图,如图所示,包括:
假设数据对象1为大数据对象、数据对象2为小数据对象,将数据对象1加载到HDFS上(图3中假设大数据对象文件切割为多个输入分片),在Map开始前将数据对象2通过Distributed Cache机制传至内存;在Map执行过程中,通过多个映射器Mapper将数据对象1和数据对象2进行关联,最终生成关联的记录作为新数据对象中的一部分输出,也即图中所示的输出部分。
本发明实施例中,对于其中一个是大数据对象的两个数据对象关联,可以采用复制关联(Replicated Join)策略将数据对象关联加载到Hadoop平台上。本发明实施例在上述Map执行过程中所有TaskTracker节点上的大数据对象与内存中的小数据对象进行关联,得到的结果即可以为最终的结果,由于没有Reduce阶段,可以降低数据在节点之间传输的网络带宽负载,同时充分利用了内存,提高了关联效率。
实施中,当需要关联的两个数据对象均为大数据对象时,可以包括:
将其中一个大数据对象通过哈希函数分解为多个小数据对象,将Hash后的小数据对象和需要关联的大数据对象写入HDFS上,以大数据对象与每个小数据对象之间的关联方式进行关联,每个关联的结果所产生在HDFS上的输出的组合对应于二级分区目录。
本发明实施例对于都是大数据对象的关联处理可以采用分治的策略,也即,将大数据对象以数据对象的key值为键分解成多个小数据对象,然后按照大数据对象与小数据对象之间的关联过程分别得到新数据对象的部分结果集文件,统一在某一个采用Hash分区的目录下面,例如:/Obj/Hash_1,形成新数据对象。
实施中,可以进一步包括:
当多个数据对象需要关联时,根据关联字段将多个对象之间的关联分解为每两个对象之间的多次关联。
本发明实施例所提供的技术方案,通过借鉴在关系型数据库里面进行表关联的方式,将多个数据对象之间的关联分解为两个数据对象之间的多次关联过程,优化了数据对象关联机制,提高了数据关联、查询的效率。
下面对本发明实施例中将多个数据对象之间的关联分解为两个数据对象之间的多次关联过程,举例如下:
多个数据对象之间的关联为:
Data A Join Data B Join Data C On A.id=B.id and B.name=C.name
将上述关联需要分解为每两个数据对象之间的多次关联,拆分后如下:
Data A Join Data B On A.id=B.id;
Data AB Join Data C 0n AB.name=C.name。
图4示出了本发明实施例中对利用上述关联方法关联的数据进行加载的方法(可以简称为数据加载方法)实施的流程示意图,如图所示,方法可以包括:
步骤401、接收关联后的新数据对象;
步骤402、对于小数据对象关联后的新数据对象,根据新数据对象的模式设置Hadoop平台上指定组件的存储模式,将新数据对象通过指定组件的加载接口加载到指定组件上;
步骤403、对于其中一个是大数据对象的两个数据对象关联后的新数据对象,直接存储于HDFS上;当需要加载到HBase时,根据新数据对象的模式设置生成HBase的存储模式,再利用HBase组件的接口导入到HBase中;当需要加载到Hive时,根据新数据对象的模式建立外部表,并将数据对象映射到表上;
步骤404、对于含有分区信息的新数据对象,在HDFS上定义二级分区;在Hive上建立外部表并将该数据对象映射到表上;在HBase上设置表模式后建立与Hash数量对等的表,将HDFS上的数据通过HBase组件的接口导入到HBase中。
本发明实施例在对新数据对象加载到HDFS时,根据不同数据对象的关联策略进行关联后,按照上述不同加载策略进行加载。
对于小数据对象关联后的产生的每条记录,根据它的数据存储平台,直接使用其加载接口,如HDFS的加载接口,HBase的Put接口等,直接将数据加载到新的存储平台。此处需要根据新数据对象的schema设计好在Hadoop平台存储模式,在HDFS上需要考虑目录,文件名,字段分隔符,文件格式,压缩模式;在HBase上,则需要设计表的模式,表名(=对象名),列簇,Rowkey(=Key);在Hive上,同样需要建立相应的外部表的模式,表名,属性名,属性数据类型,指向文件路径。
对于含有大数据对象的加载策略,由于采用MapReduce策略,需要将原数据对象先导入到HDFS上,然后,生成的新数据对象将直接存储在HDFS上,如果需要将数据导入到HBase,则需要根据新数据对象的schema生成HBase的表名,列簇名,Rowkey,再使用Import接口将数据导入的HDFS的文件数据导入到HBase中;如果需要将数据导入Hive,则根据新数据对象的模式,建立好相应的外部表,将文件映射到表上。
对于含有分区信息的数据对象,在HDFS上,则按照上面描述的规则定义成某种二级分区的形成;在Hive上,则需要建立外部表,并指定partition规则;在HBase上,需要设计表的模式,然后建立与Hash数量对等的表,将对应在HDFS上的数据通过Importtsv接口导入进来。
本发明实施例在每一次关联加载完成后,可以进行数据统计并返回统计结果,其中涉及的统计数据可以包括:
1、关联加载完成的最终结果(成功/失败);
2、关联加载数据记录数及其所占的比重;
3、关联加载所用的时间、平均加载速度等。
本发明实施例还可以进一步将上述统计结果写入相关的日志文件,便于后续使用、查阅等。
图5示出了本发明实施例中对利用上述关联方法关联的数据进行查询的方法(可以简称为数据查询方法)实施的流程示意图,如图所示,方法可以包括:
步骤501、接收查询请求,请求中包括查询字段;
步骤502、根据查询字段在关联后的新数据对象中查找并返回查询结果。
由于本发明实施例中的数据采用上述关联方式进行关联,对这种方式关联的数据进行查询,根据查询字段在关联后的新数据对象中进行查找,采用这种方式进行查询,由于关联的数据对象为两个数据对象,不存在多个数据对象之间的关联,从而可以方便快捷的查找到相关联的数据记录,并返回查询结果。
基于同一发明构思,本发明实施例中还提供了一种数据关联装置、数据查询装置、数据加载装置,由于这些设备解决问题的原理与一种数据关联方法、数据查询方法、数据加载方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
图6示出了本发明实施例提供的数据关联装置的结构示意图,如图所示,装置可以包括:
确定模块601,用于确定需要关联的两个数据对象;
预处理模块602,用于将两个数据对象中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一数据对象中的每条记录生成对应的key值,通过对key值进行哈希Hash判断每条记录是否与内存中的key值关联;
关联模块603,用于当存在关联时,将所有存在关联的记录作为关联后的新数据对象输出。
实施中,可以进一步包括:
划分模块,用于将所有数据对象根据预设的判断阈值分成大数据对象和小数据对象。
实施中,预处理模块602可以用于当需要关联的两个数据对象中有一个是大数据对象时,将需要关联的大数据对象加载到分HDFS上,将小数据对象通过DistributedCache机制在Map开始前传至内存中;关联模块603可以用于在Map执行过程中将大数据对象与内存中的小数据对象进行关联;
预处理模块602可以用于当需要关联的两个数据对象均为大数据对象时,将其中一个大数据对象通过哈希函数分解为多个小数据对象,将Hash后的小数据对象和需要关联的大数据对象写入HDFS上,以大数据对象与每个小数据对象之间的关联方式进行关联;关联模块603可以用于将每个关联的结果所产生在HDFS上的输出的组合对应于二级分区目录。
实施中,可以进一步包括:
分解模块,用于当多个数据对象需要关联时,根据关联字段将多个对象之间的关联分解为每两个对象之间的多次关联。
图7示出了本发明实施例中对利用上述关联装置关联的数据进行加载的装置(可以简称为数据加载装置),如图所示,数据加载装置可以包括:
接收模块701,用于接收关联后的新数据对象;
第一加载模块702,用于根据新数据对象的模式设置Hadoop平台上指定组件的存储模式,将小数据对象关联后的新数据对象通过指定组件的加载接口加载到指定组件上;
第二加载模块703,用于将其中一个是大数据对象的两个数据对象关联后的新数据对象,直接存储于HDFS上;当需要将新数据对象加载到HBase时,根据新数据对象的模式设置HBase组件的存储模式,利用HBase组件的接口导入到HBase中;当需要将新数据对象加载到Hive时,根据新数据对象的模式建立外部表,并将数据对象映射到表上;
第三加载模块704,用于为含有分区信息的新数据对象,在HDFS上定义二级分区;在Hive上建立外部表并将该数据对象映射到表上;在HBase上设置表模式后建立与Hash数量对等的表,将HDFS上的数据通过HBase组件的接口导入到HBase中。
图8示出了本发明实施例中对利用上述关联装置关联的数据进行查询的装置(可以简称为数据查询装置),如图所示,数据查询装置可以包括:
查询接口801,用于接收查询请求,请求中包括查询字段;
查询执行模块802,用于根据查询字段在关联后的新数据对象中查找并返回查询结果。
上述实施例中,均可以采用现有的功能元器件模块来实施。例如,确定模块可以为任意一个具备数据确定功能的设备都具备的元器件;预处理模块则是任意一个具备数据处理功能的设备都具备的元器件,至少,现有数据处理技术中采用的服务器上便具备实现该功能元器件;至于关联模块,则是任意一个具备数据关联功能的设备都具备的元器件;划分模块可以为任意一个具备数据区分功能的设备都具备的元器件;分解模块则是任意一个具备关联分解功能的设备都具备的元器件,本领域技术人员经过相应的设计开发即可实现;同时,查询模块可以是任意一个具备查询功能都具备的元器件;接收模块可以是任意一个具备数据接收功能的设备都具备的元器件;加载模块采用的数据加载手段军可以采用现有的方式,本领域技术人员经过相应的设计开发即可实现。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本发明实施例所提供的技术方案,可以在数据量比较大(100TB级以上)的情况下,将多个数据对象更有效率的加载到Hadoop平台上,解决了现有技术中在数据量急剧增大的情况下出现的关联查询性能存在瓶颈等技术问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

Claims (12)

1.一种数据关联方法,其特征在于,包括如下步骤:
确定需要关联的两个数据对象;
将两个数据对象中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一数据对象中的每条记录生成对应的key值,通过对key值进行哈希Hash确定每条记录是否与内存中的key值关联;
当存在关联时,将所有存在关联的记录作为关联后的新数据对象输出。
2.如权利要求1所述的方法,其特征在于,进一步包括:
将所有数据对象根据预设的判断阈值分成大数据对象和小数据对象。
3.如权利要求2所述的方法,其特征在于,
当需要关联的两个数据对象中有一个是大数据对象时,包括:
将需要关联的大数据对象加载到分布式文件系统HDFS上,将小数据对象通过分布式缓存DistributedCache机制在Map开始前传至内存中,在Map执行过程中将大数据对象与内存中的小数据对象进行关联;
当需要关联的两个数据对象均为大数据对象时,包括:
将其中一个大数据对象通过哈希函数分解为多个小数据对象,将Hash后的小数据对象和需要关联的大数据对象写入HDFS上,以大数据对象与每个小数据对象之间的关联方式进行关联,每个关联的结果所产生在HDFS上的输出的组合对应于二级分区目录。
4.如权利要求1所述的方法,其特征在于,进一步包括:
当多个数据对象需要关联时,根据关联字段将多个对象之间的关联分解为每两个对象之间的多次关联。
5.一种对利用如权利要求1至4任一所述方法关联的数据进行加载的方法,其特征在于,包括:
接收关联后的新数据对象;
对于小数据对象关联后的新数据对象,根据新数据对象的模式设置Hadoop平台上指定组件的存储模式,将所述新数据对象通过所述指定组件的加载接口加载到指定组件上;
对于其中一个是大数据对象的两个数据对象关联后的新数据对象,直接存储于HDFS上;当需要加载到HBase时,根据新数据对象的模式设置HBase组件的存储模式,利用HBase组件的接口导入到HBase中;当需要加载到Hive时,根据新数据对象的模式建立外部表,并将该数据对象映射到表上;
对于含有分区信息的新数据对象,在HDFS上定义二级分区;在Hive上建立外部表并将该数据对象映射到表上;在HBase上设置表模式后建立与Hash数量对等的表,将HDFS上的数据通过HBase组件的接口导入到HBase中。
6.一种对利用如权利要求1至4任一所述方法关联的数据进行查询的方法,其特征在于,包括:
接收查询请求,所述请求中包括查询字段;
根据所述查询字段在所述关联后的新数据对象中查找并返回查询结果。
7.一种数据关联装置,其特征在于,包括:
确定模块,用于确定需要关联的两个数据对象;
预处理模块,用于将两个数据对象中数据量较小的数据对象以(key,value)方式放入内存的类Hashtable结构中,对另一数据对象中的每条记录生成对应的key值,通过对key值进行哈希Hash确定每条记录是否与内存中的key值关联;
关联模块,用于当存在关联时,将所有存在关联的记录作为关联后的新数据对象输出。
8.如权利要求7所述的装置,其特征在于,进一步包括:
划分模块,用于将所有数据对象根据预设的判断阈值分成大数据对象和小数据对象。
9.如权利要求8所述的装置,其特征在于,所述预处理模块用于当需要关联的两个数据对象中有一个是大数据对象时,将需要关联的大数据对象加载到分HDFS上,将小数据对象通过DistributedCache机制在Map开始前传至内存中;所述关联模块用于在Map执行过程中将大数据对象与内存中的小数据对象进行关联;
所述预处理模块用于当需要关联的两个数据对象均为大数据对象时,将其中一个大数据对象通过哈希函数分解为多个小数据对象,将Hash后的小数据对象和需要关联的大数据对象写入HDFS上,以大数据对象与每个小数据对象之间的关联方式进行关联;所述关联模块用于将每个关联的结果所产生在HDFS上的输出的组合对应于二级分区目录。
10.如权利要求7所述的装置,其特征在于,进一步包括:
分解模块,用于当多个数据对象需要关联时,根据关联字段将多个对象之间的关联分解为每两个对象之间的多次关联。
11.一种对利用如权利要求7至10任一所述装置关联的数据进行加载的装置,其特征在于,包括:
接收模块,用于接收关联后的新数据对象;
第一加载模块,用于根据新数据对象的模式设置Hadoop平台上指定组件的存储模式,将小数据对象关联后的新数据对象通过指定组件的加载接口加载到所述指定组件上;
第二加载模块,用于将其中一个是大数据对象的两个数据对象关联后的新数据对象,直接存储于HDFS上;当需要将其加载到HBase时,根据新数据对象的模式设置HBase组件的存储模式,利用HBase组件的接口导入到HBase中;当需要将其加载到Hive时,根据新数据对象的模式建立外部表,并将该数据对象映射到表上;
第三加载模块,用于为含有分区信息的新数据对象,在HDFS上定义二级分区;在Hive上建立外部表并将该数据对象映射到表上;在HBase上设置表模式后建立与Hash数量对等的表,将HDFS上的数据通过HBase组件的接口导入到HBase中。
12.一种对利用如权利要求7至10任一所述装置关联的数据进行查询的装置,其特征在于,包括:
查询接口,用于接收查询请求,所述请求中包括查询字段;
查询执行模块,用于根据所述查询字段在所述关联后的新数据对象中查找并返回查询结果。
CN201410734165.1A 2014-12-04 2014-12-04 一种数据关联、加载、查询方法及装置 Active CN104408159B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410734165.1A CN104408159B (zh) 2014-12-04 2014-12-04 一种数据关联、加载、查询方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410734165.1A CN104408159B (zh) 2014-12-04 2014-12-04 一种数据关联、加载、查询方法及装置

Publications (2)

Publication Number Publication Date
CN104408159A true CN104408159A (zh) 2015-03-11
CN104408159B CN104408159B (zh) 2018-01-16

Family

ID=52645790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410734165.1A Active CN104408159B (zh) 2014-12-04 2014-12-04 一种数据关联、加载、查询方法及装置

Country Status (1)

Country Link
CN (1) CN104408159B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731922A (zh) * 2015-03-26 2015-06-24 江苏物联网研究发展中心 基于分布式数据库HBase的结构化数据的快速检索系统及方法
CN105117402A (zh) * 2015-07-16 2015-12-02 中国人民大学 基于分段保序哈希的日志数据分片方法及装置
CN105930479A (zh) * 2016-04-28 2016-09-07 乐视控股(北京)有限公司 一种数据倾斜处理方法及装置
CN106326245A (zh) * 2015-06-19 2017-01-11 北京京东尚科信息技术有限公司 一种基于Hive数据仓库的快速关联实现方法及装置
CN106570108A (zh) * 2016-11-01 2017-04-19 中国科学院计算机网络信息中心 一种云存储环境下海量数据自适应读取优化方法及系统
CN106959948A (zh) * 2016-01-08 2017-07-18 普华诚信信息技术有限公司 针对分布式特性对大数据进行预处理的系统及其预处理方法
CN106970929A (zh) * 2016-09-08 2017-07-21 阿里巴巴集团控股有限公司 数据导入方法及装置
CN107169003A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种数据关联方法及装置
CN107451498A (zh) * 2016-06-01 2017-12-08 北京数码视讯科技股份有限公司 一种对象间关联关系的提供方法、装置及智能卡
CN108021578A (zh) * 2016-11-03 2018-05-11 北京国双科技有限公司 数据文件的关联查询方法及装置
CN108255855A (zh) * 2016-12-29 2018-07-06 北京国双科技有限公司 数据存储方法和装置
CN111723229A (zh) * 2020-06-24 2020-09-29 重庆紫光华山智安科技有限公司 数据比对方法、装置、计算机可读存储介质和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
CN102629219A (zh) * 2012-02-27 2012-08-08 北京大学 并行计算框架中的Reduce端自适应负载均衡方法
CN103577123A (zh) * 2013-11-12 2014-02-12 河海大学 一种基于hdfs的小文件优化存储方法
EP2706468A1 (en) * 2012-03-20 2014-03-12 Guangdong Electronics Industry Institute Ltd. Data storage and query method
CN103685351A (zh) * 2012-09-04 2014-03-26 中国移动通信集团公司 一种基于云计算平台的缓存服务节点的调度方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467570A (zh) * 2010-11-17 2012-05-23 日电(中国)有限公司 用于分布式数据仓库的连接查询系统和方法
CN102629219A (zh) * 2012-02-27 2012-08-08 北京大学 并行计算框架中的Reduce端自适应负载均衡方法
EP2706468A1 (en) * 2012-03-20 2014-03-12 Guangdong Electronics Industry Institute Ltd. Data storage and query method
CN103685351A (zh) * 2012-09-04 2014-03-26 中国移动通信集团公司 一种基于云计算平台的缓存服务节点的调度方法和设备
CN103577123A (zh) * 2013-11-12 2014-02-12 河海大学 一种基于hdfs的小文件优化存储方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104731922A (zh) * 2015-03-26 2015-06-24 江苏物联网研究发展中心 基于分布式数据库HBase的结构化数据的快速检索系统及方法
CN106326245A (zh) * 2015-06-19 2017-01-11 北京京东尚科信息技术有限公司 一种基于Hive数据仓库的快速关联实现方法及装置
CN105117402B (zh) * 2015-07-16 2018-08-28 中国人民大学 日志数据分片方法及装置
CN105117402A (zh) * 2015-07-16 2015-12-02 中国人民大学 基于分段保序哈希的日志数据分片方法及装置
CN106959948A (zh) * 2016-01-08 2017-07-18 普华诚信信息技术有限公司 针对分布式特性对大数据进行预处理的系统及其预处理方法
CN105930479A (zh) * 2016-04-28 2016-09-07 乐视控股(北京)有限公司 一种数据倾斜处理方法及装置
CN107451498B (zh) * 2016-06-01 2020-06-09 北京数码视讯科技股份有限公司 一种对象间关联关系的提供方法、装置及智能卡
CN107451498A (zh) * 2016-06-01 2017-12-08 北京数码视讯科技股份有限公司 一种对象间关联关系的提供方法、装置及智能卡
CN106970929A (zh) * 2016-09-08 2017-07-21 阿里巴巴集团控股有限公司 数据导入方法及装置
CN106970929B (zh) * 2016-09-08 2020-09-01 阿里巴巴集团控股有限公司 数据导入方法及装置
CN106570108A (zh) * 2016-11-01 2017-04-19 中国科学院计算机网络信息中心 一种云存储环境下海量数据自适应读取优化方法及系统
CN108021578A (zh) * 2016-11-03 2018-05-11 北京国双科技有限公司 数据文件的关联查询方法及装置
CN108255855A (zh) * 2016-12-29 2018-07-06 北京国双科技有限公司 数据存储方法和装置
CN108255855B (zh) * 2016-12-29 2021-10-08 北京国双科技有限公司 数据存储方法和装置
CN107169003A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种数据关联方法及装置
CN111723229A (zh) * 2020-06-24 2020-09-29 重庆紫光华山智安科技有限公司 数据比对方法、装置、计算机可读存储介质和电子设备

Also Published As

Publication number Publication date
CN104408159B (zh) 2018-01-16

Similar Documents

Publication Publication Date Title
CN104408159A (zh) 一种数据关联、加载、查询方法及装置
CN105786808B (zh) 一种用于分布式执行关系型计算指令的方法与设备
JP6338817B2 (ja) データベースミドルウェアを用いたデータ管理システム及びその方法
CN101436192B (zh) 用于优化针对垂直存储式数据库的查询的方法和设备
CN103544261B (zh) 一种海量结构化日志数据全局索引管理方法及装置
CN107368527B (zh) 基于数据流的多属性索引方法
CN109845221A (zh) 用于服务层的访问控制策略同步
CN103927331B (zh) 数据查询方法、装置及系统
CN103440288A (zh) 一种大数据存储方法及装置
CN105302920A (zh) 一种云存储数据的优化管理方法和系统
CN111221791A (zh) 一种多源异构数据导入数据湖的方法
US10496648B2 (en) Systems and methods for searching multiple related tables
US20130159347A1 (en) Automatic and dynamic design of cache groups
CN103823846A (zh) 一种基于图论的大数据存储及查询方法
CN113704291A (zh) 数据查询方法、装置、存储介质及电子设备
CN111026709B (zh) 基于集群访问的数据处理方法及装置
CN111723161A (zh) 一种数据处理方法、装置及设备
Mietz et al. A p2p semantic query framework for the internet of things
CN112417225A (zh) 一种多源异构数据的联合查询方法与系统
CN104636368A (zh) 数据检索方法、装置及服务器
CN106339415A (zh) 数据的查询方法、装置及系统
CN103034650A (zh) 一种数据处理系统和方法
CN108241709A (zh) 一种数据集成方法、装置和系统
CN113468571A (zh) 基于区块链的溯源方法
Liu et al. Finding smallest k-compact tree set for keyword queries on graphs using mapreduce

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220722

Address after: 100089 building 36, courtyard 8, Dongbeiwang West Road, Haidian District, Beijing

Patentee after: Dawning Information Industry (Beijing) Co.,Ltd.

Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd.

Address before: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240507

Address after: Room 168, 1st Floor, Building 10, No. 1 Courtyard, Longxing Jiayuan, southeast corner of the intersection of Longhu Inner Ring Road and Longzhiyuan East Ninth Street, Zhengdong New District, Zhengzhou City, Henan Province, 450018

Patentee after: Shuguang Information Industry (Henan) Co.,Ltd.

Country or region after: China

Address before: 100089 building 36, courtyard 8, Dongbeiwang West Road, Haidian District, Beijing

Patentee before: Dawning Information Industry (Beijing) Co.,Ltd.

Country or region before: China

Patentee before: DAWNING INFORMATION INDUSTRY Co.,Ltd.