CN107480202B - 一种用于多并行处理框架的数据处理方法及装置 - Google Patents

一种用于多并行处理框架的数据处理方法及装置 Download PDF

Info

Publication number
CN107480202B
CN107480202B CN201710584226.4A CN201710584226A CN107480202B CN 107480202 B CN107480202 B CN 107480202B CN 201710584226 A CN201710584226 A CN 201710584226A CN 107480202 B CN107480202 B CN 107480202B
Authority
CN
China
Prior art keywords
data
data set
storage
storage data
configuration information
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
CN201710584226.4A
Other languages
English (en)
Other versions
CN107480202A (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.)
Hunan University
Original Assignee
Hunan 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 Hunan University filed Critical Hunan University
Priority to CN201710584226.4A priority Critical patent/CN107480202B/zh
Publication of CN107480202A publication Critical patent/CN107480202A/zh
Application granted granted Critical
Publication of CN107480202B publication Critical patent/CN107480202B/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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Abstract

本发明提供了一种用于多并行处理框架的数据处理方法及装置,该方法包括:步骤S1:获取使用环境的配置信息;步骤S2:根据所述使用环境的配置信息和底层存储数据属性选择相应的数据调用方法并调用底层存储数据,然后通过统一的格式转换方法对获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集;步骤S3:将所述统一格式抽象数据集提供给上层应用使用。本发明通过根据使用环境配置信息和底层存储数据存储介质类型,选择对应的数据调用方法并调用底层存储数据,然后通过统一的格式转换方法,将底层存储数据转换为统一格式抽象数据集并提供给上层应用使用,进一步提高多并行处理框架的扩展性、通用性和易用性。

Description

