一种任务中数据优化计算的方法及装置与流程

文档序号:15236575发布日期:2018-08-24 05:39阅读:140来源:国知局

本发明实施例涉及数据优化处理技术领域,具体涉及一种任务中数据优化计算的方法及装置。



背景技术:

随着信息技术的快速发展,涌现出大量的数据,通过结构化查询语言(structuredquerylanguage,简称“sql”)关联多张表的数据,并在计算得到新数据后装载到新表中。每个任务中存在许多重复的计算逻辑,浪费掉了很多计算资源。图1为现有技术任务中数据的计算过程图,如图1所示,任务中数据的来源表a、b、c,根据对应的计算逻辑关系获得目标表g;来源表b、c、d,根据对应的计算逻辑关系获得目标表h,b、c在获得目标表g的计算过程中要参与一次计算、b、c在获得目标表h的计算过程中还要参与另一次相同的计算,即:相同的计算要在获得目标表g和目标表h中分别计算两次。

因此,如何避免上述缺陷,优化任务中数据的计算,从而节省计算资源,成为亟须解决的问题。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供一种任务中数据优化计算的方法及装置。

第一方面,本发明实施例提供一种任务中数据优化计算的方法,所述方法包括:

获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;

根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;

根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

第二方面,本发明实施例提供一种任务中数据优化计算的装置,所述装置包括:

第一获取单元,用于获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;

第二获取单元,用于根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;

优化单元,用于根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

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

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

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:

获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;

根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;

根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

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

所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:

获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;

根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;

根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

本发明实施例提供的任务中数据优化计算的方法及装置,通过中间表存储中间计算结果,能够优化任务中数据的计算,从而节省计算资源。

附图说明

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

图1为现有技术任务中数据的计算过程图;

图2为本发明实施例任务中数据优化计算的方法流程示意图;

图3为本发明实施例任务中数据的计算过程图;

图4为本发明实施例任务中数据优化计算的装置结构示意图;

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

具体实施方式

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

图2为本发明实施例任务中数据优化计算的方法流程示意图,如图2所示,本发明实施例提供的一种任务中数据优化计算的方法,包括以下步骤:

s1:获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系。

具体的,装置获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系。需要说明的是:来源表中的数据是参与计算前的数据、目标表中的数据是参与计算后的数据,计算逻辑关系表示的是来源表中的数据如何计算成为目标表中的数据。任务可以是etl(extract-transform-load)任务,即抽取、转换、装载任务。可以采用结构化查询语言(structuredquerylanguage,简称“sql”)解析etl任务中的数据,以获取来源表、目标表,以及计算逻辑关系。

s2:根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果。

具体的,装置根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果。图3为本发明实施例任务中数据的计算过程图,如图3所示,来源表包括:a表、b表、c表和d表;由a表、b表、c表关联计算出的数据存储到目标表g表;由b表、c表、d表关联计算出的数据存储到目标表h表。可以对任务中数据计算进行优化,以得到图3所示的优化计算逻辑图(计算过程图),参照图2,以来源表b为例,由于b在获得目标表g的计算过程中要参与一次计算、在获得目标表h的计算过程中还要参与另一次相同的计算,来源表c的情况与b相同,不再赘述。参照图3,以来源表b为例,由于来源表b中的数据分别参与了目标表g表和目标表h表的两次相同计算(至少参与两次相同计算,为方便说明,这里举例为两次),这里把这两次相同计算只计算一次,并将中间计算结果(只计算这一次的计算结果)存储于在中间表x中,来源表c的情况与b相同,不再赘述,即把数据来源表分为包括b表、c表的一部分,分为包括a表、d表的另一部分。

s3:根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

具体的,装置根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。继续参照图3,根据中间计算结果(表x中的计算结果)和另一部分数据来源表(a表、d表),获取任务中数据的最终计算结果(目标表g表和目标表h表),由于相同重复的计算只计算了一次,从而优化了任务中数据的计算,节省了计算资源。

