一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用于ETL的数据处理方法和装置及电子设备与流程

2022-02-19 04:23:06 来源:中国专利 TAG:

应用于etl的数据处理方法和装置及电子设备
技术领域
1.本技术实施例涉及数据处理技术领域,尤其涉及一种应用于etl的数据处理方法和装置及电子设备。


背景技术:

2.etl(extract

transform

load)是一种集合了数据抽取(extract)、数据转换(transform)和数据加载(load)的技术。
3.在采用etl技术的大数据项目中,通常包含以下几个数据处理阶段:
4.1、数据接入阶段,用于通过etl的数据抽取技术,将数据从前置库中抽取到综合库。其中,所述前置库是原始数据所在的数据库,所述综合库是大数据平台的数据库。
5.2、数据开发阶段,用于通过etl的数据转换技术,对抽取到综合库中的数据进行处理。所述处理可以包括例如数据清洗、数据融合等数据治理方式。
6.3、数据推送阶段,用于通过etl的数据加载技术,将数据转换后综合库中的待加载数据同步到服务库。
7.4、数据服务阶段,用于通过etl的数据传输技术,将服务库中的数据提供给应用。例如,数据服务系统基于服务库中的数据,以预设的网络接口如rest api,对应用提供数据服务。
8.其中,在数据推送阶段中,将数据转换后输出的待加载数据同步到服务库时,由于服务库的目的表(写入待加载数据的表)中数据和待加载数据可能存在主键冲突的情况,为了确保数据写入的正常执行,需要先清空服务库中的目的表,然后再将待加载数据全量写入到清空后的目的表中。
9.但是,清空目的表不仅需要消耗额外的时间,而且目的表中原本存储的数据被清空后也无法恢复。


技术实现要素:

10.本说明书实施例提供的一种应用于etl的数据处理方法及装置、电子设备。
11.根据本说明书实施例的第一方面,提供一种应用于etl的数据处理方法,所述方法包括:
12.对ods层的新表中数据执行数据治理,生成std层的新表;其中,所述ods层的新表用于存储本轮etl执行数据抽取后获取的待处理数据;所述std层的新表用于存储本轮etl执行数据治理后获取的标准化数据;
13.将std层的新表与旧表进行比较,以识别所述std层的新表中的增量数据;其中,所述std层的旧表用于存储上一轮etl执行数据治理后获取的标准化数据;
14.对所述std层的新表中数据执行数据开发,生成dwd层的新表;其中,所述dwd层的新表用于存储本轮etl执行数据开发后获取的待加载数据;
15.将所述dwd层的新表与旧表进行比较,以识别所述dwd层的新表中的增量数据;其
中,所述dwd层的旧表用于存储上一轮etl执行数据开发后获取的待加载数据;
16.将所述std层和/或dwd层中的增量数据写入到目标服务库中。
17.根据本说明书实施例的第二方面,提供一种应用于etl的数据处理装置,所述装置包括:
18.第一生成模块,用于对ods层的新表中数据执行数据治理,生成std层的新表;其中,所述ods层的新表用于存储本轮etl执行数据抽取后获取的待处理数据;所述std层的新表用于存储本轮etl执行数据治理后获取的标准化数据;
19.第一识别模块,用于将std层的新表与旧表进行比较,以识别所述std层的新表中的增量数据;其中,所述std层的旧表用于存储上一轮etl执行数据治理后获取的标准化数据;
20.第二生成模块,用于对所述std层的新表中数据执行数据开发,生成dwd层的新表;其中,所述dwd层的新表用于存储本轮etl执行数据开发后获取的待加载数据;
21.第二识别模块,用于将所述dwd层的新表与旧表进行比较,以识别所述dwd层的新表中的增量数据;其中,所述dwd层的旧表用于存储上一轮etl执行数据开发后获取的待加载数据;
22.数据加载模块,用于将所述std层和/或dwd层中的增量数据写入到目标服务库中。
23.根据本说明书实施例的第三方面,提供一种电子设备,包括:
24.处理器;
25.用于存储处理器可执行指令的存储器;
26.其中,所述处理器被配置为本说明书中任一项应用于etl的数据处理方法。
27.本说明书实施例提供了应用于etl的数据处理方案,通过识别待加载数据中的增量数据,仅将该增量数据同步到服务库。由于增量数据与目标服务库中的数据不存在主键冲突,因此即使不清空服务库的目的表,也可以正常写入数据。如此,由于无需清空服务库的目的表,因此提高了数据加载的效率。
附图说明
28.图1是本说明书一实施例提供的采用现有etl技术的大数据项目的示意图;
29.图2是本说明书一实施例提供的应用于etl的数据处理方法的流程图;
30.图3是本说明书一实施例提供的采用改进etl技术的大数据项目的示意图;
31.图4是本说明书一实施例提供的应用于etl的数据处理装置的硬件结构图;
32.图5是本说明书一实施例提供的应用于etl的数据处理装置的模块示意图。
具体实施方式
33.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
34.在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包
括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
35.应当理解,尽管在本说明书可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
36.在采用现有etl技术的大数据项目中,如图1所示etl通常包含以下几个数据处理阶段:
37.1、数据接入阶段。etl的控制端通过etl的数据抽取技术,将数据从前置库中抽取到综合库。其中,所述前置库是原始数据所在的数据库,所述综合库是大数据平台的数据库。
38.2、数据开发阶段。etl的控制端通过etl的数据转换技术,对抽取到综合库中的数据进行处理。所述处理可以包括例如数据清洗、数据融合等数据治理方式。
39.3、数据推送阶段。etl的控制端通过etl的数据加载技术,将数据转换后综合库中的待加载数据同步到服务库。
40.4、数据服务阶段。etl的控制端通过etl的数据传输技术,将服务库中的数据提供给应用。例如,数据服务系统基于服务库中的数据,以预设的网络接口如rest api,对应用提供数据服务。
41.其中,在数据推送阶段,将数据转换后输出的待加载数据同步到服务库时,由于服务库的目的表(写入待加载数据的表)中数据和待加载数据可能存在主键冲突的情况,为了确保数据写入的正常执行,需要先清空服务库中的目的表,然后再将待加载数据全量写入到清空后的目的表中。
42.但是,清空目的表不仅需要消耗额外的时间,而且目的表中原本存储的数据被清空后也无法恢复。
43.为了解决上述问题,本技术旨在提供一种不需要清空服务库的目的表,也可以正常写入待加载数据的etl的数据加载方案。从而提高数据写入的效率。
44.具体是通过识别待加载数据中的增量数据,仅将该增量数据同步到服务库。由于增量数据与目标服务库中的数据不存在主键冲突,因此即使不清空服务库的目的表,也可以正常写入数据。如此,由于无需清空服务库的目的表,因此提高了数据加载的效率。
45.以下可以参考图2所示的一种应用于etl的数据处理方法为例加以介绍,所述方法包括:
46.步骤110,对ods层的新表中数据执行数据治理,生成std层的新表;其中,所述ods层的新表用于存储本轮etl执行数据抽取后获取的待处理数据;所述std层的新表用于存储本轮etl执行数据治理后获取的标准化数据;
47.步骤120,将std层的新表与旧表进行比较,以识别所述std层的新表中的增量数据;其中,所述std层的旧表用于存储上一轮etl执行数据治理后获取的标准化数据;
48.步骤130,对所述std层的新表中数据执行数据开发,生成dwd层的新表;其中,所述dwd层的新表用于存储本轮etl执行数据开发后获取的待加载数据;
49.步骤140,将所述dwd层的新表与旧表进行比较,以识别所述dwd层的新表中的增量数据;其中,所述dwd层的旧表用于存储上一轮etl执行数据开发后获取的待加载数据;
50.步骤150,将所述std层和/或dwd层中的增量数据写入到目标服务库中。
51.以下结合图3所示的本实施例提供的改进etl技术的大数据项目系统的示意图。与前述图1所示的现有etl技术的大数据项目系统相比,需要对综合库进行分层,即图3中将综合库分为ods层、std层和dwd层。
52.其中,所述综合库是大数据平台的数据库,综合库的每个层可以分别对应有数据表。其中,所述std层和dwd层中均配置有新表和旧表;新表用于存储本轮etl的数据,而旧表用于存储上一轮etl的数据。
53.如图3所示,数据接入阶段。通过etl的数据抽取技术,将数据从前置库中抽取到综合库的ods层。所述前置库是原始数据所在的数据库。其中,所述ods层中的数据可以按照抽取时间的不同,进行分区存储。从而方便数据管理。
54.本说明书中,将etl的数据转换细化为两部分,分别是数据治理和数据开发。
55.其中,数据治理阶段。通过etl的数据转换技术提供的数据治理功能,对ods层中的数据进行数据治理(如对数据进行合并、去重),根据实际的数据标准输出标准化数据,并将标准化数据存储到std层的新表中。
56.数据开发阶段。通过etl的数据转换技术提供的数据开发功能,对std层的新表中存储的标准化数据进行数据开发,例如根据数据的特征建立对应的数据模型,基于数据模型对标准化数据进行加工,得到对业务有实际意义的数据(例如人口财产信息、人口基础信息等)。这些加工后的数据将存储到dwd层的新表中。
57.数据推送阶段。通过etl的数据加载技术,将std层和/或dwd层中的增量数据作为待加载数据同步到目标服务库。
58.由于最终写入到目标服务库的数据都是增量数据,因此不会与目标服务库的目的表中数据冲突,也就无需清空目的表。
59.需要说明的是,上述std层和dwd层采用的是增量设计方式:
60.针对std层和dwd层对应的新表,可以在新表中新增时间列和状态列,分别用于记录数据对应的时间字段(update)和状态字段(del)。其中,所述时间字段用于记录数据的更新时刻,所述状态字段用于记录数据是否是新增数据。
61.在一示例性的实施例中,所述步骤120,将std层的新表与旧表进行比较,可以包括:
62.针对std层的新表中存在,而std层的旧表中不存在的数据,将所述std层的新表中该数据的状态字段设为第一状态(例如true),并更新该数据的时间字段(更新为设置第一状态的时刻);其中,第一状态表示数据为新增数据。
63.针对std层的新表中存在,而std层的旧表中也存在的数据,进一步比对该数据在新表和旧表中的数据内容;如果数据内容不一致(说明本轮与上一轮相比数据有更新),则更新所述std层的新表中该数据的时间字段(更新为数据内容的比对时刻)。如果一致,则不处理。
64.另外,针对std层的新表中不存在,而std层的旧表中存在的数据,则说明旧表中的数据已被删除,此时可以在std层的新表中新增该数据,并对该数据进行标记,以指示该数
据已被删除。
65.通过上述示例,可以识别出ods层到std层过程中的新增数据(即历史不存在的数据)、更新数据(即历史存在但数据内容更新的数据)和删除数据(即历史存证但当前不存在的数据),这些数据都可以作为ods层中本轮etl的增量数据。
66.本说明书在识别出std层的新表中的增量数据之后,进一步可以执行步骤130,对所述std层的新表中数据执行数据开发,生成dwd层的新表。
67.由于std层与dwd层的数据是经过数据转换的,因此直接比对难以有效识别增量数据,因此可以预先根据数据开发时的转换算法,具体地可以根据所述std层执行数据开发时的转换算法,对std层的新表中数据进行数据开发,并将生成的数据存储到dwd层的新表中。进而可以执行步骤140。
68.在一示例性的实施例中,所述步骤140,所述将所述dwd层的新表与旧表进行比较,可以包括:
69.针对dwd层的新表中存在,而dwd层的旧表中不存在的数据,将所述dwd层的新表中该数据的状态字段设为第一状态(例如true),并更新该数据的时间字段(更新为设置第一状态的时刻);其中,第一状态表示数据为新增数据。
70.针对dwd层的新表中存在,而dwd层的旧表中也存在的数据,进一步比对该数据在新表和旧表中的数据内容;如果数据内容不一致(说明本轮与上一轮相比数据有更新),则更新所述dwd层的新表中该数据的时间字段(更新为数据内容的比对时刻)。如果一致,则不处理。
71.针对dwd层的新表中不存在,而dwd层的旧表中存在的数据,说明旧表中的数据已被删除,此时可以在dwd层的新表中新增该数据,并对该数据进行标记,以指示该数据已被删除。
72.通过上述示例,可以识别出std层到dwd层过程中的新增数据(即历史不存在的数据)、更新数据(即历史存在但数据内容更新的数据)和删除数据(即历史存证但当前不存在的数据),这些数据都可以作为dwd层中本轮etl的增量数据。
73.在识别出所述dwd层的新表中的增量数据之后,就可以将所述dwd层中的增量数据写入到目标服务库中。其中,所述dwd层中的增量数据包括所述dwd层的新表中时间字段对应的时刻位于本轮etl开始时刻之后的数据。
74.另外,由于也识别了ods层的新表中的增量数据,在有的实施例中可以不进行数据开发,而直接将ods层的新表中的增量数据写入到目标服务库中。其中,所述std层中的增量数据包括所述std层的新表中时间字段对应的时刻位于本轮etl开始时刻之后的数据。
75.应用上述的技术方案,通过识别待加载数据中的增量数据,仅将该增量数据同步到服务库。由于增量数据与目标服务库中的数据不存在主键冲突,因此即使不清空服务库的目的表,也可以正常写入数据。如此,由于无需清空服务库的目的表,因此提高了数据加载的效率。
76.与前述应用于etl的数据处理方法实施例相对应,本说明书还提供了应用于etl的数据处理装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面
而言,如图4所示,为本说明书应用于etl的数据处理装置所在设备的一种硬件结构图,除了图4所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据应用于etl的数据处理实际功能,还可以包括其他硬件,对此不再赘述。
77.请参见图5,为本说明书一实施例提供的应用于etl的数据处理装置的模块图,所述装置对应了图2所示实施例,所述装置包括:
78.第一生成模块310,用于对ods层的新表中数据执行数据治理,生成std层的新表;其中,所述ods层的新表用于存储本轮etl执行数据抽取后获取的待处理数据;所述std层的新表用于存储本轮etl执行数据治理后获取的标准化数据;
79.第一识别模块320,用于将std层的新表与旧表进行比较,以识别所述std层的新表中的增量数据;其中,所述std层的旧表用于存储上一轮etl执行数据治理后获取的标准化数据;
80.第二生成单元330,用于对所述std层的新表中数据执行数据开发,生成dwd层的新表;其中,所述dwd层的新表用于存储本轮etl执行数据开发后获取的待加载数据;
81.第二识别模块340,用于将所述dwd层的新表与旧表进行比较,以识别所述dwd层的新表中的增量数据;其中,所述dwd层的旧表用于存储上一轮etl执行数据开发后获取的待加载数据;
82.数据加载模块350,用于将所述std层和/或dwd层中的增量数据写入到目标服务库中。
83.在一示例性的实施例中,所述std层和dwd层的新表中数据还配置有时间字段和状态字段;其中,所述时间字段用于记录旧数据的更新时刻,所述状态字段用于记录数据是否是新增数据。
84.在一示例性的实施例中,所述第一识别模块320,还用于针对std层的新表中存在,而std层的旧表中不存在的数据,将所述std层的新表中该数据的状态字段设为第一状态,并更新该数据的时间字段;其中,第一状态表示数据为新增数据。
85.在一示例性的实施例中,所述第一识别模块320,还用于针对std层的新表中存在,而std层的旧表中也存在的数据,进一步比对该数据在新表和旧表中的数据内容;如果数据内容不一致,则更新所述std层的新表中该数据的时间字段。
86.在一示例性的实施例中,所述第一识别模块320,还用于针对std层的新表中不存在,而std层的旧表中存在的数据,在std层的新表中新增该数据,并对该数据进行标记,以指示该数据已被删除。
87.在一示例性的实施例中,所述第二识别模块340,还用于针对dwd层的新表中存在,而dwd层的旧表中不存在的数据,将所述dwd层的新表中该数据的状态字段设为第一状态,并更新该数据的时间字段;其中,第一状态表示数据为新增数据。
88.在一示例性的实施例中,所述第二识别模块340,还用于针对dwd层的新表中存在,而dwd层的旧表中也存在的数据,进一步比对该数据在新表和旧表中的数据内容;如果数据内容不一致,则更新所述dwd层的新表中该数据的时间字段。
89.在一示例性的实施例中,所述第二识别模块340,还用于针对dwd层的新表中不存在,而dwd层的旧表中存在的数据,在dwd层的新表中新增该数据,并对该数据进行标记,以指示该数据已被删除。
90.在一示例性的实施例中,所述dwd层中的增量数据包括所述dwd层的新表中时间字段对应的时刻位于本轮etl开始时刻之后的数据。
91.在一示例性的实施例中,所述std层中的增量数据包括所述std层的新表中时间字段对应的时刻位于本轮etl开始时刻之后的数据
92.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
93.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
94.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
95.以上描述的应用于etl的数据处理装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
96.处理器;
97.用于存储处理器可执行指令的存储器;
98.其中,所述处理器被配置为执行前述任一实施例所述的应用于etl的数据处理方法。
99.在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read

only memory,缩写:rom)、随机存取存储器(英文:random access memory,简称:ram)、快闪存储器、硬盘或者固态硬盘。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
100.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
101.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和
精神由下面的权利要求指出。
102.应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献