应用于ETL的数据加载、读取方法和装置及电子设备与流程

文档序号:28183730发布日期:2021-12-25 01:19阅读:187来源:国知局
应用于ETL的数据加载、读取方法和装置及电子设备与流程
应用于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的数据加载方法,应用于etl的控制端,所述控制端与配置中心关联,所述配置中心用于记录服务库中最新的生效表;所述方法包括:
12.所述控制端在执行etl的数据加载时,获取所述etl在执行数据转换后生成的待加载数据;
13.获取所述待加载数据的目标服务库,进而查询所述配置中心记录的所述目标服务库中最新的生效表;
14.基于所述最新的生效表,确定所述目标服务库中与所述最新的生效表对应的备份表;
15.向所述备份表中写入所述待加载数据,并更新所述配置中心记录的所述目标服务
库中最新的生效表。
16.根据本说明书实施例的第二方面,提供一种应用于etl的数据读取方法,应用于etl的控制端,所述控制端与配置中心关联,所述配置中心用于记录服务库中最新的生效表;所述方法包括:
17.接收目标应用发起针对目标服务库的数据读取请求;
18.查询配置中心记录的所述目标服务库中最新的生效表;
19.基于所述最新的生效表,从所述目标服务库的生效表中读取数据;
20.将读取到的数据发送给所述目标应用。
21.根据本说明书实施例的第三方面,提供一种应用于etl的数据加载装置,应用于etl的控制端,所述控制端与配置中心关联,所述配置中心用于记录服务库中最新的生效表所述装置包括:
22.获取模块,用于在执行etl的数据加载时,获取所述etl在执行数据转换后生成的待加载数据;
23.查询模块,用于获取所述待加载数据的目标服务库,进而查询所述配置中心记录的所述目标服务库中最新的生效表;
24.确定模块,用于基于所述最新的生效表,确定所述目标服务库中与所述最新的生效表对应的备份表;
25.加载模块,用于向所述备份表中写入所述待加载数据,并更新所述配置中心记录的所述目标服务库中最新的生效表。
26.根据本说明书实施例的第四方面,提供一种应用于etl的数据读取装置,应用于etl的控制端,所述控制端与配置中心关联,所述配置中心用于记录服务库中最新的生效表;所述装置包括:
27.接收模块,用于接收目标应用发起针对目标服务库的数据读取请求;
28.查询模块,用于查询配置中心记录的所述目标服务库中最新的生效表;
29.读取模块,用于基于所述最新的生效表,从所述目标服务库的生效表中读取数据;
30.发送模块,用于将读取到的数据发送给所述目标应用。
31.根据本说明书实施例的第五方面,提供一种电子设备,包括:
32.处理器;
33.用于存储处理器可执行指令的存储器;
34.其中,所述处理器被配置为上述任一项应用于etl的数据加载、读取方法。
35.本说明书实施例提供了应用于etl的数据加载方案,通过预先在与应用对应的服务库中创建与生效表(即服务库最近一次写入数据的目的表)对应的备份表,以及在etl系统中设置配置中心(用于记录服务库中最新的生效表)。在数据推送阶段中,将数据转换后输出的待加载数据同步到目标服务库时,基于配置中心记录的目标服务库中最新的生效表,向目标服务库中与该生效表对应的备份表中写入待加载数据。由于备份表是与目的表对应的空表,因此将待加载数据写入到备份表时,不存在主键冲突的问题。如此,不需要清空服务库的目的表,即节约了数据写入的时间,又不会存在数据清空无法恢复的问题。
附图说明
36.图1是本说明书一实施例提供的采用现有etl技术的大数据项目的示意图;
37.图2是本说明书一实施例提供的应用于etl的数据加载方法的流程图;
38.图3是本说明书一实施例提供的采用改进etl技术的大数据项目的示意图;
39.图4是本说明书一实施例提供的应用于etl的数据读取方法的流程图;
40.图5是本说明书一实施例提供的应用于etl的数据加载、读取装置的硬件结构图;
41.图6是本说明书一实施例提供的应用于etl的数据加载装置的模块示意图;
42.图7是本说明书一实施例提供的应用于etl的数据读取装置的模块示意图。
具体实施方式
43.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
44.在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
45.应当理解,尽管在本说明书可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
46.在采用现有etl技术的大数据项目中,如图1所示etl通常包含以下几个数据处理阶段:
47.1、数据接入阶段。etl的控制端通过etl的数据抽取技术,将数据从前置库中抽取到综合库。其中,所述前置库是原始数据所在的数据库,所述综合库是大数据平台的数据库。
48.2、数据开发阶段。etl的控制端通过etl的数据转换技术,对抽取到综合库中的数据进行处理。所述处理可以包括例如数据清洗、数据融合等数据治理方式。
49.3、数据推送阶段。etl的控制端通过etl的数据加载技术,将数据转换后综合库中的待加载数据同步到服务库。
50.4、数据服务阶段。etl的控制端通过etl的数据传输技术,将服务库中的数据提供给应用。例如,数据服务系统基于服务库中的数据,以预设的网络接口如rest api,对应用提供数据服务。
51.其中,在数据推送阶段,将数据转换后输出的待加载数据同步到服务库时,由于服务库的目的表(写入待加载数据的表)中数据和待加载数据可能存在主键冲突的情况,为了确保数据写入的正常执行,需要先清空服务库中的目的表,然后再将待加载数据全量写入到清空后的目的表中。
52.但是,清空目的表不仅需要消耗额外的时间,而且目的表中原本存储的数据被清空后也无法恢复。
53.为了解决上述问题,本技术旨在提供一种不需要清空服务库的目的表,也可以正常写入待加载数据的etl的数据加载方案。
54.具体是通过预先在与应用对应的服务库中创建与生效表(即服务库最近一次写入数据的目的表)对应的备份表,以及在etl系统中设置配置中心(用于记录服务库中最新的生效表)。在数据推送阶段中,将数据转换后输出的待加载数据同步到目标服务库时,基于配置中心记录的目标服务库中最新的生效表,向目标服务库中与该生效表对应的备份表中写入待加载数据。
55.由于备份表是与目的表对应的空表,因此将待加载数据写入到备份表时,不存在主键冲突的问题。如此,不需要清空服务库的目的表,即节约了数据写入的时间,又不会存在数据清空无法恢复的问题。
56.以下可以参考图2所示的一种应用于etl的数据加载方法为例加以介绍,应用于etl的控制端,所述控制端与配置中心关联,所述配置中心用于记录服务库中最新的生效表;所述方法包括:
57.步骤110,所述控制端在执行etl的数据加载时,获取所述etl在执行数据转换后生成的待加载数据;
58.步骤120,获取所述待加载数据的目标服务库,进而查询所述配置中心记录的所述目标服务库中最新的生效表;
59.步骤130,基于所述最新的生效表,确定所述目标服务库中与所述最新的生效表对应的备份表;
60.步骤140,向所述备份表中写入所述待加载数据,并更新所述配置中心记录的所述目标服务库中最新的生效表。
61.以下结合图3所示的本实施例提供的改进etl技术的大数据项目系统的示意图。与前述图1所示的现有etl技术的大数据项目系统相比,改进后的系统中增加了配置中心。
62.其中,所述配置中心用于记录各个服务库中最新的生效表。
63.其中,所述最新的生效表,是指服务库最近一次写入待加载数据的目的表。
64.本说明书中,针对每个服务库可以为目的表创建对应的备份表。如果一个服务库中存在多个目的表,则每个目的表都可以创建对应的备份表。
65.在一是示例性的实施例中,所述备份表的表名为在所述目的表的表名基础上添加预设后缀的表名。例如,目的表为t_user,则创建对应的备份表t_user_backup。
66.如图3所示,数据接入阶段。控制端可以通过etl的数据抽取技术,将数据从前置库中抽取到综合库。其中,所述前置库是原始数据所在的数据库,所述综合库是大数据平台的数据库。
67.数据开发阶段。控制端可以通过etl的数据转换技术,对抽取到综合库中的数据进行处理。所述处理可以包括例如数据清洗、数据融合等数据治理方式。
68.数据推送阶段。控制端可以获取所述待加载数据的目标服务库,进而查询所述配置中心记录的所述目标服务库中最新的生效表;基于所述最新的生效表,确定所述目标服务库中与所述最新的生效表对应的备份表;通过etl的数据加载技术,将数据开发后输出的
待加载数据同步到目标服务库的备份表中;并更新所述配置中心记录的所述目标服务库中最新的生效表。
69.在一示例性的实施例中,所述配置中心还记录有服务库的通信信息;所述步骤120中,查询所述配置中心记录的所述目标服务库中最新的生效表,可以包括:
70.查询所述配置中心记录的所述目标服务库中最新的生效表和通信信息;
71.相应地,步骤130,可以包括:
72.向通信信息指向的目标服务库,获取与所述最新的生效表对应的备份表。
73.在本说明书中,所述通信信息可以包括服务库信息如服务库的ip、端口、服务库标识等等;所述最新的生效表可以包括如生效表标识、生效表表名等等。
74.在一示例性的实施例中,所述更新所述配置中心记录的所述目标服务库中最新的生效表,包括:
75.将所述配置中心记录的所述目标服务库中最新的生效表修改为所述写入待加载数据的备份表,并将所述目标服务库中生效表切换为备份表。
76.其中,在将所述目标服务库中生效表切换为备份表之前或之后将表内数据清空。
77.在一示例性的实施例中,所述方法还包括:
78.如果查询不到所述配置中心记录有所述目标服务库中最新的生效表,则在所述目标服务库中创建生效表和对应的备份表。
79.应用上述的技术方案,通过预先在与应用对应的服务库中创建与生效表(即服务库最近一次写入数据的目的表)对应的备份表,以及在etl系统中设置配置中心(用于记录服务库中最新的生效表)。在数据推送阶段中,将数据转换后输出的待加载数据同步到目标服务库时,基于配置中心记录的目标服务库中最新的生效表,向目标服务库中与该生效表对应的备份表中写入待加载数据。由于备份表是与目的表对应的空表,因此将待加载数据写入到备份表时,不存在主键冲突的问题。如此,不需要清空服务库的目的表,即节约了数据写入的时间,又不会存在数据清空无法恢复的问题。
80.如图3所示,在通过上述实施例示出的etl的数据加载方法写入了待加载数据之后,还可以通过数据服务模块将服务库中的数据提供给应用,即本说明书还提供了一种应用于etl的数据读取方法。
81.以下可以参考图4所示的一种应用于etl的数据读取方法为例加以介绍,应用于etl的控制端,所述控制端与配置中心关联,所述配置中心用于记录服务库中最新的生效表;所述方法包括:
82.步骤310,接收目标应用发起针对目标服务库的数据读取请求;
83.步骤320,查询配置中心记录的所述目标服务库中最新的生效表;
84.步骤330,基于所述最新的生效表,从所述目标服务库的生效表中读取数据;
85.步骤340,将读取到的数据发送给所述目标应用。
86.如图3所示,在数据推送阶段,控制端在将待加载数据写入到的目标服务库的备份表后,会将所述配置中心记录的所述目标服务库中最新的生效表修改为所述写入待加载数据的备份表。
87.因此,在数据服务阶段,控制端通过查询配置中心或者由配置中心推送以确定待读取数据所在的数据表(即最新的生效表)。然而就可以从所述目标服务库的生效表中读取
数据,并将读取到的数据发送给目标应用。
88.在一示例性的实施例中,所述数据读取请求包括待读取数据的数据范围;所述从所述目标服务库的生效表中读取数据,包括:
89.从所述目标服务库的生效表中读取位于所述数据范围中的数据。
90.在实际应用中,目标应用所需的数据只是目标服务库中的部分数据,无需将目标服务库的数据表中全部数据都发送给目标应用;为此目标应用在发送数据读取请求时可以限定其所需数据的数据范围,相应地从目标服务库的生效表中读取的数据也是限定在这个数据范围内的数据。
91.在一示例性的实施例中,将配置中心的配置文件存储到本地的缓存设备中。其中,所述缓存设备可以包括内存或者redis等缓存中间件。
92.应用上述实施例,通过引入缓存机制把配置中心的配置文件缓存下来,避免每次响应数据读取请求时都需要从配置中心获取生效表,从而提高了数据读取写入的效率。
93.应用上述的技术方案,通过预先在与应用对应的服务库中创建与生效表(即服务库最近一次写入数据的目的表)对应的备份表,以及在etl系统中设置配置中心(用于记录服务库中最新的生效表)。在数据推送阶段中,将数据转换后输出的待加载数据同步到目标服务库时,基于配置中心记录的目标服务库中最新的生效表,向目标服务库中与该生效表对应的备份表中写入待加载数据。由于备份表是与目的表对应的空表,因此将待加载数据写入到备份表时,不存在主键冲突的问题。如此,不需要清空服务库的目的表,即节约了数据写入的时间,又不会存在数据清空无法恢复的问题。
94.另一方面,在数据服务阶段,通过配置中心确定带读取数据位于目标服务库的数据表,以从该数据表读取相应数据并发送给目标应用。
95.与前述应用于etl的数据加载、读取方法实施例相对应,本说明书还提供了应用于etl的数据加载、读取装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书应用于etl的数据加载、读取装置所在设备的一种硬件结构图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据应用于etl的数据加载、读取实际功能,还可以包括其他硬件,对此不再赘述。
96.请参见图6,为本说明书一实施例提供的应用于etl的数据加载装置的模块图,所述装置对应了图2所示实施例,应用于etl的控制端,所述控制端与配置中心关联,所述配置中心用于记录服务库中最新的生效表所述装置包括:
97.获取模块410,用于在执行etl的数据加载时,获取所述etl在执行数据转换后生成的待加载数据;
98.查询模块420,用于获取所述待加载数据的目标服务库,进而查询所述配置中心记录的所述目标服务库中最新的生效表;
99.确定模块430,用于基于所述最新的生效表,确定所述目标服务库中与所述最新的生效表对应的备份表;
100.加载模块440,用于向所述备份表中写入所述待加载数据,并更新所述配置中心记
录的所述目标服务库中最新的生效表。
101.可选的,所述加载模块440,还用于将所述配置中心记录的所述目标服务库中最新的生效表修改为所述写入待加载数据的备份表,并将所述目标服务库中生效表切换为备份表。
102.可选的,所述装置还包括:
103.创建模块,用于在查询不到所述配置中心记录有所述目标服务库中最新的生效表时,在所述目标服务库中创建生效表和对应的备份表。
104.请参见图7,为本说明书一实施例提供的应用于etl的数据读取装置的模块图,所述装置对应了图4所示实施例,应用于etl的控制端,所述控制端与配置中心关联,所述配置中心用于记录服务库中最新的生效表;所述装置包括:
105.接收模块510,用于接收目标应用发起针对目标服务库的数据读取请求;
106.查询模块520,用于查询配置中心记录的所述目标服务库中最新的生效表;
107.读取模块530,用于基于所述最新的生效表,从所述目标服务库的生效表中读取数据;
108.发送模块540,用于将读取到的数据发送给所述目标应用。
109.可选的,所述数据读取请求包括待读取数据的数据范围;
110.所述读取模块530,还用于从所述目标服务库的生效表中读取位于所述数据范围中的数据。
111.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
112.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
113.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
114.以上描述的应用于etl的数据加载、数据读取装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
115.处理器;
116.用于存储处理器可执行指令的存储器;
117.其中,所述处理器被配置为执行前述任一实施例所述的应用于etl的数据加载或读取方法。
118.在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:
digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read

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