一种分布式顺序表的数据导入方法及其系统技术方案

技术编号:8655957 阅读:240 留言:0更新日期:2013-05-01 23:38
本发明专利技术公开了一种分布式顺序表的数据导入方法及其系统,方法包括:S1、使用Map函数将待导入数据转换为键值对;S2、将所述键值对按照键进行排序;S3、对排序后的键值对进行分片,分别将每个分片分配给一个Reduce函数;S4、各Reduce函数对各自分配的分片进行格式转换,将所述分片转换为所述分布式顺序表的底层数据存储文件要求的格式,将所述格式转换后的分片写入到底层数据存储文件中;S5、将所述底层数据存储文件加载到所述分布式顺序表中。本发明专利技术把待导入数据直接写入分布式顺序表的底层数据存储文件,能节省分片定位时间,加快导入速度。

【技术实现步骤摘要】

本专利技术涉及分布式信息处理
,尤其涉及一种分布式顺序表的数据导入方法及其系统
技术介绍
随着网络应用数据量的不断增大,对数据存储系统的存取性能、存储开销和可靠性提出了更高的要求。分布式顺序表(Distributed Ordered Table简称DOT)是一种最适用于海量数据(TB到PB级)下的数据库系统。由于数据量过大,使用DOT提供的接口导入的时候,需要自上而下逐级寻找Region分片的位置,导致导入数据时间漫长,效率低下。
技术实现思路
本专利技术的主要目的是提供一种基于Map/Reduce分布式计算框架的分布式顺序表数据导入技术,能够满足对分布式顺序表的海量数据导入需求,极大地提高数据导入速度。为达此目的,本专利技术采用以下技术方案—种分布式顺序表的数据导入方法,包括S1、使用Map函数将待导入数据转换为键值对;S2、将所述键值对按照键进行排序;S3、对排序后的键值对进行分片,分别将每个分片分配给一个Reduce函数;S4、各Reduce函数对各自分配的分片进行格式转换,将所述分片转换为所述分布式顺序表的底层数据存储文件要求的格式,将所述格式转换后的分片写入到底层数据存储文件中;S5、将所述底层数据存储文件加载到所述分布式顺序表中。进一步地,在步骤SI之前还包括对原始数据进行抽样分析;在步骤S3中依据所述抽样分析结果对排序后的键值对进行分片。进一步地,所述步骤S2之后还包括将具有相同键的键值对进行合并。根据本专利技术的同一构思,本专利技术还提供了一种分布式顺序表的数据导入系统,包括键值对转换模块,用于使用Map函数将待导入数据转换为键值对;排序模块,用于将所述键值对转换模块生成的键值对按照键进行排序;分片模块,用于将经过排序模块排序后的键值对进行分片,分别将每个分片分配给一个Reduce函数;格式转换与存储模块,用于使用各Reduce函数对各自分配的分片进行格式转换,将所述分片转换为所述分布式顺序表的底层数据存储文件要求的格式,将所述格式转换后的分片写入到底层数据存储文件中;数据加载模块,用于将所述格式转换与存储模块存储的底层数据存储文件加载到所述分布式顺序表中。进一步地,还包括抽样分析模块,用于在使用键值对转换模块进行键值对转换之前,对原始数据进行抽样分析,将所述抽样分析结果用于排序分片模块中的分片处理。进一步地,还包括键值对合并模块,所述键值对经过所述排序模块排序后,用于将具有相同键的键值对进行合并。本专利技术的有益技术效果是本专利技术基于Map/Reduce分布式计算框架进行数据快速导入,把导入数据直接写入分布式顺序表的底层数据存储文件,从而节省了 Region分片的定位时间,提高了导入速度。附图说明图1是本专利技术具体实施例一所述的分布式顺序表的数据导入方法流程图;图2是本专利技术具体实施例一所述的分布式顺序表的数据导入示意图;图3是本专利技术具体实施例二所述的分布式顺序表的数据导入方法流程图;图4是本专利技术具体实施例三所述的分布式顺序表的数据导入系统结构框图;图5是本专利技术具体实施例四所述的分布式顺序表的数据导入系统结构框图。具体实施例方式下面结合附图并通过具体实施方式来进一步说明本专利技术的技术方案。实施例一图1是本专利技术实施例一所述的分布式顺序表的数据导入方法流程图,如图1所示,分布式顺序表的数据导入方法包括步骤S101、使用Map函数将待导入数据转换为键值对;各键值对中,键为分布式顺序表的主键,值为该键所对应的数据内容;待导入数据可以是任意形式的数据,例如文本串、二进制序列等。Map函数接收待导入数据后将其转换为若干个键值对< key, value >输出,key表示键,value为值,表示上述键key所对应的数据内容。步骤S102、将键值对按照键进行排序;将步骤SlOl中产生的所有键值对< key, value >按照键key进行排序,这样保证键值对的全局有序,使得在后续步骤写入数据存储文件时可以高速地顺序方式写入。步骤S103、将键值对进行分片;按照预先设定的分片方法,将所述键值对将键划分为多个分片,将每个分片分配给一个Reduce函数进行导入处理。将经过步骤S2排序后的键值对划分为多个分片,每个分片以起止键为边界限定了包含至少一个key的集合。划分之后将每个分片的键值对分配给一个Reduce函数。步骤S104、对各分片进行格式转换,写入底层存储文件;各Reduce函数将各自接收的已经按键key排序的键值对< key, value >转换为所述分布式顺序表的底层数据存储文件所要求的数据格式,并写入到底层数据存储文件中。步骤S105、将底层存储文件写入分布式顺序表。通过HBase提供的数据加载工具,可以将生成的数据文件加载到HBase的表中。 至此,该分布式顺序表就可以提供对已导入数据的访问。图2是本专利技术具体实施例一所述的分布式顺序表的数据导入示意图,如图2所示,本实施施例以将五个待导入数据,即源数据,包括:源数据1、源数据2……源数据5,分配给三个Map函数将源数据转化为键值对的形式,对所有的键值对按键进行排序,排序之后将所述键值对进行分片,例如分成两个分片,将这两个分片分别分配给两个Reduce函数,每个Reduce函数对所分配的分片进行格式转换,写入底层存储文件,例如输出文件I和输出文件2。将输出文件I和输出文件2写入分布式顺序表。通过上述方法将原始数据直接高速地并行写入分布式顺序表的底层数据存储文件,能极大地提高数据导入的效率。实施例二为了进一步提高数据导入速度,可以对实施例一作进一步的改进:包括:将每个Reduce函数的输入键值对排序之后进行合并操作;对原始数据进行抽样分析。图3是本实施例所述的分布式顺序表的数据导入方法流程图,如图3所示,进一步改进后的分布式顺序表的数据导入方法包括:步骤S301、对待导入数据进行抽样分析;为了使步骤S305中能够均衡地对键进行分片,以及使最后写入的各数据存储文件之间能获得一个比较均衡的负载,在将待导入数据转化为键值对之前还可以进一步包括:使用一个抽样函数对原始数据进行抽样分析,通过以上方式可以为后续各步骤提供一个均衡的分片区间参考,例如,在步骤S305中,依据所述抽样分析结果将所述键值对进行均匀地分片,进一步保证了系统能够稳定高效地运行。步骤S302、使用Map函数`将待导入数据转换为键值对;与实施例一步骤SlOl相同,在此不作赘述。步骤S303、将键值对按照键值进行排序;与实施例一步骤S102相同,在此不作赘述。步骤S304、将具有相同键值的健值对进行合并;将具有相同键的键值对进行合并,作为一个新的键值对。例如,发送给每个Reduce函数Reduce的键值对< key, value >按键key进行排序之后,若其中部分键值对< key,value >具有相同的键key,则可以进一步将这些具有相同键的键值对进行合并,生成一个新的键值对。通过键值对的合并减少了 Reduce函数需要处理的键值对的数量,提高了Reduce函数的处理效率,在数据量很大时通过上述合并操作能取得非常显著的效果。步骤S305、依据抽样分样结果将键值对进行分片;与实施例一步骤S103相同,在此不作赘述。步骤S306、对各分片进行格本文档来自技高网...
一种分布式顺序表的数据导入方法及其系统

【技术保护点】
一种分布式顺序表的数据导入方法,其特征在于,包括:S1、使用Map函数将待导入数据转换为键值对;S2、将所述键值对按照键进行排序;S3、对排序后的键值对进行分片,分别将每个分片分配给一个Reduce函数;S4、各Reduce函数对各自分配的分片进行格式转换,将所述分片转换为所述分布式顺序表的底层数据存储文件要求的格式,将所述格式转换后的分片写入到底层数据存储文件中;S5、将所述底层数据存储文件加载到所述分布式顺序表中。

【技术特征摘要】
1.一种 分布式顺序表的数据导入方法,其特征在于,包括: 51、使用Map函数将待导入数据转换为键值对; 52、将所述键值对按照键进行排序; 53、对排序后的键值对进行分片,分别将每个分片分配给一个Reduce函数; 54、各Reduce函数对各自分配的分片进行格式转换,将所述分片转换为所述分布式顺序表的底层数据存储文件要求的格式,将所述格式转换后的分片写入到底层数据存储文件中; 55、将所述底层数据存储文件加载到所述分布式顺序表中。2.如权利要求1所述的分布式顺序表的数据导入方法,其特征在于,在步骤SI之前还包括:对原始数据进行抽样分析;在步骤S3中依据所述抽样分析结果对排序后的键值对进行分片。3.如权利要求1或2所述的分布式顺序表的数据导入方法,其特征在于,所述步骤S2之后还包括:将具有相同键的键值对进行合并。4.一种分布式顺序表的数据导入系统,其特征在于,包括: 键值对转换模块,用于使用Map函数...

【专利技术属性】
技术研发人员:刘佳万浩查礼
申请(专利权)人:北京普泽天玑数据技术有限公司
类型:发明
国别省市:

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

1