CN110413670B - 基于MapReduce的数据导出方法、装置及设备 - Google Patents

基于MapReduce的数据导出方法、装置及设备 Download PDF

Info

Publication number
CN110413670B
CN110413670B CN201910577385.0A CN201910577385A CN110413670B CN 110413670 B CN110413670 B CN 110413670B CN 201910577385 A CN201910577385 A CN 201910577385A CN 110413670 B CN110413670 B CN 110413670B
Authority
CN
China
Prior art keywords
key
data
value
file
remote storage
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.)
Active
Application number
CN201910577385.0A
Other languages
English (en)
Other versions
CN110413670A (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.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910577385.0A priority Critical patent/CN110413670B/zh
Publication of CN110413670A publication Critical patent/CN110413670A/zh
Application granted granted Critical
Publication of CN110413670B publication Critical patent/CN110413670B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本说明书实施例提供一种基于MapReduce的数据导出方法、装置及设备,在基于MapReduce的数据导出方法中,接收数据导出任务。基于该数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录。读取多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对,该Key_Value对至少包含一个Key值。基于Key_Value对的Key值,对与各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合。将各个Key_Value对集合导出至各自对应的文件中。

Description

基于MapReduce的数据导出方法、装置及设备
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种基于MapReduce的分布式数据导出方法、装置及设备。
背景技术
传统的数据导出方法通常可以包括如下三个步骤:1.从数据端的离线数据库中读取数据并下载成本地持久层的临时文件。2.将临时文件按照一定的格式转换为账单文件。3.上传账单文件到远程存储空间。该方法的底层实现是状态机,该状态机的状态被储存在关系数据库中。具体地,在导出数据的过程中,可以以定时轮询的方式来查询每个账单文件的进度,然后按照相应的状态做出下一步动作。然而,由于该方法是通过定时轮询的方式来推进整个导出流程,所以每个状态的推进之间有很多滞空时间。此外,还需要额外管理离线数据库与关系数据库之间的连接,以及复杂的格式转换的定制逻辑。
因此,需要提供一种简单而高效的数据导出方案。
发明内容
本说明书一个或多个实施例描述了一种基于MapReduce的数据导出方法、装置及设备,可以简单而高效地导出数据。
第一方面,提供了一种基于MapReduce的数据导出方法,包括:
接收数据导出任务;
基于所述数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录;
读取所述多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对,所述Key_Value对至少包含一个Key值;
基于所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合;
将各个Key_Value对集合导出至各自对应的文件中。
第二方面,提供了一种基于MapReduce的数据导出装置,包括:
接收单元,用于接收数据导出任务;
确定单元,用于基于所述接收单元接收的所述数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录;
转换单元,用于读取所述确定单元确定的所述多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对,所述Key_Value对至少包含一个Key值;
分组单元,用于基于所述转换单元转换得到的所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合;
导出单元,用于将所述分组单元分组得到的各个Key_Value对集合导出至各自对应的文件中。
第三方面,提供了一种基于MapReduce的数据导出设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
接收数据导出任务;
基于所述数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录;
读取所述多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对,所述Key_Value对至少包含一个Key值;
基于所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合;
将各个Key_Value对集合导出至各自对应的文件中。
本说明书一个或多个实施例提供的基于MapReduce的数据导出方法、装置及设备,接收数据导出任务。基于该数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录。读取多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对,该Key_Value对至少包含一个Key值。基于Key_Value对的Key值,对与各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合。将各个Key_Value对集合导出至各自对应的文件中。也即本说明书提供的方案中,数据记录的读取、转换、分组以及导出步骤之间没有任何的滞留时间,从而可以提升数据的导出效率。此外,由于本方案不需要额外维护关系数据库,从而可以到达节约计算机资源的目的。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书提供的基于MapReduce的数据导出方法应用场景示意图;
图2为本说明书一个实施例提供的基于MapReduce的数据导出方法流程图;
图3为本说明书提供的数据导出任务的执行过程示意图;
图4为本说明书一个实施例提供的基于MapReduce的数据导出装置示意图;
图5为本说明书一个实施例提供的基于MapReduce的数据导出设备示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书提供的基于MapReduce的数据导出方法应用场景示意图,MapReduce最早是由Google公司研究提出的一种面向大规模数据处理的并行计算模型和方法,其核心思想就是把一堆杂乱无章的数据按照某种特征归纳起来,然后处理并得到最后的结果。
具体地,图1中,用户通过MapReduce(简称MR)编程接口可以向开放数据处理服务(Open Data Processing Service,ODPS)提交MR任务,这里的MR任务例如可以为数据导出任务。对于上述MR任务,用户可以预先对其输入和输出进行配置,此外还可以对其处理逻辑进行编写。以数据导出任务为例来说,上述输入配置可以是指待导出数据的存储对象,如,数据表以及网盘等等。这里的数据表可以包括多个字段以及对应的字段值。上述输出配置可以是指导出数据的远程存放地址。上述处理逻辑则可以是指数据的具体导出过程。
为便于理解,在本说明书的以下描述中,以MR任务为数据导出任务,存储对象为数据表为例进行说明。
图1中,ODPS在接收到数据导出任务之后,可以为其动态分配机器资源。在分配到相应的机器资源之后,ODPS可以基于数据导出任务的输入配置,连接到相应的数据表,并执行该数据导出任务。
在生成上述Mapper端以及Reducer端之后,就可以进入到数据导出任务的执行阶段。该执行阶段
在本说明书中,数据导出任务的执行可以分为如下三个子阶段:Mapper阶段、Shuffle阶段以及Reducer阶段。在Mapper阶段,可以基于数据表的张数,动态生成一个或多个Mapper端。Mapper端用于先按表再按行读取数据记录。即在某一时刻,一个Mapper端只能读取一张数据表中的数据记录,且该数据表中的各条数据记录是逐条读取的。此外,还可以从任一张数据表的多个字段中确定用哪个字段作为Key-Value对的Key,然后求出这个数据表里该字段有多少不同的值,并基于这个数量生成的多个Reducer端。Reducer端用于生成目标格式的文件,并将该目标格式的文件上传到存储端。一个Reducer端通常生成一份目标格式的文件。在生成上述Mapper端以及Reducer端之后,可以读取数据表,将读取的数据记录转换成相应的Key_Value对。在本说明书中,Key_Value对通常表示为如下形式:<key,value>。
在Shuffle阶段,对转换得到的Key_Value对进行排序,并将排序后的Key_Value对进行分组。之后,将同一分组中的Key_Value归序到同一Reducer端。也即,在Shuffle阶段,会将需包含在同一文件的数据内容交给同一Reducer端进行处理。在Reducer阶段,多个Reducer端可以同时运行,其中每个Reducer端用于将同一分组中的Key_Value导出至同一文件中,并将得到的文件上传至远程存储地址对应的远程存储端。这里的远程存储地址是基于数据导出任务的输出配置确定的。
以下结合附图对本说明书提供的基于MapReduce的数据导出方法进行详细说明。
图2为本说明书一个实施例提供的基于MapReduce的数据导出方法流程图。所述方法的执行主体可以为图1中的ODPS。如图2所示,所述方法具体可以包括:
步骤202,接收数据导出任务。
这里的数据导出任务可以为MR任务的一种,其可以是由ODPS通过MR编程接口接收。如上所述,对于该数据导出任务,用户可以预先对其输入和输出进行配置,此外还可以对其处理逻辑进行编写。
需要说明的是,在接收到上述数据导出任务之后,ODPS可以为其动态分配相应的机器资源。这种动态分配资源的方式对于使用MR接口的用户来说是透明的。所以用户只需要设计导出逻辑即可,这大大提升了用户体验。
步骤204,基于数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录。
在为数据导出任务分配相应的机器资源之后,ODPS可以基于其输入配置,确定待导出数据的多张数据表,并连接到该多张数据表。本说明书所述的数据表可以包括若干条数据记录,其中,每条数据记录可以由多个字段的字段值构成。这里的多个字段至少可以包括目标字段,该目标字段例如可以为关键字段。
举例来说,假设上述多张数据表分别为账单明细表和账单汇总表。其中,账单汇总表的内容如表1所示,账单明细表的内容如表2所示。
表1
Col1 Col2 Col3 Col4
Col_a x x x
Col_b x x x
从表1可以看出,账单汇总表中包括2条数据记录,每条数据记录由字段Col1-Col4的字段值构成。
表2
Col1 Col2 Col3 Col4 Col5 Col6
Col_b x x x x x
Col_a x x x x x
从表2可以看出,账单明细表中包括2条数据记录,每条数据记录由字段Col1-Col6的字段值构成。
在连接到该多张数据表之后,就可以进入到数据导出任务的执行阶段。
步骤206,读取多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对。
可以理解的是,该步骤是在数据导出任务的Mapper阶段执行的。
需要说明的是,在Mapper阶段执行上述步骤之前,可以基于数据表的张数,动态生成一个或多个Mapper端。Mapper端用于先按表再按行读取数据记录。即在某一时刻,一个Mapper端只能读取一张数据表中的数据记录,且该数据表中的各条数据记录是逐条读取的。此外,还可以从任一张数据表的多个字段中确定用哪个字段作为Key-Value对的Key,然后求出这个数据表里该字段有多少不同的值,并基于这个数量生成的多个Reducer端。Reducer端用于生成目标格式的文件,并将该目标格式的文件上传到存储端。一个Reducer端通常生成一份目标格式的文件。
需要说明的是,如果上述生成多个Mapper端,则可以通过该多个Mapper端并行地读取多张数据表中的各条数据记录,并将各自读取的数据记录转换成相应的键值Key_Value对。由此,可以大大提升数据的读取效率,进而可以提升数据的导出效率。
以上述多张数据表分别为账单明细表和账单汇总表为例来说,若所生成的Mapper端的个数为两个,则可以通过一个Mapper端依次读取账单明细表中的各条数据记录,并将读取的各条数据记录转换成相应的Key_Value对;通过另一个Mapper端依次读取账单汇总表中的各条数据记录,并将读取的各条数据记录转换成相应的Key_Value对。
步骤206中转换得到的Key_Value对至少可以包含一个Key值,还可以包含一个Value值。其中,Key值可以为数据记录的多个字段中部分字段的字段值,如,可以为关键字段的字段值。Value值可以为数据记录的多个字段中其余字段的字段值。
以上述账单汇总表的内容为例来说,将其中的两条数据记录分别转换成相应的Key_Value对之后,可以分别为:<col1_a,[x,x,x]>,<col1_b,[x,x,x]>,其中,col1_a和col1_b为Key值。再以上述账单明细表的内容为例来说,将其中的两条数据记录分别转换成相应的Key_Value对之后,可以分别为:<col1_b,[x,x,x,x,x]>,<col1_a,[x,x,x,x,x]>。同样地,col1_b和col1_a为Key值。
步骤208,基于Key_Value对的Key值,对与各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合。
可以理解的是,该步骤是在数据导出任务的Shuffle阶段执行的。
可选地,在对Key_Value对进行分组之前,可以先基于Key_Value对的Key值,对与各条数据记录相应的Key_Value对进行排序。对排序后的Key_Value对进行分组。在一种实现方式中,可以将Key值相同的Key_Value对划分成一组。
如在对上述例子中的Key_Value对进行排序之后,其排序结果可以为:
<col1_a,[x,x,x]>
<col1_a,[x,x,x,x,x]>
<col1_b,[x,x,x]>
<col1_b,[x,x,x,x,x]>
由于前两个Key_Value对的Key值相同,即均为col1_a,因此可以将前两个Key_Value对划分成一组,得到一个Key_Value对集合。同理,由于后两个Key_Value对的Key值相同,即均为col1_b,因此可以将后两个Key_Value对划分成一组,得到另一个Key_Value对集合。
对于上述分组得到的至少一个Key_Value对集合,由于包括两个不同的Key值,因此,预先生成的Reducer端的个数可以为两个。具体地,如果预先生成的Reducer端的个数为两个,则可以将其中一个Key_Value对集合中的Key_Value对归序到其中一个Reducer端;将另一个Key_Value对集合中的Key_Value对归序到另一个Reducer端。
步骤210,将各个Key_Value对集合导出至各自对应的文件中。
可以理解的是,该步骤是在数据导出任务的Reducer阶段执行的。
在该步骤中,如果生成的Reducer端的个数为多个,那么多个Reducer端可以并行地将各个Key_Value对集合导出至各自对应的文件中。由此,可以加快Key_Value对的导出效率,进而可以提升数据的导出效率。
如前述例子,一个Reducer端将排序结果中的前两个Key_Value对导出至文件1中,另一个Reducer端将排序结果中的后两个Key_Value对导出至文件2中。
需要说明的是,步骤210中得到的文件可以为目标格式的文件,该目标格式包括但不限于CSV格式以及pdf格式等等。
可选地,各个Reducer端在得到相应的目标格式的文件之后,还可以将其上传至远程存储端。具体地,各个Reducer端可以根据数据导出任务的输出配置,确定目标格式的文件的远程存放地址。之后将各自对应的目标格式的文件上传至远程存放地址对应的远程存储端。
需要说明的是,在各个Reducer端在向远程存储端上传目标格式的文件时,可能会存在目标格式的文件的大小大于阈值而无法上传的问题。当目标格式的文件的大小大于阈值时,可以对目标格式的文件作如下处理:按照预设的文件大小或者预设的数据条数,对目标格式的文件内的数据进行分隔,以得到对应的多个子文件。举例来说,假设预设的文件大小为5MB,而目标格式的文件大小为10MB,那么可以分隔得到两个子文件。再假设预设的数据条数为1000条,而目标格式的文件中包含10000条数据,那么可以分隔得到10个子文件。
在完成上述处理之后,可以依次将多个子文件上传至远程存放地址对应的远程存储端。
通过上述文件分隔的方法可以避免由于某个文件过大而上传不成功时,导致整个数据导出任务失败的问题。
综上,本说明书提供的方案中,数据导出任务是通过分布式的方式来执行的。这里的分布式主要体现在如下两个方面:第一方面,ODPS在通过MR编程接口接收到数据导出任务之后,动态地为其分配机器资源。这种动态分配资源的方式对于使用MR接口的开发者来说是透明的。所以开发者只需要设计导出逻辑即可,这大大提升了用户体验。第二方面,在执行数据导出任务的过程中,会动态生成多个Mapper端和/或多个Reducer端,多个Mapper端会加快数据的读取效率,多个Reducer端会加快文件的导出效率。此外,由于数据导出任务为MR任务的一种,而MR任务的执行具有容错性高的特点,即只要任何一个Key_Value对导出失败,整个任务会中止,所以本方案不会导致数据的丢失等问题。最后,本方案中,数据记录的读取、转换、分组以及导出步骤之间没有任何的滞留时间,从而可以提升数据的导出效率。
还需要说明的是,本方案中,在执行数据导出任务的时候,如果有任何程序里的逻辑问题或者数据问题导致无法导出文件,可以很快的在日志里找到答案。
图3为本说明书提供的数据导出任务的执行过程示意图。图3中,在Mapper阶段,可以通过多个Mapper端并行地从多张数据表中读取数据记录,之后将各自读取的数据记录转换成Key_Value对。Key_Value对中的Key值由数据记录的部分字段的字段值构成,Value值由其余字段的字段值构成。在Shuffle阶段,按照Key值,对各条数据记录对应的Key_Value对进行排序,并对排序后的Key_Value对进行分组,以得到至少一个Key_Value对集合。将同一个Key_Value对集合中的Key_Value对归序到相同的Reducer端。在Reducer阶段,多个Reducer端可以并行地将各个Key_Value对集合导出至各自对应的文件中,并将各自得到的文件上传到远程存储端。
与上述基于MapReduce的数据导出方法对应地,本说明书一个实施例还提供的一种基于MapReduce的数据导出装置,如图4所示,该装置可以包括:
接收单元402,用于接收数据导出任务。
该数据导出任务可以是通过MapReduce编程接口接收的。
确定单元404,用于基于接收单元402接收的数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录。
这里的数据记录可以由多个字段的字段值构成。转换单元406,用于读取确定单元404确定的多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对,该Key_Value对至少包含一个Key值。
该Key值可以为多个字段中至少一个字段的字段值。
转换单元406具体可以用于:
生成多个Mapper端,以使多个Mapper端并行地读取多张数据表中的各条数据记录,并将各自读取的数据记录转换成相应的键值Key_Value对。
分组单元408,用于基于转换单元406转换得到的Key_Value对的Key值,对与各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合。
分组单元408具体可以用于:
基于Key_Value对的Key值,对与各条数据记录相应的Key_Value对进行排序。对排序后的Key_Value对进行分组。
导出单元410,用于将分组单元408分组得到的各个Key_Value对集合导出至各自对应的文件中。
导出单元410具体可以用于:
通过预先生成的多个Reducer端并行地将各个Key_Value对集合导出至各自对应的文件中。
首先,该Reducer端的个数可以根据不同的Key值的个数确定。其次,这里的文件可以为目标格式的文件。该目标格式可以包括CSV格式以及pdf格式。
可选地,该装置还可以包括:上传单元412。
确定单元404,还用于根据数据导出任务的输出配置,确定目标格式的文件的远程存放地址。
上传单元412,用于将目标格式的文件上传至确定单元404确定的远程存放地址对应的远程存储端。
上传单元412具体可以用于:
判断目标格式的文件的大小是否大于阈值。
如果是,则按照预设的文件大小或者预设的数据条数,对目标格式的文件内的数据进行分隔,以得到对应的多个子文件。
依次将多个子文件上传至远程存放地址对应的远程存储端。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的基于MapReduce的数据导出装置,接收单元402接收数据导出任务。确定单元404基于数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录。转换单元406读取多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对,该Key_Value对至少包含一个Key值。分组单元408基于Key_Value对的Key值,对与各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合。导出单元410将各个Key_Value对集合导出至各自对应的文件中。由此,可以简单而高效地导出数据。
本说明书一个实施例提供的基于MapReduce的数据导出装置可以为图1中ODPS的一个模块或者单元。
与上述基于MapReduce的数据导出方法对应地,本说明书实施例还提供了一种基于MapReduce的数据导出设备,如图5所示,该设备可以包括:存储器502、一个或多个处理器504以及一个或多个程序。其中,该一个或多个程序存储在存储器502中,并且被配置成由一个或多个处理器504执行,该程序被处理器504执行时实现以下步骤:
接收数据导出任务。
基于数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录。
读取多张数据表中的各条数据记录,并将其转换成相应的键值Key_Value对,该Key_Value对至少包含一个Key值。
基于Key_Value对的Key值,对与各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合。
将各个Key_Value对集合导出至各自对应的文件中。
本说明书一个实施例提供的基于MapReduce的数据导出设备,可以简单而高效地导出数据。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立组件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。

Claims (11)

1.一种基于MapReduce的数据导出方法,包括:
通过MapReduce编程接口接收数据导出任务;
基于所述数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录;
生成多个Mapper端,以使所述多个Mapper端并行地读取所述多张数据表中的各条数据记录,并将各自读取的数据记录转换成相应的键值Key_Value对,所述Key_Value对至少包含一个Key值;
基于所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合;
通过预先生成的多个Reducer端并行地将各个Key_Value对集合导出至各自对应的文件中。
2.根据权利要求1所述的方法,所述基于所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行分组,包括:
基于所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行排序;
对排序后的Key_Value对进行分组。
3.根据权利要求1所述的方法,所述数据记录由多个字段的字段值构成,所述Key值为所述多个字段中至少一个字段的字段值;所述Reducer端的个数根据不同的Key值的个数确定。
4.根据权利要求1所述的方法,所述文件为目标格式的文件;所述目标格式包括CSV格式以及pdf格式;还包括:
根据所述数据导出任务的输出配置,确定所述目标格式的文件的远程存放地址;
将所述目标格式的文件上传至所述远程存放地址对应的远程存储端。
5.根据权利要求4所述的方法,所述将所述目标格式的文件上传至所述远程存放地址对应的远程存储端,包括:
判断所述目标格式的文件的大小是否大于阈值;
如果是,则按照预设的文件大小或者预设的数据条数,对所述目标格式的文件内的数据进行分隔,以得到对应的多个子文件;
依次将所述多个子文件上传至所述远程存放地址对应的远程存储端。
6.一种基于MapReduce的数据导出装置,包括:
接收单元,用于通过MapReduce编程接口接收数据导出任务;
确定单元,用于基于所述接收单元接收的所述数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录;
转换单元,用于生成多个Mapper端,以使所述多个Mapper端并行地读取所述确定单元确定的所述多张数据表中的各条数据记录,并将各自读取的数据记录转换成相应的键值Key_Value对,所述Key_Value对至少包含一个Key值;
分组单元,用于基于所述转换单元转换得到的所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合;
导出单元,用于通过预先生成的多个Reducer端并行地将所述分组单元分组得到的各个Key_Value对集合导出至各自对应的文件中。
7.根据权利要求6所述的装置,所述分组单元具体用于:
基于所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行排序;
对排序后的Key_Value对进行分组。
8.根据权利要求6所述的装置,所述数据记录由多个字段的字段值构成,所述Key值为所述多个字段中至少一个字段的字段值;所述Reducer端的个数根据不同的Key值的个数确定。
9.根据权利要求6所述的装置,所述文件为目标格式的文件;所述目标格式包括CSV格式以及pdf格式;所述装置还包括:上传单元;
所述确定单元,还用于根据所述数据导出任务的输出配置,确定所述目标格式的文件的远程存放地址;
所述上传单元,用于将所述目标格式的文件上传至所述确定单元确定的所述远程存放地址对应的远程存储端。
10.根据权利要求9所述的装置,所述上传单元具体用于:
判断所述目标格式的文件的大小是否大于阈值;
如果是,则按照预设的文件大小或者预设的数据条数,对所述目标格式的文件内的数据进行分隔,以得到对应的多个子文件;
依次将所述多个子文件上传至所述远程存放地址对应的远程存储端。
11.一种基于MapReduce的数据导出设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
通过MapReduce编程接口接收数据导出任务;
基于所述数据导出任务的输入配置,确定待导出数据的多张数据表,每张数据表包括若干条数据记录;
生成多个Mapper端,以使所述多个Mapper端并行地读取所述多张数据表中的各条数据记录,并将各自读取的数据记录转换成相应的键值Key_Value对,所述Key_Value对至少包含一个Key值;
基于所述Key_Value对的Key值,对与所述各条数据记录相应的Key_Value对进行分组,以得到至少一个Key_Value对集合;
通过预先生成的多个Reducer端并行地将各个Key_Value对集合导出至各自对应的文件中。
CN201910577385.0A 2019-06-28 2019-06-28 基于MapReduce的数据导出方法、装置及设备 Active CN110413670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910577385.0A CN110413670B (zh) 2019-06-28 2019-06-28 基于MapReduce的数据导出方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910577385.0A CN110413670B (zh) 2019-06-28 2019-06-28 基于MapReduce的数据导出方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110413670A CN110413670A (zh) 2019-11-05
CN110413670B true CN110413670B (zh) 2023-07-14

Family

ID=68358521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910577385.0A Active CN110413670B (zh) 2019-06-28 2019-06-28 基于MapReduce的数据导出方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110413670B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110990079B (zh) * 2019-12-02 2020-07-24 北京大学 一种加载远程csv文件的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426609A (zh) * 2011-12-28 2012-04-25 厦门市美亚柏科信息股份有限公司 一种基于MapReduce编程架构的索引生成方法和装置
CN104615765A (zh) * 2015-02-13 2015-05-13 中国联合网络通信集团有限公司 一种移动用户上网记录的数据处理方法及装置
CN105930104A (zh) * 2016-05-17 2016-09-07 百度在线网络技术(北京)有限公司 数据存储方法和装置
CN107153643A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 数据表连接方法及装置
CN108280226A (zh) * 2018-02-12 2018-07-13 中国银行股份有限公司 数据处理方法及相关设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IN2013MU02918A (zh) * 2013-09-10 2015-07-03 Tata Consultancy Services Ltd

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102426609A (zh) * 2011-12-28 2012-04-25 厦门市美亚柏科信息股份有限公司 一种基于MapReduce编程架构的索引生成方法和装置
CN104615765A (zh) * 2015-02-13 2015-05-13 中国联合网络通信集团有限公司 一种移动用户上网记录的数据处理方法及装置
CN107153643A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 数据表连接方法及装置
CN105930104A (zh) * 2016-05-17 2016-09-07 百度在线网络技术(北京)有限公司 数据存储方法和装置
CN108280226A (zh) * 2018-02-12 2018-07-13 中国银行股份有限公司 数据处理方法及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Hadoop集群的多表并行关联算法及应用;郑晓薇等;《微型机与应用》;20130225(第04期);全文 *
基于MapReduce的Hadoop大表导入编程模型;陈吉荣等;《计算机应用》;20130901(第09期);全文 *

Also Published As

Publication number Publication date
CN110413670A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
US20180248934A1 (en) Method and System for a Scheduled Map Executor
CN110347515B (zh) 一种适合边缘计算环境的资源优化分配方法
CN103246730A (zh) 文件存储方法和设备、文件发送方法和设备
US20120254173A1 (en) Grouping data
CN103310460A (zh) 图像特征提取的方法及系统
CN110413670B (zh) 基于MapReduce的数据导出方法、装置及设备
CN106339802A (zh) 任务分配的方法和装置、电子设备
CN111858730A (zh) 一种图数据库的数据导入导出装置、方法、设备及介质
CN105988995B (zh) 一种基于HFile批量加载数据的方法
CN103810197A (zh) 一种基于Hadoop的数据处理方法及其系统
CN115039091A (zh) 多键值命令的处理方法、装置、电子设备及存储介质
CN111445027B (zh) 机器学习模型的训练方法和装置
CN112800091B (zh) 一种流批一体式计算控制系统及方法
CN110765082B (zh) Hadoop文件处理方法、装置、存储介质及服务器
CN111581162A (zh) 一种基于本体的海量文献数据的聚类方法
Kaur et al. Image processing on multinode hadoop cluster
WO2023061180A1 (zh) 基于多频率的数据发送和接收方法、装置和设备
CN116089527A (zh) 一种数据校验方法、存储介质与设备
CN109684279B (zh) 一种数据处理方法及系统
CN111626649B (zh) 大数据处理方法和装置
CN109828968B (zh) 一种数据去重处理方法、装置、设备、集群及存储介质
CN110825453A (zh) 基于大数据平台的数据处理方法及装置
CN112199577A (zh) 一种数据查询方法、装置及电子设备
CN111291230A (zh) 特征处理方法、装置、电子设备及计算机可读存储介质
US20190354626A1 (en) Object Storage System with Ordered Parallel Replication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240221

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: United Kingdom