一种大数据处理方法及装置与流程

文档序号:13804839阅读:231来源:国知局
一种大数据处理方法及装置与流程

本发明实施例涉及大数据处理技术领域,尤其涉及一种大数据处理方法及装置。



背景技术:

伴随着科学技术的发展,各行各业信息化程度越来越高,各行业的数据都沿着海量数据的方向发展。面对如此庞大的数据量,用户从中获取到有价值的数据是现如今关注的焦点。

在各个数据领域内,常见的数据集的清洗办法都是将存储的某张数据表提取、转换和加载(extract-transform-load,简称etl)到清洗后的数据表中。

大数据的存储和检索方案很多,在大数据特征之一就是多样性,业务场景为了满足会有不同的引擎或者存储选择,在多样化解决方案的同时,造成了数据之间进行交换变的复杂,引擎之间的数据存取规则都有个性化的支持。etl的过程中,会有上游数据源写入多个下游数据源,或者多个上游数据源写入单个下游数据源等等。例如hbase的数据到mysql和elasticsearch的支持,这种对于hbase就是一对二的数据扇出。所以类似这种跨引擎(或者跨版本,不同api)的方式,为了保持通用,需要进行需求的抽象。在不同的目标中有约定的规范。

但是在实际的使用过程中,面对一张庞大的数据表,当上游数据的整张数据表的所有列的数据都准备好之后再传入到下游数据库中,这样就导致了构建数据表所耗费的时间过长,使得资源利用率底下的问题。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供一种大数据处理方法及装置。

第一方面,本发明实施例提供一种大数据处理方法,包括:

提取至少一个所述源数据表中的所有待处理字段对应的数据,以及每一源数据表对应的主键;

根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,获得转换后数据;

根据所述每一源数据表对应的主键和所述目的数据表对应的主键,将所述转换后数据加载到目的数据表中。

第二方面,本发明实施例提供一种大数据处理装置,包括:

提取模块,用于提取至少一个所述源数据表中的所有待处理字段对应的数据,以及每一源数据表对应的主键;

转换模块,用于根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,获得转换后数据;

加载模块,用于根据所述每一源数据表对应的主键和所述目的数据表对应的主键,将所述转换后数据加载到目的数据表中。

第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,

所述处理器和所述存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:

所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。

本发明实施例提供的一种大数据处理方法及装置,通过提取源数据表中待处理字段的数据,并对待处理字段的数据进行格式转换,然后加载到目的数据表中,不需要等待源数据表中所有数据都构建完毕再进行数据处理,从而节省了数据处理的时间,提高了资源利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种大数据处理方法流程示意图;

图2为本发明另一实施例提供的一种大数据处理方法示意图;

图3为本发明实施例提供的一种大数据处理装置结构示意图;

图4为本发明另一实施例提供的一种大数据处理装置结构示意图;

图5为本发明实施例提供的电子设备实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种大数据处理方法流程示意图,如图1所示,所述方法,包括:

步骤101:提取至少一个所述源数据表中的所有待处理字段对应的数据,以及每一源数据表对应的主键;

具体的,当源数据表中用户所需要的字段对应的数据构建完成之后,提取该源数据表中的这些用户所需要的字段对应的数据,其中,应当说明的是,用户所需要的字段为待处理字段,且源数据表可以为一个也可以为多个。每个源数据表中都包含一个主键,设定主键的目的是为了保证数据在聚合或者更新的时候有依据,因此,需要提取源数据表中的主键。

步骤102:根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,获得转换后数据;

具体的,每种数据库都有自己存储数据的格式,因此,如果源数据表对应的数据库与目的数据表不同(跨版本,不同api),则需要根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,转换成目的数据表能够存储的格式,获得转换后数据。

步骤103:根据所述每一源数据表对应的主键和所述目的数据表对应的主键,将所述转换后数据加载到目的数据表中。

具体的,每个源数据表及目的数据表必须存在业务主键或者联合主键,为了保证数据在聚合或者更新的时候有所依据,例如:在nosql的引擎中作为rowkey,在关系数据库中作为主键,在elasticsearch中作为主键key。因此,可以根据每一源数据表对应的主键和目的数据表对应的主键,将转换后数据加载到目的数据表中,用户通过目的数据表便可以便捷的从海量的数据中获得所需要的数据。

可以理解的是,上述对数据处理的过程为etl过程,且源数据表对应的数据库可以为:oracle、mysql、sqlserver、redis或hbase,还可以为其他类型的数据库,本发明实施例对此不作具体限定。再有,目的数据表对应的数据库为nosql数据库,也可以为其他数据库。

本发明实施例通过提取源数据表中待处理字段的数据,并对待处理字段的数据进行格式转换,然后加载到目的数据表中,不需要等待源数据表中所有数据都构建完毕再进行数据处理,从而节省了数据处理的时间,提高了资源利用率。

在上述实施例的基础上,所述方法,还包括:

根据需求预先设置至少一个源数据表中各个字段的权重,根据各个字段的权重大小依次构建对应的数据。

具体的,在对源数据表中的待处理字段进行提取之前,首先要确保该源数据表中的待处理字段的数据已经构建完成,因此,可以预先根据需求设置源数据表中各个字段的权重,可以将用户需要的待处理字段的权重设置为最大,其他字段的权重设置为一个较小的值,根据字段的权重大小依次进行构建数据。例如:某公司领导最关心公司的财务状况和人资情况,因此,在源数据表中可以将财务状况和人资情况对应的字段的权重设置为一个较大的值,应当说明的是,每个字段的权重值的大小可以根据实际情况自行调整,本发明实施例对此不做具体限定。

本发明实施例通过根据权重大小来构建源数据表中的字段对应的数据,从而可以不需要将整个源数据表中所有数据构建完成才进行数据处理,从而为数据能够高效处理提供了基础。

在上述实施例的基础上,所述根据所述每一源数据表对应的主键和所述目的数据表对应的主键,将所述转换后数据加载到目的数据表中,包括:

将所述每一源数据表对应的主键与所述目的数据表对应的主键进行比对,若目标源数据表对应的主键与所述目的数据表对应的主键相同,则将所述目标源数据表对应的转换后数据加载到目标数据库中。

具体的,由于每个源数据表都对应一个主键,且目的数据表也有主键,因此可以将每一个源数据表的主键与目的数据表对应的主键进行比较,可以将正在作比较的源数据表作为目标源数据表,如果目标源数据表的主键与目的数据表的主键相同,则说明该目标源数据表中的转换后数据加载到目的数据表中,如果目标源数据表的主键与目的数据表的主键不相同,则说明该目标源数据表中的转换后数据不能加载到目标数据表中。

本发明实施例通过主键的比较,将主键相同的目标源数据表的转换后数据加载到目的数据表中,从而提高了目的数据表中数据存储的成功率。

在上述实施例的基础上,在所述将所述转换后数据加载到目的数据表中之前,所述方法,还包括:

根据预设规则将所述转换后数据进行分割,获得多个分割后数据;

相应的,所述将所述转换后数据加载到目的数据表中,包括:

通过相应数量的服务器将所述多个分割后数据并行加载到所述目的数据表中。

具体的,在大数据的数据交换过程中,一般为了提高效率,会对大数据进行多批次的并发处理,这就需要对大数据进行分割,即对转换后数据进行分割,且分割的预设规则会按照单一字段进行截取,字段的类型可以是时间戳,也可以根据主键的排序后分批次获取,还可以有其他的分割方法,本发明实施例对此不做具体限定,在源数据表对应的数据库允许的情况下,按照多批次的并发加载,可以做到很好的数据获取,把串行的操作截断成多断做并发。因此可以将转换后数据分割成多份获得多个分割后数据,然后根据分割后数据的个数,用相同数量的服务器对这些分割后数据进行并行加载到目的数据表中。例如:转换后数据有100万条,如果用一个服务器来加载到目的数据表中,则需要耗时过长,此时可以将100万条数据进行分割成100份,然后用100个服务器,每个服务器负责一份数据,同时将各自负责的数据加载到目的数据表中。

本发明实施例通过使用并行加载的方式,将转换后数据加载到目的数据表中,进一步提高了数据处理的效率。

图2为本发明另一实施例提供的一种大数据处理方法示意图,如图2所示,sourcea和sourceb为源数据表,其对应的数据源可以为oracle、mysql、sqlserver、redis、hbase以及其他,desta为目的数据表,sourcea中包括a、b、c、d、e等字段,sourceb包括a、h、i、j、k等字段,且sourcea、sourceb和desta中的字段a为主键,当sourcea中的b和c字段的数据构建完成后,选择a、b和c出来,当sourceb中的h和i字段的数据构建完成后,选择a、h和i出来,从源数据表中选择数据的过程称为扇出,将选择的字段经过etl策略算法处理,并加载到desta中,将数据加载到desta中过程称为扇入。

本发明实施例通过提取源数据表中待处理字段的数据,并对待处理字段的数据进行格式转换,然后加载到目的数据表中,不需要等待源数据表中所有数据都构建完毕再进行数据处理,从而节省了数据处理的时间,提高了资源利用率。

图3为本发明实施例提供的一种大数据处理装置结构示意图,如图3所示,所述装置,包括:提取模块301、转换模块302和加载模块303,其中:

提取模块301用于提取至少一个所述源数据表中的所有待处理字段对应的数据,以及每一源数据表对应的主键;转换模块302用于根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,获得转换后数据;加载模块303用于根据所述每一源数据表对应的主键和所述目的数据表对应的主键,将所述转换后数据加载到目的数据表中。