一种用于多并行处理框架的数据处理方法及装置
技术领域
本发明涉及大数据多并行处理技术领域,尤其涉及一种用于多并行处理框架的数据处理方法及装置。
背景技术
目前,大数据技术的快速发展应用给现有技术带来了4V的挑战:规模(Volume),从万亿字节(TB)级到千万亿字节(PB)级甚至到十万亿亿字节(ZB)级别;种类(Variety),数据种类繁多,既包括传统的结构化数据又包括诸如文本、视频、图片和音频等非结构化数据,而且非结构化数据的比重在快速增加;价值(Value),数据价值密度低,难以进行预测分析、运营智能、决策支持等计算;速度(Velocity),大数据处理的速度问题愈发突出,时效性难以保证。总体来看,大数据处理技术的困境实质上是信息化设施的处理能力与数据处理的问题规模之间的矛盾,即目前的计算机系统无法有效处理PB级以上的大数据。大数据所表现出的增量速度快、时间局部性低等特点,使得以计算为中心的传统模式面临着内存容量有限、输入/输出(I/O)压力大、缓存命中率低、数据处理的总体性能低等诸多挑战,难以取得性能、能耗与成本的最佳平衡,大数据技术在制造业应用对现有的数据采集、处理和分析框架带来严峻的挑战:
(1)流数据、非结构化数据的处理和分析往往需要动态可扩展的计算和存储能力,传统的以服务器集群、SQL数据库为主流架构的企业数据中心基础设施无论在硬件和软件容量上都不具备实时扩展的能力,很难满足企业数据处理应用对资源的弹性需求;
(2)现有的面向非结构化的数据存储架构基本上都是基于NOSQL分布式文件系统,这给传统的以SQL数据库编程为主要技能的程序员带来了困扰;
(3)现有的传统企业基于数据库的分析和处理的应用往往不具备按数据分块进行并行处理的能力。而Hadoop MapReduce/Spark并行编程框架对于一般的企业开发人员来说又难以短时间掌握。这使得以Hadoop/spark、Hbase等为代表的大数据并行存储和处理框架的应用很难得到较大面积的推广和应用;
(4)以人工智能经典算法、机器学习模型为核心的数据挖掘框架是目前进行大数据分析的主要手段。但对于传统企业的开发人员来说,同样面临着人工智能算法门槛太高,难于掌握的困境,使得一般的软件公司很难组建面向行业数据分析处理和挖掘的研发团队。
为了面向大数据处理设计出一套合适的高速计算架构,当前国际学术界和工业界主要从系统软件、体系结构、分布式系统等方面进行了改进和优化:
(1)在系统软件方面,人们主要提出了以内存数据库及编译器优化等技术来应对大数据处理难题。内存数据库(如H-store)将相关数据加载到内存中,从而不需要引入磁盘I/O的开销。但是它提供了原子性、一致性、隔离性和持久性保证,使得对一致性要求较弱的应用支付了不必要的开销,限制了系统的可扩展性。另外也有从编译方面进行优化的,比如PeriSCOPE通过数据类型及数据大小确定最小的数据传输流。
(2)在系统结构方面,主要通过采取增加内存、增加处理器和协处理器以及增加I/O通道来缓解大数据处理带来的挑战。但是这些增加又为体系结构的改进带来了成本与能耗的增加。
(3)在分布式系统方面,人们提出了以MapReduce(或Hadoop)架构等来解决这一难题。MapReduce通过提供Map和Reduce两个函数处理基于键值方式存储的数据,能简单方便地在分布式系统上获得很好的可扩展性和容错性。然而MapReduce需要从磁盘获取数据,再将中间结果数据写回磁盘,以磁盘为基础的设计使得其效率较低,I/O开销极大,不适用于具有在线和实时性需求的应用。通过多个节点同时处理数据虽然能够缓解大数据处理面临的挑战,但是其分布式系统主要以粗粒度并行为基础,没有充分发挥现行计算单元的资源能力。
由此可见,目前对大数据处理的优化都是基于传统的内存——磁盘访问模式,尽管采取了多种方式进行一定的优化,但是数据处理的关键“数据I/O瓶颈”一直存在,有必要研究新型的计算模式——内存计算模式。然而内存和外存之间速度的不匹配一直是造成数据处理速度低下的重要原因,对于大数据应用来说更是如此。近年来,随着电阻存储器、铁电存储器、相变存储器等为代表的新兴非易失性随机存储介质技术的发展,使得传统的内存与存储分离的界限逐渐变得模糊,推进了存储技术的发展,为新型的内存与存储体系结构的产生打下了良好的基础。随着存储介质访问技术的提升和单位容量成本的下降,一场围绕存储和内存体系结构的变革悄然来临,吸引了诸如IBM、英特尔、镁光、三星等一些IT企业的重点关注和大量投入,国内的企业和科研机构也在进行这方面的研究工作。
在这种情况下,开发出一套具有高扩展性、易用性、易维护、易上手的通用型大数据多并行处理框架势在必行。但是,由于存在HDFS\Redis\Hbase\NFS\CEFH等数据存储介质的多样性,操作数据的复杂性、多态性,流数据、非结构化数据处理需求等问题,使得多并行处理框架没有一个稳定的数据传输单元,各自使用一套数据格式。这样造成的困扰就是,上层机器学习函数调用极其复杂,不得不根据不同的存储介质,操作方式,数据结构提供一套相应的数据解析方式,这样做既不符合软件低耦合高内聚的开发模式,又不利于维护和扩展,同时带来代码量异常复杂和繁重。
发明内容
针对存在的数据存储介质的多样性,操作数据的复杂性、多态性,流数据、非结构化数据处理需求等问题,本发明提供了用于解决上述问题的一种用于多并行处理框架的数据处理方法及装置。
一种用于多并行处理框架的数据处理方法,该方法包括:
步骤S1:获取使用环境的配置信息;
步骤S2:根据所述使用环境的配置信息和底层存储数据属性选择相应的数据调用方法并调用底层存储数据,然后通过统一的格式转换方法对所获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集;
其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
步骤S3:将所述统一格式抽象数据集提供给上层应用使用。
步骤S1中的使用环境的配置信息包含在使用环境的环境上下文中,该配置信息表明了本发明方案的应用平台类型,是步骤S2选择数据调用方法时需要考虑的因素。因为在不同的应用平台上,同一存储介质类型的调用方法不同,同时又因为,在某一确定的应用平台上,各种存储介质类型与其调用方法是一一对应且唯一的,所以,需要先确定应用平台类型,方能确定与存储介质类型一一对应的数据调用方法。具体操作中,需要先根据使用环境配置信息和数据存储介质类型选择针对性的数据调用方法,该“方法”包括实现数据调用操作所需的编程语法、语句和函数。只有根据使用环境的配置信息和存储介质类型,选择最合适的数据调用方法,才能为后续正确且高效地完成数据格式转换操作提供保障。
本发明提供的数据处理方法可以应用于现有的多种数据处理平台,例如Hadoop、Spark和Flink等大数据处理平台;可以处理的底层存储数据存储介质类型包括HDFS、HBase、MySQL、Redis、LocalFile等存储介质类型。
本发明提供的数据处理方法根据数据处理平台种类和存储介质类型选择对应的数据调用方法,然后采用统一的格式转换方法对所需调用的底层存储数据集中的底层存储数据进行数据格式转换操作。例如在Spark平台上,先根据底层存储数据存储介质类型确定用于获取数据源的数据调用方法,然后采用map算子将数据源中的字符串根据key-value格式组成JSON格式的字符串,从而得到统一抽象数据集。
由于不同存储介质的数据存储格式不同,例如Mysql是关系数据库的数据元组,本地文件可能是表格、TXT文档等;Hbase是NOSQL数据库,以列族和列来存储,所以上层应用无法采用统一的方法来调用这些底层存储数据。而发明人通过对不同存储介质中数据存储格式的分析研究发现,所有存储介质中的数据均可以用统一的key-value格式来表示,故在本发明提供的数据处理方法中,发明人选择了将不同存储介质中的数据均转换成key-value格式的字符串来组成JSON字符串格式,供上层应用使用。
本发明提供的数据处理方法通过根据使用环境的配置情况和底层存储数据的存储介质类型,灵活选择合适的数据调用方法,然后采用统一的格式转换方法,将存储在不同存储介质中的数据转化成统一格式的数据后,再提供给上层应用使用。由此,多并行处理框架中的上层应用不再需要关注底层存储数据的存储介质类型,不再需要采用不同的调用方法来调用不同存储介质中的数据,而是通过本方法获取到具有统一格式的数据,直接使用,极大地提高了多并行处理框架的数据处理能力,提升了多并行处理框架的通用性。
进一步的,所述步骤S1具体包括:
步骤S1.1:将使用环境的配置信息和用于获取所述配置信息的环境获取方法封装为第一个类;
步骤S1.2:通过所述第一个类提供的所述环境获取方法获取使用环境的配置信息。
将使用环境的配置信息进行封装后,上层应用在通过多并行处理框架调用使用环境配置信息时,不用考虑针对具体的使用环境选择相对应的方法来调用,而是直接通过封装后的类提供的方法来获取即可,极大地优化了处理过程。
进一步的,所述步骤S2具体包括:
步骤S2.1:将所述底层存储数据属性、统一格式抽象数据集和用于获取底层存储数据属性的属性获取方法、用于底层存储数据调用操作的数据调用方法、用于格式转换操作的格式转换方法以及用于获取统一格式抽象数据集的结果获取方法封装为第二个类;
步骤S2.2:通过所述属性获取方法获取所需的底层存储数据属性,其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
步骤S2.3:根据步骤S1获取的使用环境的配置信息和步骤S2.2获取的所述底层存储数据属性,确定数据调用方法,调取底层存储数据,并通过统一的格式转换方法对所需获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集。
将调用底层存储数据并进行格式转换的步骤进行封装,使得上层应用通过多并行处理框架调取底层存储数据时,不用考虑针对具体的存储介质类型来选择相应的方法进行操作,简化了数据调用的过程,降低了操作难度,使得上层应用能够不用知道底层存储介质类型,直接通过类提供的统一方法获取具体数据,提高了多并行处理框架的通用性。
进一步的,所述步骤S3具体为:通过步骤S2提供的所述结果获取方法获取所述统一格式抽象数据集,并将所述统一格式抽象数据集提供给上层应用使用。
进一步的,所述统一格式抽象数据集为JSON格式抽象数据集。
选择JSON格式抽象数据集作为本发明方案中的统一格式抽象数据集,是因为JSON格式具有很好的通用性,可以使获得的统一格式抽象数据集能够广泛地适用于各种类型的上层应用,进一步提升多并行处理框架的通用性。
本发明还提供了一种基于多并行处理框架的数据处理装置,包括以下单元:
环境获取单元,用于获取使用环境的配置信息;
格式转换单元,用于根据所述使用环境的配置信息和底层存储数据属性选择相应的数据调用方法并调用底层存储数据,然后通过统一的格式转换方法对所需调用的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集;
其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
数据传递单元,用于将所述统一格式抽象数据集提供给上层应用使用。
进一步的,所述环境获取单元具体用于:
将使用环境的配置信息和用于获取所述配置信息的环境获取方法封装为第一个类;
通过所述第一个类提供的所述环境获取方法获取使用环境的配置信息。
进一步的,所述格式转换单元具体用于:
将所述底层存储数据属性、统一格式抽象数据集和用于获取底层存储数据属性的属性获取方法、用于底层存储数据调用操作的数据调用方法、用于格式转换操作的格式转换方法以及用于获取统一格式抽象数据集的结果获取方法封装为第二个类;
通过所述属性获取方法获取所需的底层存储数据属性,其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
根据获取的使用环境的配置信息和所述底层存储数据属性,确定数据调用方法,调取底层存储数据,并通过统一的格式转换方法对所获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集。
进一步的,所述数据传递单元具体用于:通过格式转换单元提供的所述结果获取方法获取所述统一格式抽象数据集,并将所述统一格式抽象数据集提供给上层应用使用。
进一步的,所述统一格式抽象数据集为JSON格式抽象数据集。
有益效果
本发明提供了一种用于多并行处理框架的数据处理方法及装置,通过根据使用环境配置信息和底层存储数据存储介质类型,选择相应的数据调用方法,然后采用统一的格式转换方法将底层存储数据转化为统一格式抽象数据集并提供给上层应用使用。由此,带来了如下有益效果:
1、数据格式统一化。本发明提供的数据处理方法及装置,使得上层应用和下层存储介质的数据交换有了统一的数据格式,此时,只需要采用一套统一的数据操作函数(例如在Spark平台中上层应用调用JSON字符串相关的操作)就可方便地获得底层存储数据。
2、数据获取接口化。本发明提供的数据处理方法及装置,使得上层应用不需要了解底层存储介质具体如何进行存取操作,也不必了解各种类型的存储介质的存储格式,即可获得底层存储数据,从而减少了不必要的编码工作,同时获得高效、快捷、方便的数据调用接口。
3、存储介质数据存取操作规范化。本发明提供的数据处理方法及装置,使得底层各个存储介质,按照自身对应的数据调用方法存取数据,然后采用统一的格式转换方法转换成统一格式的抽象数据集,规范了底层存储数据的操作过程。
4、上层应用获取数据简易化。本发明提供的数据处理方法及装置,使上层应用的机器学习算法可以直接调用统一格式的所需数据,提高了系统的可维护性和易开发性。
5、数据存储介质的高扩展化。本发明提供的数据处理方法及装置,使得采用本发明方案的多并行处理框架在需要添加新类型的存储介质时,可以以最小的开发代价完成开发,同时无需改动多并行处理框架本身的整体框架结构,只需按照新增的存储介质类型增加相应的数据调用方法(即函数),然后采用统一的格式转换方法转换数据格式,即可供上层应用使用。
附图说明
图1是本发明提供的数据处理方法的流程图;
图2是本发明提供的数据处理装置的结构示意图。
具体实施方式
本实施例以多并行处理框架在Spark平台上的应用为例,详细阐述本发明提供的一种用于多并行处理框架的数据处理方法,该数据处理方法的流程图如图1所示。
步骤S1:获取使用环境的配置信息。
具体包括:步骤S1.1:将使用环境的配置信息和用于获取所述配置信息的环境获取方法封装为第一个类;
步骤S1.2:通过所述第一个类提供的所述环境获取方法获取使用环境的配置信息。
在本实施例中,将Spark平台的配置信息,即环境上下文SparkConf和JavaSparkContext封装到一个名为CMContext的类中,该CMContext类用于实现步骤S1中的所有操作。具体而言,CMContext类提供一个名为getJavaSparkContext的方法,用于获取被封装的环境上下文SparkConf和JavaSparkContext。实现上述步骤的部分关键代码如下所示:
//定义CMContext类,并将环境上下文封装到CMContext类中
Figure BDA0001353089500000071
步骤S2:根据所述使用环境的配置信息和底层存储数据属性选择相应的数据调用方法并调用底层存储数据,然后通过统一的格式转换方法对所获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集;
其中,所述底层存储数据属性包括存储介质类型和存储位置信息。
具体包括:步骤S2.1:将所述底层存储数据属性、统一格式抽象数据集和用于获取底层存储数据属性的属性获取方法、用于底层存储数据调用操作的数据调用方法、用于格式转换操作的格式转换方法以及用于获取统一格式抽象数据集的结果获取方法封装为第二个类;
步骤S2.2:通过所述属性获取方法获取所需的底层存储数据属性,其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
步骤S2.3:根据步骤S1获取的使用环境的配置信息和步骤S2.2获取的所述底层存储数据属性,确定数据调用方法,调取底层存储数据,并通过统一的格式转换方法对所获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集。
在本实施例中,上述参数和方法封装为一个名为DataFrame的类,该DataFrame类用于实现步骤2的所有操作。具体而言,DataFrame类包括了用于保存存储介质类型的变量sourceType、用于保存存储位置信息的变量source、用于保存Spark环境上下文的变量cmc以及用于保存进行格式转换后获得的统一格式抽象数据集JavaRDD的变量dataSourceRDD。该DataFrame类提供了用于获取底层存储数据存储位置信息的名为getSource()的方法、用于获取环境上下文的名为getCmc()的方法以及用于获取格式转换后的统一格式抽象数据集的名为getDataSourceRDD()的方法。
为了实现数据格式转换操作,DataFrame类中定义了两套构造函数,分别为DataFrame(SourceType sourceType,String source,CMContext cmc)和DataFrame(SourceType sourceType,String source,String requstCommand,CMContext cmc)。
其中,构造函数DataFrame(SourceType sourceType,String source,CMContextcmc)中包含了执行函数execute(),用于实现从底层存储介质中调用数据并生成统一格式抽象数据集JavaRDD的操作;构造函数DataFrame(SourceType sourceType,Stringsource,String requstCommand,CMContext cmc)中包含了执行函数execute(StringrequestCommand),用于实现从底层存储介质中调用数据并进行查询、过滤等数据操作后再生成统一抽象数据集JavaRDD的操作。具体的,执行函数execute()先根据存储介质类型(即sourceType的值)选择相应的数据调用方法,然后调用底层存储数据并通过map算子将调用到的数据组成key-value形式的JSON格式字符串,并将该字符串保存到dataSourceRDD中;执行函数execute(String requestCommand)也是先根据存储介质类型(即sourceType的值)选择相应的数据调用方法,调用底层存储数据并进行查询、过滤等数据操作,最后再通过map算子将调用到的数据组成key-value形式的JSON格式字符串,并将该字符串保存到dataSourceRDD中。
具体而言,在Spark平台上,以存储介质类型为LOCALFILE为例,执行函数execute()先根据存储介质类型(即sourceType的值)选择对应的数据调用方法,根据数据存储位置(即source的值)调用数据,并通过map算子将调用到的数据转换成一个key-value形式符合JSON格式的字符串,并将其存储到dataSourceRDD中。部分关键代码如下:
Figure BDA0001353089500000081
Figure BDA0001353089500000091
具体而言,在Spark平台上,以存储介质类型为SQL为例,执行函数execute(StringrequestCommand)也是先根据存储介质类型(即sourceType的值)选择相应的数据调用方法,根据数据存储位置(即source的值)调用底层存储数据并进行查询、过滤等数据操作,并通过map算子将调用到的数据转换成一个key-value形式符合JSON格式的字符串,并将其存储到dataSourceRDD中。部分关键代码如下:
Figure BDA0001353089500000092
类似的,当存储介质类型为HDFS时,采用“cmc.getJavaSparkContext().textFile(source)”方法根据source来获取数据源,同时用map算子把调用到的字符串根据key-vlaue格式组成JSON格式字符串,从而获得统一格式的抽象数据集dataSourceRDD。当存储介质类型为HBase时,先用“Configuration conf=JavaHbaseUtils.hbaseConfiguration();”获取HBase数据源,然后通过“Scan scan=new Scan();”加载查询字段和条件,采用“JavaPairRDD<ImmutableBytesWritable,Result>dataSourcePairRDD=cmc.getJavaSparkContext().newAPIHadoopRDD(conf,TableInputFormat.class,ImmutableBytesWritable.class,Result.class);”获取数据,同时用map算子把获取到的数据以key-vlaue格式组成JSON格式字符串,从而得到统一格式的抽象数据集dataSourceRDD。
当存储介质类型为MYSQL时,先用“sqlContext.read().jdbc(url,inputTableName,predicates,prop).javaRDD();”根据数据库连接字串获取MYSQL数据源,然后用map算子把字符串根据查询字段以key-vlaue格式组成JSON格式字符串,从而得到统一格式的抽象数据集dataSourceRDD。当存储介质类型为REDIS时,先用“RedisClientredisClient=new RedisClient(source);”获取数据库链接,根据“KafkaUtils.createDirectStream(jssc,String.class,String.class,StringDecoder.class,StringDecoder.class,kafkaParams,topicsSet);”获取数据,同时用map算子把字符串根据查询字段以key-vlaue格式组成JSON格式字符串,从而得到统一格式的抽象数据集dataSourceRDD。
步骤S3:将所述统一格式抽象数据集提供给上层应用使用。
具体而言,就是通过步骤S2提供的所述结果获取方法(即名为getDataSourceRDD()的方法)获取所述统一格式抽象数据集,并将所述统一格式抽象数据集(即dataSourceRDD)提供给上层应用使用。
在本实施例中,上层应用通过调用DataFrame类中的getDataSourceRDD()方法,获取到统一格式抽象数据集JavaRDD(即参数dataSourceRDD的值),根据上述代码可知,本实施例中的JavaRDD为JSON格式抽象数据集。
本实施例还提供了一种用于多并行处理框架的数据处理装置,图2为该装置的结构示意图。该装置包括:
环境获取单元10,用于获取使用环境的配置信息;
格式转换单元20,用于根据所述使用环境的配置信息和底层存储数据属性选择相应的数据调用方法并调用底层存储数据,然后通过统一的格式转换方法对所需调用的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集;
其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
数据传递单元30,用于将所述统一格式抽象数据集提供给上层应用使用。
环境获取单元10具体用于:将使用环境的配置信息和用于获取所述配置信息的环境获取方法封装为第一个类;通过所述第一个类提供的所述环境获取方法获取使用环境的配置信息。在本实施例中,环境获取单元10完成CMContext类的封装,并调用getJavaSparkContext()方法以获取Spark环境的配置信息。
格式转换单元20具体用于:将所述底层存储数据属性、统一格式抽象数据集和用于获取底层存储数据属性的属性获取方法、用于底层存储数据调用操作的数据调用方法、用于格式转换操作的格式转换方法以及用于获取统一格式抽象数据集的结果获取方法封装为第二个类;通过所述属性获取方法获取所需的底层存储数据属性,其中,所述底层存储数据属性包括存储介质类型和存储位置信息;根据获取的使用环境的配置信息和所述底层存储数据属性,确定数据调用方法,调取底层存储数据,并通过统一的格式转换方法对所获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集;通过所述结果获取方法获取所述统一格式抽象数据集。在本实施例中,格式转换单元20完成DataFrame类的封装,并通过DataFrame类提供的方法进行数据调用和格式转换操作,最后通过DataFrame类提供的getDataSourceRDD()方法获取到统一格式抽象数据集JavaRDD(即参数dataSourceRDD的值),本实施例中的JavaRDD为JSON格式抽象数据集。
最后,数据传递单元30通过格式转换单元20提供的结果获取方法(即名为getDataSourceRDD()的方法)获取到的统一格式抽象数据集dataSourceRDD发送给上层应用,供上层应用使用。
关于上述装置实施例中各个单元具体工作原理可参照上述方法实施例中各个步骤的实施细节的相应部分的描述,此处不再赘述。
综上所述,本发明提供的一种用于多并行处理框架的数据处理方法及装置,通过根据使用环境配置信息和底层存储数据存储介质类型,选择相应的数据调用方法调用底层存储数据,然后再用统一的格式转换方法,将底层存储数据转化为统一格式抽象数据集并提供给上层应用使用。由此,上层应用在调用底层存储数据时,不用根据不同存储介质、操作方式、数据结构而提供一套相应的数据解析方式,而是只需要使用本发明提供的统一格式抽象数据集即可,完全不必了解底层如何实现,如何存取。本发明提供的方案充分考虑了数据存储介质的多样性,既符合软件低耦合高内聚的开发模式,又有利于维护和扩展,同时改善了代码量异常复杂和繁重的问题,可以进一步提高多并行处理框架的扩展性、通用性和易用性。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (8)

