一种优化ETL数据等待的方法、装置及存储介质与流程

文档序号:32438955发布日期:2022-12-06 20:36阅读:53来源:国知局
一种优化ETL数据等待的方法、装置及存储介质与流程
一种优化etl数据等待的方法、装置及存储介质
技术领域
1.本发明涉及数据处理优化技术领域,特别是涉及一种优化etl数据等待的方法、装置及存储介质。


背景技术:

2.电力数据主要来源与电力生产和电能使用的发电、变电、配电、用电和调度各大环节,可大致分为三类:一是电网运行和设备检测或监测数据;二是电力企业营销数据,如交易电价、售电量、用电客户等方面数据;三是电力企业管理数据。而对于电网数据的分析,从发电、输变电环节,到用电环节,都需要实时数据处理,通过借助电力大数据的分析技术可以从电力系统的海量数据中找出潜在的模态与规律。对于我国广泛覆盖的电网系统而言,由于电网数据的庞大繁杂,电网数据通常采取分地区存储,各个不同的地区存储在自身本地服务器上;例如:以省为例,不同市的电网数据通常是不互通的,各个市的电网数据存储在自身本地服务器内,当需要对各个市的电网数据的某一方面进行汇总时,需要将各个市的数据进行抽取-转换-加载(extract-transform-load,简写为etl)操作,对各个市的数据进行抽取、转换、加载,最后将各市的有用电网数据按照特定的方式存储在省的服务器内,并在省服务器内删除各个市不需要的电网数据信息。
3.省级所属服务器对电网数据信息通过各个的市级服务器进行上传,通过各市级对原始数据的调用需求,就可以知晓执行etl过程所需要获取的具体的电网数据信息。进行etl通常以服务器内各市级调用电网数据信息对应的任务为单位进行处理,假如没有对电网数据信息内的历史任务进行验证,是否已经将历史任务相关的电网数据信息进行处理的情况下,就去做etl操作,可能会浪费计算资源,最终判定被你做了etl操作的数据是有问题的,这样会造成数据的浪费,另外,进行etl操作之后的数据,理论上来说是无法拿出来正常参与校验过程的;除此之外,不同服务器之间数据传输主要受网速、传输距离、服务器处理数据能力决定,各个市之间的电网数据源来自不同的服务器,当省级接收各个市级的电网数据时,会存在时间上的差异,导致出现数据等待的问题。鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。


技术实现要素:

4.本发明要解决的技术问题是在保证数据有效性的前提下,如何通过优化etl,来降低数据等待的时间,以及提高etl过程的效率问题。
5.本发明采用如下技术方案:第一方面,本发明提供了一种优化etl数据等待的方法,包括:将已经接收到的多套数据内容,根据各数据内容所触发关联验证的历史任务,获取各数据内容当前等待验证的任务数量;获取当前完成对应任务数量验证后的数据内容,通过比对完成对应任务数量验证后的数据内容,确定是否能覆盖etl过程所需的数据内容;若无法覆盖,则进入等待执行etl
过程;若可以覆盖,则执行etl过程;在等待执行etl过程中,若分析出当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和小于等于处于等待执行etl过程中原始数据内容时,则执行etl过程,并保存etl结果和当前等待任务验证的剩余数据内容。优选的,还包括在等待执行etl过程中,若分析出当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和大于处于等待执行etl过程中原始数据内容时,仍然维持等待执行etl过程。
6.优选的,所述根据各数据内容所触发关联验证的历史任务,具体为:接收到的数据内容,按照数据内容的来源、数据内容的属性、数据内容的大小中的一项或者多项,确定所述数据内容所触发关联验证的历史任务;其中,所述历史任务需要多套数据内容均被收到才能完成验证,若存在数据内容缺失则无法进行相应历史任务的验证过程。
7.优选的,进入等待执行etl过程,在所述etl过程包括至少第一etl过程和第二etl过程时,方法还包括:获取第一etl过程中各数据内容当前等待验证的剩余任务总数量,以及第二etl过程中各数据内容当前等待验证的剩余任务总数量;若第一etl过程中各数据内容当前等待验证的剩余任务总数量小于等于预设阈值,则调度本服务器或其他服务器进行优先处理第一etl过程中各数据内容的验证任务。
8.优选的,etl过程中各数据内容当前等待验证的剩余任务总数量均大于预设阈值时,按照本服务器或其他服务器原有的顺序处理当前等待验证的任务。
9.优选的,所述执行etl过程,并保存etl结果和当前等待任务验证的剩余数据内容,具体包括:所述执行etl过程之前,生成当前等待任务验证的剩余数据内容的副本;在执行etl过程之后,保存etl结果和所述当前等待任务验证的剩余数据内容的副本;在所述当前等待任务验证的剩余数据内容的副本所对应的验证任务全部完成后,删除所述当前等待任务验证的剩余数据内容的副本。
10.优选的,在等待执行etl过程中,分析出当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和与处于等待执行etl过程中原始数据内容的大小关系,具体包括:在第一次触发所述分析之后,记录当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和与处于等待执行etl过程中原始数据内容的第一差值;按照执行etl过程得到的结果数据与执行etl过程中原始数据内容的比值关系得到etl压缩比例,则在第一次触发所述分析之后,新获取到一套或者多套数据内容所关联的任务数量清零后,且所述新获取到一套或者多套数据内容在加权所述etl压缩比例之后得到结果大于等于所述第一差值时,第二次触发相应分析内容。
11.优选的,所述etl压缩比的获取,包括历史执行对应etl过程计算得到;或者,通过模拟仿真运算计算得到。
12.第二方面,本发明还提供了一种优化etl数据等待的装置,用于实现第一方面所述的优化etl数据等待的方法,所述装置包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存
储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的优化etl数据等待的方法。
13.第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的优化etl数据等待的方法。
14.本发明在进行etl操作之前的数据有效性的验证阶段设定优先验证的预设阈值,在当前等待验证的任务数量小于预设阈值时,提供调度本服务器或其他服务器进行优先处理当前等待验证的任务,使得本发明尽早的完成数据的验证,降低了当前等待验证的任务数据的等待时间;除此之外,通过调整服务器触发判定进行etl操作的逻辑,当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和小于等于处于等待执行etl过程中原始数据内容时,则执行etl过程并保存etl结果,减少了验证当前等待验证任务的有效性所花费的时间,从而降低了服务器进行etl操作的时间,提高了etl过程的效率。
附图说明
15.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1是本发明实施例提供的一种优化etl数据等待的方法流程图;图2是本发明实施例提供的步骤202的方法流程图;图3是本发明实施例提供的步骤203中执行etl过程的方法流程图;图4是本发明实施例提供的步骤203等待执行etl过程的方法流程图;图5是本发明实施例提供的一种优化etl数据等待的装置的结构示意图流程图。
具体实施方式
17.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
18.在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
19.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
20.实施例1:本发明实施例1提供了一种数据etl的优化方法,如图1所示,包括:步骤201:将已经接收到的多套数据内容,根据各数据内容所触发关联验证的历史任务,获取各数据内容当前等待验证的任务数量。
21.其中,etl主要是将数据进行抽取、转换和加载操作,从原本杂乱繁杂的数据中获取有用的数据并进行存储,以便于达到能直接对有用的数据内容进行利用,以及节约服务
器存储空间的目的。以电力数据为例,对于不同的电力部门而言,有用的数据内容并不相同。例如,对于电力企业营销部门而言,有用的数据内容往往是交易电价、售电量、用电客户等方面的数据;对于设备抢修部门,有用的数据可能是各供电设备的分布、供电设备的具体位置、各供电设备的使用情况等方面的数据。在电力企业接收到相关数据以后,通常会按照实际需求(例如,按照部门需求)对各数据进行分类,实际需求不同,对数据的分类也不相同,分类的类别数量就对应数据内容的套数。每一套数据内容对应多个任务,为了便于理解,以售电量为一套数据内容进行解释说明,例如,电力销售部门获取了某小区内50户该月的销售电量,那么此时的数据内容就是50户该月的销售电量情况的数据内容,相应的任务可以理解为相应的各户该月所购买电量这一执行动作,此时的任务数量为50。本发明实施例的历史任务指的是进行验证前的所有数据内容对应的任务,通过所有数据内容对应的任务,以及当前已经验证过的任务,可以获取各数据内容当前等待验证的数量,例如,所有数据内容对应的任务数量为50,已经验证过的任务数量为30,那么当前等待验证的任务数量为20。值得注意的是,任务和任务数量需要严格区分,对于一个具体的任务而言,需要严格的对应关系。例如,a购买的电量为30,b购买的电量为40,此时,a购买的电量为30是一个任务,需要将a与电量30对应才算一个任务,此时的任务数量为2。
22.步骤202:获取当前完成对应任务数量验证后的数据内容,通过比对完成对应任务数量验证后的数据内容,确定是否能覆盖etl过程所需的数据内容;若无法覆盖,则进入等待执行etl过程;若可以覆盖,则执行etl过程。
23.本发明实施例对数据内容进行验证的目的实际上是对相应的任务进行校验,验证相应的任务是否将对应的原始数据进行了处理,以当前的时间为节点,获取当前已经完成对应任务数量验证后的数据内容。通过比对当前已经完成对应任务数量验证后的数据内容与etl过程所需要的数据内容是否覆盖,判定是否进行etl操作。其中,etl所需要的数据内容根据实际需求进行确定(例如,电力销售部门的售电量数据),当前完成对应任务数量验证后的数据内容若能完全覆盖etl所需要的数据内容,说明此时所需要的数据已经全部完成校验,当前等待验证的任务对应的数据内容为非必需的数据内容(后续会对此部分的数据内容进行删除处理),此时执行etl过程。当无法覆盖时,表明所需要的数据存在漏校验的情况,此时进入等待执行etl过程。
24.步骤203:在等待执行etl过程中,若分析出当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和小于等于处于等待执行etl过程中原始数据内容时,则执行etl过程,并保存etl结果和当前等待任务验证的剩余数据内容。
25.其中,当进入等待执行etl步骤可以确保对之前校验的数据内容执行etl操作结果的准确性,etl处理的结果是将有用的信息数据按照etl规则进行转换并存储在服务器端。若当前等待验证的任务对应的数据内容执行etl操作后,执行etl操作的数据内容并不能直接作为等待验证的内容进行验证;此时进行etl的同时,需要将当前等待验证的任务对应的数据内容复制成副本存储在服务器内,以便于自身服务器或其它服务器进行当前等待验证的任务的验证。从理论上讲,etl规则一定(即所需要的信息一定时),数据内容相同的情况下,etl转换之后所占的内存是一个定值,为了降低服务器内的存储压力,通过分析比对当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和,与处于等待执行etl过程中原始数据内容所占的内存关系,来判定是否执行etl操作。当分析出当前等待任务验
证的剩余数据内容和执行etl过程得到的结果数据之和小于等于处于等待执行etl过程中原始数据内容时,表明执行etl后的总体数据内容所占的存储在逐渐减少,数据内容对服务器的内存消耗在减少,此时执行etl可以节省了服务器的内存。除此之外,本发明实施例并没有在所有任务对应的数据内容验证完的条件下,进行etl操作,并且,保证了etl操作的准确性,从而减少了etl等待验证的时间,提高了服务器进行etl的效率。
26.本发明实施例通过调整服务器触发判定执行etl操作的逻辑,在保证数据内容有效性(有效性是指进行etl之前,相应的进行etl的数据内容对应的任务已经得以验证,就表明该数据内容是有效的)验证完成,在当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和小于等于处于等待执行etl过程中原始数据内容时,直接进行etl操作,并保存etl结果和当前等待任务验证的剩余数据内容,减少了验证当前等待验证任务的有效性所花费的时间,从而降低了服务器进行etl操作的时间,提高了etl过程的效率。
27.为了完整的阐述本发明的方案,接下来对本发明实施例的内容做详细的说明。进一步的,还包括在等待执行etl过程中,若分析出当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和大于处于等待执行etl过程中原始数据内容时,仍然维持等待执行etl过程。
28.其中,当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和大于处于等待执行etl过程中原始数据内容时,表明执行etl后的总体数据内容所占的存储在逐渐增加,数据内容对服务器的内存消耗在增加,进而增加了服务器的压力,此时仍然维持等待执行etl过程。此处的原理与步骤203的原理相同,在此不做赘述。
29.进一步的,所述根据各数据内容所触发关联验证的历史任务,具体为:接收到的数据内容,按照数据内容的来源、数据内容的属性、数据内容的大小中的一项或者多项,确定所述数据内容所触发关联验证的历史任务;其中,所述历史任务需要多套数据内容均被收到才能完成验证,若存在数据内容缺失则无法进行相应历史任务的验证过程。
30.根据需求不同,对于各数据内容而言,每一套的数据内容不同,并且,相应的任务也会不同。根据实际需求,例如,按照数据内容的来源(例如不同的市、县使用电量的情况)、数据内容的属性(交易电价、售电量、用电客户等)、数据内容等维度确定数据内容所触发关联验证的历史任务。为了保证保存的etl结果为所需要的数据,并且,不至于缺失一部分所需要的信息,本发明实施例的所述历史任务需要多套数据内容均被收到才能完成验证,若存在数据内容缺失则无法进行相应历史任务的验证过程。
31.进一步的,本发明实施例进入等待执行etl过程,在所述etl过程包括至少第一etl过程和第二etl过程时,如图2所示,方法还包括:步骤301:获取第一etl过程中各数据内容当前等待验证的剩余任务总数量,以及第二etl过程中各数据内容当前等待验证的剩余任务总数量。
32.本发明所接收的多套数据内容同时存储在一个总的服务器内,对于每个不同的分服务器而言,根据需求不同,进行etl后获取的etl结果也不相同。本发明的第一etl和第二etl只是为了区分对不同需求的数据内容进行etl所做的标记,在总服务器内,根据不同分服务器的需求,可能同时进行多个并行的etl操作。
33.步骤302:若第一etl过程中各数据内容当前等待验证的剩余任务总数量小于等于预设阈值,则调度本服务器或其他服务器进行优先处理第一etl过程中各数据内容的验证
任务。
34.本发明的剩余任务总数量的预设阈值通常考虑服务器的性能进行设置,当设置当前剩余任务总量的预设阈值后,一旦第一etl过程中各数据内容当前等待验证的剩余任务总数量小于等于预设阈值时,就调度本服务器或其他服务器进行优先处理第一etl过程中各数据内容的验证任务。使得第一etl能快速的完成验证任务,并进行etl操作,降低服务器并行执行etl的压力。通过比对当前等待验证的剩余任务总数量与预设阈值的大小,进而触发服务器是否进行优先处理该etl过程中各数据内容的验证任务,通过合理设置相应的优先验证的剩余任务总数量预设阈值,优选验证该etl的任务,减少该etl当前等待验证的任务等待所花费的时间。对于当前等待验证的任务所对应的数据内容而言,可能是进行etl服务器自身进行验证,也可能是其它服务器对该数据内容进行验证,但对于服务器而言,不仅仅对该数据内容进行处理,还需要处理其它的数据内容(与本发明的数据内容无关的数据)的任务,在服务器的进程排序内,需要进行验证的数据内容可能会排在靠后进行处理,使得等待的时间较长,通过相应的比对指令触发服务器将需要比对的数据任务优先处理,使得节省了当前等待执行任务的等待时间。
35.为了降低对服务器的要求,避免同时出现优先处理很多个etl过程中各数据的验证任务,当etl过程中各数据内容当前等待验证的剩余任务总数量均大于预设阈值时,按照本服务器或其他服务器原有的顺序处理当前等待验证的任务。
36.进一步的,所述执行etl过程,并保存etl结果和当前等待任务验证的剩余数据内容,如图3所示,具体包括:步骤401:所述执行etl过程之前,生成当前等待任务验证的剩余数据内容的副本。
37.etl的本质是将有用的数据内容进行抽取、转换和加载的过程,此过程通常会将数据内容经过压缩后进行存储,经过etl处理后的有效数据内容无法作为当前等待验证的数据内容,为了保证本发明实施例数据内容的有效性,需要将所有的有用信息逐一进行验证,在进行etl之前,将当前等待任务验证的剩余数据内容复制成副本,以备后续对该数据的任务进行验证。
38.步骤402:在执行etl过程之后,保存etl结果和所述当前等待任务验证的剩余数据内容的副本。
39.当执行etl之后,对于已经验证过的数据内容,相应的etl操作是准确的,保存的当前等待任务验证的剩余数据内容的副本,可以继续作为等待验证的数据内容。
40.步骤403:在所述当前等待任务验证的剩余数据内容的副本所对应的验证任务全部完成后,删除所述当前等待任务验证的剩余数据内容的副本。
41.其中,为了节省服务器的内存,当保存的当前等待任务验证的剩余数据内容的副本全部完成验证后,我们就可以认为验证副本之前执行该etl所得的结果是准确有效的。当确定执行etl所得的结果有效的前提下,该副本数据内容就没有任何作用,此时直接删除该副本,可以缓解副本所占服务器存储空间的压力。本发明通过对数据内容提前进行etl操作,可以有效的降低数据内容验证所花费的时间,提高数据etl的效率。通过生成当前等待验证的数据内容副本,并对该副本内的数据内容的任务逐一进行验证,以确保etl结果的有效性。进一步的,在等待执行etl过程中,分析出当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和与处于等待执行etl过程中原始数据内容的大小关系,如图4
所示,具体包括:步骤501:在第一次触发所述分析之后,记录当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和与处于等待执行etl过程中原始数据内容的第一差值。
42.本实施例触发分析的条件可以根据实际情况进行设定,本实施例的第一差值根据第一次触发分析的条件的变化而变化,例如当前完成对应任务数量验证后的数据内容占原始数据内容的90%时,触发进行第一次分析,获取第一差值。通过第一次分析,获取当前等待任务验证的剩余数据内容和执行etl过程得到的结果数据之和与处于等待执行etl过程中原始数据内容的第一差值。
43.步骤502:按照执行etl过程得到的结果数据与执行etl过程中原始数据内容的比值关系得到etl压缩比例,则在第一次触发所述分析之后,新获取到一套或者多套数据内容所关联的任务数量清零后,且所述新获取到一套或者多套数据内容在加权所述etl压缩比例之后得到结果大于等于所述第一差值时,第二次触发相应分析内容。
44.本实施例通过第一下触发分析后,获取按照执行etl过程得到的结果数据与执行etl过程中原始数据内容的差值关系得到etl压缩比例,通过压缩比例可以知道当前完成对应数据内容验证的进度。通过比对各套数据内容的加权后的压缩比例与第一差值的大小触发第二分析相应的数据内容,直至输出误差允许的etl结果。其中,误差允许的范围根据实际情况进行确定,所述etl压缩比的获取,包括历史执行对应etl过程计算得到;或者,通过模拟仿真运算计算得到。
45.本实施例在进行etl操作之前的数据有效性的验证阶段设定优先验证的预设阈值,在当前等待验证的任务数量小于预设阈值时,提供调度本服务器或其他服务器进行优先处理当前等待验证的任务,使得本发明尽早的完成数据的验证,降低了当前等待验证的任务数据的等待时间;除此之外,通过调整服务器触发判定进行etl操作的逻辑,在当前等待验证的任务数据信息和进行etl操作之后的数据信息总量小于原始数据信息所占内存时,直接进行etl操作,并保存etl结果,减少了验证当前等待验证任务的有效性所花费的时间,从而降低了服务器进行etl操作的时间,提高了etl过程的效率。
46.实施例2:如图5所示,是本发明实施例的优化etl数据等待的装置的架构示意图。本实施例的优化etl数据等待的装置包括一个或多个处理器21以及存储器22。其中,图5中以一个处理器21为例。
47.处理器21和存储器22可以通过总线或者其他方式连接,图5中以通过总线连接为例。
48.存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的优化etl数据等待的方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行优化etl数据等待的方法。
49.存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
50.所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执
行时,执行上述实施例1中的优化etl数据等待的方法。
51.本发明实施例还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成本发明实施例1所提供的优化etl数据等待的方法。
52.值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
53.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
54.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1