具体的,当源数据表中用户所需要的字段对应的数据构建完成之后,提取模块301提取该元数据表中的这些用户所需要的字段对应的数据,其中,应当说明的是,用户所需要的字段为待处理字段,且源数据表可以为一个也可以为多个。每个源数据表中都包含一个主键,设定主键的目的是为了保证数据在聚合或者更新的时候有依据,因此,需要提取源数据表中的主键。每种数据库都有自己存储数据的格式,因此,如果源数据表对应的数据库与目的数据表不同(跨版本,不同api),则转换模块302需要根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,转换成目的数据表能够存储的格式,获得转换后数据。每个源数据表及目的数据表必须存在业务主键或者联合主键,为了保证数据在聚合或者更新的时候有所依据,例如:在nosql的引擎中作为rowkey,在关系数据库中作为主键,在elasticsearch中作为主键key。因此,加载模块303可以根据每一源数据表对应的主键和目的数据表对应的主键,将转换后数据加载到目的数据表中,用户通过目的数据表便可以便捷的从海量的数据中获得所需要的数据。

本发明提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

本发明实施例通过提取源数据表中待处理字段的数据,并对待处理字段的数据进行格式转换,然后加载到目的数据表中,不需要等待源数据表中所有数据都构建完毕再进行数据处理,从而节省了数据处理的时间,提高了资源利用率。

在上述实施例的基础上,所述装置,还包括:

构建模块,用于根据需求预先设置至少一个源数据表中各个字段的权重,根据各个字段的权重大小依次构建对应的数据。

具体的,在对源数据表中的待处理字段进行提取之前,首先要确保该源数据表中的待处理字段的数据已经构建完成,因此,可以预先根据需求设置源数据表中各个字段的权重,构建模块可以将用户需要的待处理字段的权重设置为最大,其他字段的权重设置为一个较小的值,根据字段的权重大小依次进行构建数据。

本发明实施例通过根据权重大小来构建源数据表中的字段对应的数据,从而可以不需要将整个源数据表中所有数据构建完成才进行数据处理,从而为数据能够高效处理提供了基础。

在上述实施例的基础上,所述加载模块,具体用于:

将所述每一源数据表对应的主键与所述目的数据表对应的主键进行比对,若目标源数据表对应的主键与所述目的数据表对应的主键相同,则将所述目标源数据表对应的转换后数据加载到目标数据库中。

具体的,由于每个源数据表都对应一个主键,且目的数据表也有主键,因此加载模块可以将每一个源数据表的主键与目的数据表对应的主键进行比较,可以将正在作比较的源数据表作为目标源数据表,如果目标源数据表的主键与目的数据表的主键相同,则说明该目标源数据表中的转换后数据加载到目的数据表中,如果目标源数据表的主键与目的数据表的主键不相同,则说明该目标源数据表中的转换后数据不能加载到目标数据表中。

本发明实施例通过主键的比较,将主键相同的目标源数据表的转换后数据加载到目的数据表中,从而提高了目的数据表中数据存储的成功率。

图4为本发明另一实施例提供的一种大数据处理装置结构示意图,如图4所示,所述装置包括:通用选择模块401和通过插入模块402,其中,

通用选择模块401用于从第一源数据表4011中选择待处理字段b和c对应的数据以及主键a,从第二源数据表4012中选择待处理字段h和i对应的数据以及主键a,通用插入模块402用于将第一源数据表中的待处理字段b和c对应的数据以及第二源数据表中的待处理字段h和i对应的数据经过etl过程后插入到目的数据表中。应当说明的是,在插入时需要进行主键比对,如果第一源数据表的主键和第二源数据表的主键均与目的数据表的主键相同,则可以进行插入操作。分别插入到目的数据表后便完成了数据的结合,且目的数据表中的数据可以使用户使用。

本发明实施例通过提取源数据表中待处理字段的数据,并对待处理字段的数据进行格式转换,然后加载到目的数据表中,不需要等待源数据表中所有数据都构建完毕再进行数据处理,从而节省了数据处理的时间,提高了资源利用率。

图5为本发明实施例提供的电子设备实体结构示意图,如图5所示,所述电子设备,包括:处理器(processor)501、存储器(memory)502和总线503;其中,

所述处理器501和存储器502通过所述总线503完成相互间的通信;

所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:提取至少一个所述源数据表中的所有待处理字段对应的数据,以及每一源数据表对应的主键;根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,获得转换后数据;根据所述每一源数据表对应的主键和所述目的数据表对应的主键,将所述转换后数据加载到目的数据表中。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:提取至少一个所述源数据表中的所有待处理字段对应的数据,以及每一源数据表对应的主键;根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,获得转换后数据;根据所述每一源数据表对应的主键和所述目的数据表对应的主键,将所述转换后数据加载到目的数据表中。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:提取至少一个所述源数据表中的所有待处理字段对应的数据,以及每一源数据表对应的主键;根据目的数据表的存储格式对每一个待处理字段对应的数据进行格式转换,获得转换后数据;根据所述每一源数据表对应的主键和所述目的数据表对应的主键,将所述转换后数据加载到目的数据表中。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的装置等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1