1.一种用于多并行处理框架的数据处理方法,其特征在于,包括以下步骤:
步骤S1:获取使用环境的配置信息;所述配置信息用于表明应用平台类型;
步骤S2:根据所述使用环境的配置信息和底层存储数据属性选择相应的数据调用方法并调用底层存储数据,然后通过统一的格式转换方法对所获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集;
所述统一格式抽象数据集为JSON格式抽象数据集;
其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
步骤S3:将所述统一格式抽象数据集提供给上层应用使用。
2.根据权利要求1所述的数据处理方法,其特征在于,所述步骤S1具体包括:
步骤S1.1:将使用环境的配置信息和用于获取所述配置信息的环境获取方法封装为第一个类;
步骤S1.2:通过所述第一个类提供的所述环境获取方法获取使用环境的配置信息。
3.根据权利要求2所述的数据处理方法,其特征在于,所述步骤S2具体包括:
步骤S2.1:将所述底层存储数据属性、统一格式抽象数据集和用于获取底层存储数据属性的属性获取方法、用于底层存储数据调用操作的数据调用方法、用于格式转换操作的格式转换方法以及用于获取统一格式抽象数据集的结果获取方法封装为第二个类;
步骤S2.2:通过所述属性获取方法获取所需的底层存储数据属性,其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
步骤S2.3:根据步骤S1获取的使用环境的配置信息和步骤S2.2获取的所述底层存储数据属性,确定数据调用方法,调取底层存储数据,并通过统一的格式转换方法对所获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集。
4.根据权利要求3所述的数据处理方法,其特征在于,所述步骤S3具体为:
通过步骤S2提供的所述结果获取方法获取所述统一格式抽象数据集,并将所述统一格式抽象数据集提供给上层应用使用。
5.一种用于多并行处理框架的数据处理装置,其特征在于,包括以下单元:
环境获取单元,用于获取使用环境的配置信息;所述配置信息用于表明应用平台类型;
格式转换单元,用于根据所述使用环境的配置信息和底层存储数据属性选择相应的数据调用方法并调用底层存储数据,然后通过统一的格式转换方法对所需调用的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集;
所述统一格式抽象数据集为JSON格式抽象数据集;
其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
数据传递单元,用于将所述统一格式抽象数据集提供给上层应用使用。
6.根据权利要求5所述的数据处理装置,其特征在于,所述环境获取单元具体用于:
将使用环境的配置信息和用于获取所述配置信息的环境获取方法封装为第一个类;
通过所述第一个类提供的所述环境获取方法获取使用环境的配置信息。
7.根据权利要求6所述的数据处理装置,其特征在于,所述格式转换单元具体用于:
将所述底层存储数据属性、统一格式抽象数据集和用于获取底层存储数据属性的属性获取方法、用于底层存储数据调用操作的数据调用方法、用于格式转换操作的格式转换方法以及用于获取统一格式抽象数据集的结果获取方法封装为第二个类;
通过所述属性获取方法获取所需的底层存储数据属性,其中,所述底层存储数据属性包括存储介质类型和存储位置信息;
根据获取的使用环境的配置信息和所述底层存储数据属性,确定数据调用方法,调取底层存储数据,并通过统一的格式转换方法对所获得的底层存储数据集中的底层存储数据进行数据格式转换,得到统一格式抽象数据集。
8.根据权利要求7所述的数据处理装置,其特征在于,所述数据传递单元具体用于:
通过格式转换单元提供的所述结果获取方法获取所述统一格式抽象数据集,并将所述统一格式抽象数据集提供给上层应用使用。
CN201710584226.4A 2017-07-18 2017-07-18 一种用于多并行处理框架的数据处理方法及装置 Active CN107480202B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710584226.4A CN107480202B (zh) 2017-07-18 2017-07-18 一种用于多并行处理框架的数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710584226.4A CN107480202B (zh) 2017-07-18 2017-07-18 一种用于多并行处理框架的数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN107480202A CN107480202A (zh) 2017-12-15
CN107480202B true CN107480202B (zh) 2020-06-02

