数据处理方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 16:09:34
技术领域
本发明涉及数据处理技术领域,具体涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
传统的数据处理方式分为两大类,一类是针对事物处理流程简单的,采用实时数据处理方式,一类是针对事物处理流程复杂的,则采用在固定时间点进行批数据处理方式。
发明人在实现本发明的过程中发现,上述两种数据处理方式,均对数据库的性能消耗太大,导致数据库的成本太高;且当数据量较大时,会由于提交时间过长,导致数据信息短时间内无法进行访问,从而降低了数据处理的时效性。
发明内容
鉴于以上内容,有必要提出一种数据处理方法、装置、电子设备及存储介质,能够对分布式集群的批数据处理方式进行优化,提高了数据的处理效率,降低了数据库的性能消耗,节约了数据库的成本。
本发明的第一方面提供一种数据处理方法,所述方法包括:
基于业务系统的多批历史业务数据训练得到双层集群性能模型;
使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数;
根据所述目标集群配置参数生成配置文件,并将所述配置文件配置于分布式集群中;
响应于对所述业务系统的业务数据的处理指令,根据所述处理指令识别所述业务数据的处理类型;
通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中。
在一个可选的实施方式中,所述基于业务系统的多批历史业务数据训练得到双层集群性能模型包括:
计算每批所述历史业务数据的数据大小;
获取所述分布式集群处理每批所述历史业务数据时的配置参数、应用类型及整体处理时间;
按照预设的分组策略对所述分布式集群处理每批所述历史业务数据的处理阶段进行分组,并计算每组的阶段处理时间;
将每批所述历史业务数据的数据大小及对应的所述配置参数、所述应用类型和每组的阶段处理时间作为模型的输入数据,将所述整体处理时间作为模型的训练目标;
根据所述模型的输入数据及所述模型的训练目标,基于梯度提升决策树算法进行训练,得到所述双层集群性能模型。
在一个可选的实施方式中,在所述使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数之前,所述方法还包括:
判断所述应用类型的数量是否大于预设数量阈值;
当所述应用类型的数量大于或者等于所述预设数量阈值时,使用第一种群生成模型根据所述应用类型生成初始种群;
当所述应用类型的数量小于所述预设数量阈值时,使用第二种群生成模型根据所述应用类型生成所述初始种群;
在所述初始种群的基础上使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数。
在一个可选的实施方式中,所述使用第一种群生成模型根据所述应用类型生成初始种群包括:
为每个所述应用类型随机生成第一标识或者生成第二标识;
根据所述第一标识或者所述第二标识对所述应用类型进行排列组合;
根据所有排列组合对应的应用类型及标识生成所述初始种群。
在一个可选的实施方式中,所述使用第二种群生成模型根据所述应用类型生成所述初始种群包括:
初始化比例值序列;
迭代读取所述比例值序列中的一个目标比例值,并从所述应用类型中随机选择所述目标比例值的目标应用类型;
为所述目标应用类型生成第一标识,及为其余应用类型生成第二标识;
将所述目标应用类型及对应的所述第一标识,所述其余应用类型及对应的所述第二标识确定为目标数据集;
根据所述比例值序列中的每个目标比例值对应的目标数据集生成所述初始种群。
在一个可选的实施方式中,所述根据所述处理指令识别所述业务数据的处理类型包括:
获取距离所述业务数据的采集时间最近的目标历史业务数据;
将所述业务数据与所述目标历史业务数据进行逐字段及对应字段值的匹配;
当所述业务数据与所述目标历史业务数据中字段匹配成功但对应字段值匹配失败,则确定所述业务数据的处理类型为更新;
当所述业务数据中存在某个字段,但所述字段不在所述目标历史业务数据中,则确定所述业务数据的处理类型为新增;
当所述目标历史业务数据中存在某个字段,但所述字段不在所述业务数据中,则确定所述业务数据的处理类型为删除。
在一个可选的实施方式中,所述通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中包括:
当所述处理类型为所述新增时,以数据流的方式将所述业务数据放入消息队列中,并所述消息队列中的消息被消费后,将所述业务数据写入所述预设数据库中;
当所述处理类型为所述更新时,直接覆盖所述预设数据库中与所述业务数据对应的目标历史业务数据;
当所述处理类型为所述删除时,调用所述预设数据库的删除端口对所述业务数据进行删除操作。
本发明的第二方面提供一种数据处理装置,所述装置包括:
训练模块,用于基于业务系统的多批历史业务数据训练得到双层集群性能模型;
寻优模块,用于使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数;
配置模块,用于根据所述目标集群配置参数生成配置文件,并将所述配置文件配置于分布式集群中;
识别模块,用于响应于对所述业务系统的业务数据的处理指令,根据所述处理指令识别所述业务数据的处理类型;
处理模块,用于通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中。
本发明的第三方面提供一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述数据处理方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述数据处理方法。
综上所述,本发明所述的数据处理方法、装置、电子设备及存储介质,首先基于业务系统的多批历史业务数据训练得到双层集群性能模型,双层集群性能模型考虑了Map任务和Reduce任务在处理时间上的重叠,使得训练得到的双层集群性能模型的预测精度更高,接着使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数,从而根据所述目标集群配置参数生成配置文件并将所述配置文件配置于分布式集群中,能够利用固定的集群资源使得应用性能达到最优,有助于提高数据的处理效率,在接收到业务系统的业务数据的处理指令时,根据所述处理指令识别所述业务数据的处理类型,根据所述处理类型将所述业务数据更新至预设数据库中,实现了大批量的数据更新变成了针对性的小批量变化,从而减小了数据库的性能消耗,节约了数据库的成本。
附图说明
图1是本发明实施例一提供的数据处理方法的流程图。
图2是本发明实施例二提供的数据处理装置的结构图。
图3是本发明实施例三提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述在一个可选的实施方式中实施例的目的,不是旨在于限制本发明。
本发明实施例提供的数据处理方法由电子设备执行,相应地,数据处理装置运行于电子设备中。
实施例一
图1是本发明实施例一提供的数据处理方法的流程图。所述数据处理方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,基于业务系统的多批历史业务数据训练得到双层集群性能模型。
业务系统是指生产业务数据的企业系统,例如,在金融应用场景中,业务系统可以是银行系统或者保险系统,银行系统生产的业务数据可以为交易相关的数据,保险系统生产的业务数据可以为保险相关的数据。业务系统在真实的生成环境中进行生成经营时,会产生一批业务数据,每批业务数据会传输到分布式集群中进行处理,本实施例中的集群可以采用Hadoop分布式系统,也可以采用其他分布式系统,例如,Spark分布式系统等,不做具体限制。为便于清楚的理解本发明实施例所述的方法,下文以Hadoop分布式系统作为集群框架为例。
历史业务数据是相较于当前时间而言的业务数据。
在一个可选的实施方式中,所述基于业务系统的多批历史业务数据训练得到双层集群性能模型包括:
计算每批所述历史业务数据的数据大小;
获取所述分布式集群处理每批所述历史业务数据时的配置参数、应用类型及整体处理时间;
按照预设的分组策略对所述分布式集群处理每批所述历史业务数据的处理阶段进行分组,并计算每组的阶段处理时间;
将每批所述历史业务数据的数据大小及对应的所述配置参数、所述应用类型和每组的阶段处理时间作为模型的输入数据,将所述整体处理时间作为模型的训练目标;
根据所述模型的输入数据及所述模型的训练目标,基于梯度提升决策树算法进行训练,得到所述双层集群性能模型。
MapReduce是Hadoop中的一个计算模型,Hadoop中运行的一个MapReduce应用称之为一个MapReduce作业,一般而言,一个MapReduce作业通常包含两个不同的阶段,即映射(Map)阶段和归约(Reduce)阶段。在Map阶段,Map函数接收一个
在一个给定的集群中,集群资源通常是固定不变的,因此,在给定的集群上以不同的配置参数和不同的输入数据运行不同的MapReduce应用,可以实现对MapReduce应用的处理时间进行预测。集群中MapReduce作业的运行时间与MapReduce应用的应用类型、MapReduce应用需要处理的数据量及配置参数有关。由于Map阶段和Reduce阶段之间存在复杂的相互作用,Map任务和Reduce任务会相互抢占资源,处理时间存在重叠,因而整体运行时间和阶段运行时间并非简单的线性关系,同时为了简化模型的结构,则可以将MapReduce应用按照Map阶段和Reduce阶段分为两个组。即,双层集群性能模型的第一层对应MapReduce作业的底层执行阶段,第二层对应整个MapReduce作业。
根据所述模型的输入数据及所述模型的训练目标,基于梯度提升决策树(Gradient Boosting Decision Tree,GBDT)算法进行训练,利用损失函数负梯度在当前集群性能模型的取值作为对梯度提升决策树算法中的回归模型的残差的近似,得到所述集群性能模型。
传统的机器学习训练方法,将整体运行时间和阶段运行时间认定为简单的线性关系,上述可选的实施方式,通过将集群处理历史业务数据的处理阶段进行分组,基于每组的阶段处理时间和整体处理时间两两层因素共同训练得到双层集群性能模型,考虑了Map任务和Reduce任务在处理时间上的重叠,使得训练得到的双层集群性能模型的预测精度更高。
S12,使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数。
对于MapReduce应用,默认的配置参数往往难以充分利用集群资源使应用性能达到最优,而通过配置参数调整则可以解决这个问题,然而,不同MapReduce应用对应的最优配置往往不同,在缺乏对底层进行细节的情况下,难以进行准确的参数调整。
遗传算法根据所述双层集群性能模型进行适应度计算,保存最优个体,再进行选择操作输出种群数据,将经过选择操作后的种群通过一系列基本遗传操作,例如,交叉、变异、重组后,生成下一代种群,迭代计算适应度。在迭代训练结束时,输出集群配置参数的最优解。
在一个可选的实施方式中,在所述使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数之前,所述方法还包括:
判断所述应用类型的数量是否大于预设数量阈值;
当所述应用类型的数量大于或者等于所述预设数量阈值时,使用第一种群生成模型根据所述应用类型生成初始种群;
当所述应用类型的数量小于所述预设数量阈值时,使用第二种群生成模型根据所述应用类型生成所述初始种群;
在所述初始种群的基础上使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数。
所述应用类型的数量大于或者等于所述预设数量阈值,表明应用类型属于超大样本数据集,使用第一种群生成模型能够更快速的生成所述初始种群,从而提高目标集群配置参数的寻优效率;所述应用类型的数量小于所述预设数量阈值,表明应用类型属于小样本数据集,使用第二种群生成模型,能够生成多样性的初始种群,从而避免寻找到过拟合的目标集群配置参数。
该可选的实施方式,采用梯度提升回归树对性能模型进行训练,利用遗传算法的全局搜索能力,高效的对Hadoop配置参数空间进行探索,同时避免陷入局部最优。双层集群性能模型反映了MapReduce应用、输入数据、配置参数之间的复杂关系,准确的集群性能模型使得配置参数效果的快速评估乃至最优配置的搜索成为可能。
在一个可选的实施方式中,所述使用第一种群生成模型根据所述应用类型生成初始种群包括:
为每个所述应用类型随机生成第一标识或者生成第二标识;
根据所述第一标识或者所述第二标识对所述应用类型进行排列组合;
根据所有排列组合对应的应用类型及标识生成所述初始种群。
其中,所述第一标识可以为1,代表应用类型被选中参与行为双层集群性能模型的训练;所述第二标识可以为0,代表应用类型未被选中参与行为双层集群性能模型的训练。
由于对所述应用类型进行分群后,同一个群的应用类型之间具有较大的相关性,因而,可以设置同一个目标数据集中的所有应用类型均为第一标识或者均为第二标识。
上述可选的实施方式,通过对应用类型进行分群,再对同一个目标数据集使用同一个标识,最后通过排列组合的方式生成所述初始种群,既减少了遗传算法的寻优搜索空间,又能够将所有可能的解都考虑进去,使得遗传算法得到局部空间的最优解。
在一个可选的实施方式中,所述使用第二种群生成模型根据所述应用类型生成所述初始种群包括:
初始化比例值序列;
迭代读取所述比例值序列中的一个目标比例值,并从所述应用类型中随机选择所述目标比例值的目标应用类型;
为所述目标应用类型生成第一标识,及为其余应用类型生成第二标识;
将所述目标应用类型及对应的所述第一标识,所述其余应用类型及对应的所述第二标识确定为目标数据集;
根据所述比例值序列中的每个目标比例值对应的目标数据集生成所述初始种群。
示例性的,假设初始化比例值序列[1,2,3,…,100],第1次从比例值序列中读取比例值“1”,则从所述应用类型中随机选择1%的目标应用类型,并为1%的目标应用类型生成第一标识,为其余99%的应用类型生成第二标识,得到一个目标数据集;第2次从比例值序列中读取比例值“2”,则从所述应用类型中随机选择2%的目标应用类型,并为2%的目标应用类型生成第一标识,为其余98%的应用类型生成第二标识,得到一个目标数据集;以此类推;第100次从比例值序列中读取比例值“100”,则从所述应用类型中随机选择100%的目标应用类型,并为100%的目标应用类型生成第一标识,得到一个目标数据集;将这100个目标数据集作为初始种群。
S13,根据所述目标集群配置参数生成配置文件,并将所述配置文件配置于分布式集群中。
当一个MapReduce应用部署到Hadoop集群中时,即可以根据所需处理的业务数据的大小,自动搜索最优的Hadoop配置参数,并将其应用到集群中,从而使得MapReduce应用的性能得到提高。
S14,响应于对所述业务系统的业务数据的处理指令,根据所述处理指令识别所述业务数据的处理类型。
处理指令可以由业务系统的用户进行触发,也可以由集群的用户进行触发。
业务系统的业务数据相对业务系统的历史业务数据而言,是当前时间内需要处理的业务数据。当触发了对业务系统的业务数据的处理指令,集群对处理指令进行响应,并根据处理指令识别业务数据的更新类型。
其中,处理类型可以包括:新增,删除,更新。
在一个可选的实施方式中,所述根据所述处理指令识别所述业务数据的处理类型包括:
获取距离所述业务数据的采集时间最近的目标历史业务数据;
将所述业务数据与所述目标历史业务数据进行逐字段及对应字段值的匹配;
当所述业务数据与所述目标历史业务数据中字段匹配成功但对应字段值匹配失败,则确定所述业务数据的处理类型为更新;
当所述业务数据中存在某个字段,但所述字段不在所述目标历史业务数据中,则确定所述业务数据的处理类型为新增;
当所述目标历史业务数据中存在某个字段,但所述字段不在所述业务数据中,则确定所述业务数据的处理类型为删除。
示例性的,假设目标历史业务数据中包括三个客户:谢强,18岁,13195480446;谢强1,19岁,15195480446;谢强2,19岁,16195480446。业务数据中包括三个客户:谢强,18岁,17195480446;谢强1,19岁,15195480446;谢强3,19岁,16195480446。由于谢强的手机号变了,则需要进行更新操作,谢强2消失了,需要进行删除操作,谢强3是新客户,需要进行新增操作。
上述可选的实施方式中,由于大多数都是谢强1信息不会发生改变,类似谢强及谢强2、谢强3这种数据在全量客户信息中占比一般不会超过10%,所以只要识别出来这三种类型的客户信息,那大批量的数据更新就变成了针对性的小批量变化,那针对数据库的性能消耗就非常小。
S15,通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中。
在一个可选的实施方式中,所述通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中包括:
当所述处理类型为所述新增时,以数据流的方式将所述业务数据放入消息队列中,并所述消息队列中的消息被消费后,将所述业务数据写入所述预设数据库中;
当所述处理类型为所述更新时,直接覆盖所述预设数据库中与所述业务数据对应的目标历史业务数据;
当所述处理类型为所述删除时,调用所述预设数据库的删除端口对所述业务数据进行删除操作。
本发明所述的数据处理方法,首先基于业务系统的多批历史业务数据训练得到双层集群性能模型,双层集群性能模型考虑了Map任务和Reduce任务在处理时间上的重叠,使得训练得到的双层集群性能模型的预测精度更高,接着使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数,从而根据所述目标集群配置参数生成配置文件并将所述配置文件配置于分布式集群中,能够利用固定的集群资源使得应用性能达到最优,有助于提高数据的处理效率,在接收到业务系统的业务数据的处理指令时,根据所述处理指令识别所述业务数据的处理类型,根据所述处理类型将所述业务数据更新至预设数据库中,实现了大批量的数据更新变成了针对性的小批量变化,从而减小了数据库的性能消耗,节约了数据库的成本。
实施例二
图2是本发明实施例二提供的数据处理装置的结构图。
在一些实施例中,所述数据处理装置20可以包括多个由计算机程序段所组成的功能模块。所述数据处理装置20中的各个程序段的计算机程序可以存储于电子设备的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)数据处理的功能。
本实施例中,所述数据处理装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:训练模块201、寻优模块202、配置模块203、识别模块204、处理模块205及生成模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述训练模块201,用于基于业务系统的多批历史业务数据训练得到双层集群性能模型。
业务系统是指生产业务数据的企业系统,例如,在金融应用场景中,业务系统可以是银行系统或者保险系统,银行系统生产的业务数据可以为交易相关的数据,保险系统生产的业务数据可以为保险相关的数据。业务系统在真实的生成环境中进行生成经营时,会产生一批业务数据,每批业务数据会传输到分布式集群中进行处理,本实施例中的集群可以采用Hadoop分布式系统,也可以采用其他分布式系统,例如,Spark分布式系统等,不做具体限制。为便于清楚的理解本发明实施例所述的方法,下文以Hadoop分布式系统作为集群框架为例。
历史业务数据是相较于当前时间而言的业务数据。
在一个可选的实施方式中,所述训练模块201基于业务系统的多批历史业务数据训练得到双层集群性能模型包括:
计算每批所述历史业务数据的数据大小;
获取所述分布式集群处理每批所述历史业务数据时的配置参数、应用类型及整体处理时间;
按照预设的分组策略对所述分布式集群处理每批所述历史业务数据的处理阶段进行分组,并计算每组的阶段处理时间;
将每批所述历史业务数据的数据大小及对应的所述配置参数、所述应用类型和每组的阶段处理时间作为模型的输入数据,将所述整体处理时间作为模型的训练目标;
根据所述模型的输入数据及所述模型的训练目标,基于梯度提升决策树算法进行训练,得到所述双层集群性能模型。
MapReduce是Hadoop中的一个并行计算模型,Hadoop中运行的一个MapReduce应用称之为一个MapReduce作业,一般而言,一个MapReduce作业通常包含两个不同的阶段,即映射(Map)阶段和归约(Reduce)阶段。在Map阶段,Map函数接收一个
在一个给定的集群中,集群资源通常是固定不变的,因此,在给定的集群上以不同的配置参数和不同的输入数据运行不同的MapReduce应用,可以实现对MapReduce应用的处理时间进行预测。集群中MapReduce作业的运行时间与MapReduce应用的应用类型、MapReduce应用需要处理的数据量及配置参数有关。由于Map阶段和Reduce阶段之间存在复杂的相互作用,Map任务和Reduce任务会相互抢占资源,处理时间存在重叠,因而整体运行时间和阶段运行时间并非简单的线性关系,同时为了简化模型的结构,则可以将MapReduce应用按照Map阶段和Reduce阶段分为两个组。即,双层集群性能模型的第一层对应MapReduce作业的底层执行阶段,第二层对应整个MapReduce作业。
根据所述模型的输入数据及所述模型的训练目标,基于梯度提升决策树(Gradient Boosting Decision Tree,GBDT)算法进行训练,利用损失函数负梯度在当前集群性能模型的取值作为对梯度提升决策树算法中的回归模型的残差的近似,得到所述集群性能模型。
传统的机器学习训练方法,将整体运行时间和阶段运行时间认定为简单的线性关系,上述可选的实施方式,通过将集群处理历史业务数据的处理阶段进行分组,基于每组的阶段处理时间和整体处理时间两两层因素共同训练得到双层集群性能模型,考虑了Map任务和Reduce任务在处理时间上的重叠,使得训练得到的双层集群性能模型的预测精度更高。
所述寻优模块202,用于使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数。
对于MapReduce应用,默认的配置参数往往难以充分利用集群资源使应用性能达到最优,而通过配置参数调整则可以解决这个问题,然而,不同MapReduce应用对应的最优配置往往不同,在缺乏对底层进行细节的情况下,难以进行准确的参数调整。
遗传算法根据所述双层集群性能模型进行适应度计算,保存最优个体,再进行选择操作输出种群数据,将经过选择操作后的种群通过一系列基本遗传操作,例如,交叉、变异、重组后,生成下一代种群,迭代计算适应度。在迭代训练结束时,输出集群配置参数的最优解。
在一个可选的实施方式中,所述生成模块206,用于在所述使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数之前,判断所述应用类型的数量是否大于预设数量阈值;当所述应用类型的数量大于或者等于所述预设数量阈值时,使用第一种群生成模型根据所述应用类型生成初始种群;当所述应用类型的数量小于所述预设数量阈值时,使用第二种群生成模型根据所述应用类型生成所述初始种群;在所述初始种群的基础上使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数。
所述应用类型的数量大于或者等于所述预设数量阈值,表明应用类型属于超大样本数据集,使用第一种群生成模型能够更快速的生成所述初始种群,从而提高目标集群配置参数的寻优效率;所述应用类型的数量小于所述预设数量阈值,表明应用类型属于小样本数据集,使用第二种群生成模型,能够生成多样性的初始种群,从而避免寻找到过拟合的目标集群配置参数。
该可选的实施方式,采用梯度提升回归树对性能模型进行训练,利用遗传算法的全局搜索能力,高效的对Hadoop配置参数空间进行探索,同时避免陷入局部最优。双层集群性能模型反映了MapReduce应用、输入数据、配置参数之间的复杂关系,准确的集群性能模型使得配置参数效果的快速评估乃至最优配置的搜索成为可能。
在一个可选的实施方式中,所述使用第一种群生成模型根据所述应用类型生成初始种群包括:
为每个所述应用类型随机生成第一标识或者生成第二标识;
根据所述第一标识或者所述第二标识对所述应用类型进行排列组合;
根据所有排列组合对应的应用类型及标识生成所述初始种群。
其中,所述第一标识可以为1,代表应用类型被选中参与行为双层集群性能模型的训练;所述第二标识可以为0,代表应用类型未被选中参与行为双层集群性能模型的训练。
由于对所述应用类型进行分群后,同一个群的应用类型之间具有较大的相关性,因而,可以设置同一个目标数据集中的所有应用类型均为第一标识或者均为第二标识。
上述可选的实施方式,通过对应用类型进行分群,再对同一个目标数据集使用同一个标识,最后通过排列组合的方式生成所述初始种群,既减少了遗传算法的寻优搜索空间,又能够将所有可能的解都考虑进去,使得遗传算法得到局部空间的最优解。
在一个可选的实施方式中,所述使用第二种群生成模型根据所述应用类型生成所述初始种群包括:
初始化比例值序列;
迭代读取所述比例值序列中的一个目标比例值,并从所述应用类型中随机选择所述目标比例值的目标应用类型;
为所述目标应用类型生成第一标识,及为其余应用类型生成第二标识;
将所述目标应用类型及对应的所述第一标识,所述其余应用类型及对应的所述第二标识确定为目标数据集;
根据所述比例值序列中的每个目标比例值对应的目标数据集生成所述初始种群。
示例性的,假设初始化比例值序列[1,2,3,…,100],第1次从比例值序列中读取比例值“1”,则从所述应用类型中随机选择1%的目标应用类型,并为1%的目标应用类型生成第一标识,为其余99%的应用类型生成第二标识,得到一个目标数据集;第2次从比例值序列中读取比例值“2”,则从所述应用类型中随机选择2%的目标应用类型,并为2%的目标应用类型生成第一标识,为其余98%的应用类型生成第二标识,得到一个目标数据集;以此类推;第100次从比例值序列中读取比例值“100”,则从所述应用类型中随机选择100%的目标应用类型,并为100%的目标应用类型生成第一标识,得到一个目标数据集;将这100个目标数据集作为初始种群。
所述配置模块203,用于根据所述目标集群配置参数生成配置文件,并将所述配置文件配置于分布式集群中。
当一个MapReduce应用部署到Hadoop集群中时,即可以根据所需处理的业务数据的大小,自动搜索最优的Hadoop配置参数,并将其应用到集群中,从而使得MapReduce应用的性能得到提高。
所述识别模块204,用于响应于对所述业务系统的业务数据的处理指令,根据所述处理指令识别所述业务数据的处理类型。
处理指令可以由业务系统的用户进行触发,也可以由集群的用户进行触发。
业务系统的业务数据相对业务系统的历史业务数据而言,是当前时间内需要处理的业务数据。当触发了对业务系统的业务数据的处理指令,集群对处理指令进行响应,并根据处理指令识别业务数据的更新类型。
其中,处理类型可以包括:新增,删除,更新。
在一个可选的实施方式中,所述识别模块204根据所述处理指令识别所述业务数据的处理类型包括:
获取距离所述业务数据的采集时间最近的目标历史业务数据;
将所述业务数据与所述目标历史业务数据进行逐字段及对应字段值的匹配;
当所述业务数据与所述目标历史业务数据中字段匹配成功但对应字段值匹配失败,则确定所述业务数据的处理类型为更新;
当所述业务数据中存在某个字段,但所述字段不在所述目标历史业务数据中,则确定所述业务数据的处理类型为新增;
当所述目标历史业务数据中存在某个字段,但所述字段不在所述业务数据中,则确定所述业务数据的处理类型为删除。
示例性的,假设目标历史业务数据中包括三个客户:谢强,18岁,13195480446;谢强1,19岁,15195480446;谢强2,19岁,16195480446。业务数据中包括三个客户:谢强,18岁,17195480446;谢强1,19岁,15195480446;谢强3,19岁,16195480446。由于谢强的手机号变了,则需要进行更新操作,谢强2消失了,需要进行删除操作,谢强3是新客户,需要进行新增操作。
上述可选的实施方式中,由于大多数都是谢强1信息不会发生改变,类似谢强及谢强2、谢强3这种数据在全量客户信息中占比一般不会超过10%,所以只要识别出来这三种类型的客户信息,那大批量的数据更新就变成了针对性的小批量变化,那针对数据库的性能消耗就非常小。
所述处理模块205,用于通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中。
在一个可选的实施方式中,所述处理模块205通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中包括:
当所述处理类型为所述新增时,以数据流的方式将所述业务数据放入消息队列中,并所述消息队列中的消息被消费后,将所述业务数据写入所述预设数据库中;
当所述处理类型为所述更新时,直接覆盖所述预设数据库中与所述业务数据对应的目标历史业务数据;
当所述处理类型为所述删除时,调用所述预设数据库的删除端口对所述业务数据进行删除操作。
本发明所述的数据处理装置,首先基于业务系统的多批历史业务数据训练得到双层集群性能模型,双层集群性能模型考虑了Map任务和Reduce任务在处理时间上的重叠,使得训练得到的双层集群性能模型的预测精度更高,接着使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数,从而根据所述目标集群配置参数生成配置文件并将所述配置文件配置于分布式集群中,能够利用固定的集群资源使得应用性能达到最优,有助于提高数据的处理效率,在接收到业务系统的业务数据的处理指令时,根据所述处理指令识别所述业务数据的处理类型,根据所述处理类型将所述业务数据更新至预设数据库中,实现了大批量的数据更新变成了针对性的小批量变化,从而减小了数据库的性能消耗,节约了数据库的成本。
实施例三
本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法实施例中的步骤,例如图1所示的S11-S15:
S11,基于业务系统的多批历史业务数据训练得到双层集群性能模型;
S12,使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数;
S13,根据所述目标集群配置参数生成配置文件,并将所述配置文件配置于分布式集群中;
S14,响应于对所述业务系统的业务数据的处理指令,根据所述处理指令识别所述业务数据的处理类型;
S15,通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块/单元的功能,例如图2中的模块201-205:
所述训练模块201,用于基于业务系统的多批历史业务数据训练得到双层集群性能模型;
所述寻优模块202,用于使用遗传算法对所述双层集群性能模型进行迭代寻优得到目标集群配置参数;
所述配置模块203,用于根据所述目标集群配置参数生成配置文件,并将所述配置文件配置于分布式集群中;
所述识别模块204,用于响应于对所述业务系统的业务数据的处理指令,根据所述处理指令识别所述业务数据的处理类型;
所述处理模块205,用于通过所述分布式集群根据所述处理类型对所述业务数据进行处理,并将处理后的业务数据更新至所述分布式集群的预设数据库中。
该计算机程序被处理器执行时还实现上述装置实施例中的生成模块206,具体请参见实施例二及其相关描述。
实施例四
参阅图3所示,为本发明实施例三提供的电子设备的结构示意图。在本发明较佳实施例中,所述电子设备3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
本领域技术人员应该了解,图3示出的电子设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述电子设备3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述电子设备3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述电子设备3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述电子设备3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31中存储有计算机程序,所述计算机程序被所述至少一个处理器32执行时实现如所述的数据处理方法中的全部或者部分步骤。所述存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在一些实施例中,所述至少一个处理器32是所述电子设备3的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行电子设备3的各种功能和处理数据。例如,所述至少一个处理器32执行所述存储器中存储的计算机程序时实现本发明实施例中所述的数据处理方法的全部或者部分步骤;或者实现数据处理装置的全部或者部分功能。所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述电子设备3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。说明书中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
- 数据加密处理方法、数据解密处理方法、装置、电子设备及可读存储介质
- 数据处理方法、数据处理装置、电子设备以及存储介质