本发明实施例提供的任务中数据优化计算的方法,通过中间表存储中间计算结果,能够优化任务中数据的计算,从而节省计算资源。

在上述实施例的基础上,所述获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系,包括:

解析所述任务中的数据,以获取所述来源表、所述目标表,以及所述计算逻辑关系。

具体的,装置解析所述任务中的数据,以获取所述来源表、所述目标表,以及所述计算逻辑关系。可参照上述实施例,不再赘述。

本发明实施例提供的任务中数据优化计算的方法,通过解析任务中的数据,有效保证了能够获取到来源表、目标表,以及计算逻辑关系。

在上述实施例的基础上,所述任务是数据仓库技术etl任务;相应地,所述解析所述任务中的数据,包括:

采用结构化查询语言sql解析所述etl任务中的数据。

具体的,装置采用结构化查询语言sql解析所述etl任务中的数据。可参照上述实施例,不再赘述。

本发明实施例提供的任务中数据优化计算的方法,采用结构化查询语言sql解析etl任务中的数据,有效保证了能够获取etl任务中的来源表、目标表,以及计算逻辑关系。

在上述实施例的基础上,所述任务是预设周期内所有任务中的每一个任务。

具体的,装置中的所述任务是预设周期内所有任务中的每一个任务。在实际应用场景中,需要处理的任务有很多,可以每间隔一个预设周期对需要处理的所有任务中的每一个任务执行上述实施例中的方法步骤。预设周期可以根据实际情况自主设置,不再赘述。预设周期可选为每天。

本发明实施例提供的任务中数据优化计算的方法,通过在预设周期内对所有任务中的每一个任务执行上述的方法步骤,能够大批量地优化任务中数据的计算,从而更显著地节省计算资源。

在上述实施例的基础上,所述预设周期为每天。

具体的,装置中的所述预设周期为每天。可参照上述实施例,不再赘述。

本发明实施例提供的任务中数据优化计算的方法,通过将预设周期选定为每天,可以按时、有效地内优化任务中数据的计算,进一步节省计算资源。

在上述实施例的基础上,所述中间表临时存储所述中间计算结果。

具体的,装置中的所述中间表临时存储所述中间计算结果。为了进一步节省宝贵的存储资源,可以在中间表临时存储中间计算结果,并在获取到最终计算结果时,删除临时存储的中间计算结果。

本发明实施例提供的任务中数据优化计算的方法,通过在中间表临时存储中间计算结果,能够节省存储资源。

在上述实施例的基础上,所述中间表临时存储所述中间计算结果的步骤之后,所述方法还包括:

待获取到所述最终计算结果时,删除临时存储的中间计算结果。

具体的,装置待获取到所述最终计算结果时,删除临时存储的中间计算结果。可参照上述实施例,不再赘述。

本发明实施例提供的任务中数据优化计算的方法,通过待获取到最终计算结果时,删除临时存储的中间计算结果,进一步能够节省存储资源。

图4为本发明实施例任务中数据优化计算的装置结构示意图,如图4所示,本发明实施例提供了一种任务中数据优化计算的装置,包括第一获取单元1、第二获取单元2和优化单元3,其中:

第一获取单元1用于获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;第二获取单元2用于根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;优化单元3用于根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

具体的,第一获取单元1用于获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;第二获取单元2用于根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;优化单元3用于根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

本发明实施例提供的任务中数据优化计算的装置,通过中间表存储中间计算结果,能够优化任务中数据的计算,从而节省计算资源。

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

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

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

所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取任务中数据的来源表、目标表,以及所述来源表与所述目标表之间数据的计算逻辑关系;根据所述来源表、所述目标表和所述计算逻辑关系,获取中间表,所述中间表存储有至少参与两次相同计算的一部分数据来源表中数据的中间计算结果;根据所述中间计算结果和另一部分数据来源表,获取所述任务中数据的最终计算结果,以优化所述任务中数据的计算。

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

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

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

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

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