Family

ID=60595186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710584226.4A Active CN107480202B (zh) 2017-07-18 2017-07-18 一种用于多并行处理框架的数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN107480202B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109271456A (zh) * 2018-11-16 2019-01-25 中国银行股份有限公司 主机数据库文件导出方法及装置
CN110704518B (zh) * 2019-08-26 2022-11-08 苏宁云计算有限公司 基于Flink引擎的业务数据处理方法及装置
CN111125013B (zh) * 2019-12-26 2023-03-17 北京锐安科技有限公司 一种数据入库方法、装置、设备及介质
CN112052239B (zh) * 2020-08-12 2024-02-27 网宿科技股份有限公司 数据封装方法、电子设备及存储介质
CN114880103B (zh) * 2022-07-11 2022-09-09 中电云数智科技有限公司 一种flink任务适配hadoop生态的系统和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573115A (zh) * 2015-02-04 2015-04-29 新余兴邦信息产业有限公司 支持多类型数据库操作的集成接口的实现方法及系统
CN105550318A (zh) * 2015-12-15 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于Spark大数据处理平台的查询方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573115A (zh) * 2015-02-04 2015-04-29 新余兴邦信息产业有限公司 支持多类型数据库操作的集成接口的实现方法及系统
CN105550318A (zh) * 2015-12-15 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于Spark大数据处理平台的查询方法

Also Published As

Publication number Publication date
CN107480202A (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
CN107480202B (zh) 一种用于多并行处理框架的数据处理方法及装置
Breß et al. Gpu-accelerated database systems: Survey and open challenges
You et al. Large-scale spatial join query processing in cloud
Zheng et al. PreDatA–preparatory data analytics on peta-scale machines
CN103246749B (zh) 面向分布式计算的矩阵数据库系统及其查询方法
US9128991B2 (en) Techniques to perform in-database computational programming
US10733184B2 (en) Query planning and execution with source and sink operators
US20130275364A1 (en) Concurrent OLAP-Oriented Database Query Processing Method
US20130262425A1 (en) Techniques to perform in-database computational programming
US10936616B2 (en) Storage-side scanning on non-natively formatted data
CN104965689A (zh) 一种cpu/gpu的混合并行计算方法及装置
CN103729453A (zh) 一种HBase表联合查询优化的方法
US20150347101A1 (en) R-language integration with a declarative machine learning language
PT105174A (pt) Instrumento e método para processamento contínuo de dados usando processadores massivamente paralelos
Chen et al. Benchmarking Harp-DAAL: High performance hadoop on KNL clusters
US9195682B2 (en) Integrated analytics on multiple systems
US10397317B2 (en) Boomerang join: a network efficient, late-materialized, distributed join technique
Sakr Big data processing stacks
Tu et al. Data management systems on GPUs: promises and challenges
Wang et al. Excavating the potential of graph workload on rdma-based far memory architecture
Yuan et al. VDB-MR: MapReduce-based distributed data integration using virtual database
Breß et al. Exploring the design space of a GPU-aware database architecture
Sun et al. DStore: A holistic key-value store exploring near-data processing and on-demand scheduling for compaction optimization
Ye Research on the key technology of big data service in university library
CN107562943B (zh) 一种数据计算的方法及系统

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Tang Zhuo

Inventor after: Liu Kunkun

Inventor after: Chen Du

Inventor before: Liu Kunkun

Inventor before: Tang Zhuo

Inventor before: Chen Du

GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20171215

Assignee: TEEWON DIGITAL MEDIA TECHNOLOGY (HUNAN) Co.,Ltd.

Assignor: HUNAN University

Contract record no.: X2020980006435

Denomination of invention: A data processing method and device for multi parallel processing framework

Granted publication date: 20200602

License type: Common License

Record date: 20200925