ETL数据处理方法、装置、电子设备和计算机存储介质与流程
未命名
09-24
阅读:63
评论:0
etl数据处理方法、装置、电子设备和计算机存储介质
技术领域
1.本技术涉及数据仓库技术领域,尤其涉及一种etl数据处理方法、装置、电子设备和计算机存储介质。
背景技术:
2.etl(extract-transform-load,抽取-转换-加载)是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
3.相关技术中,在对etl作业进行存储时,通常会将与elt作业相关的内容存储在同一数据库中,然而,在需要执行的etl作业数量较多的情况下,采用上述存储方式,不仅会增加数据库的存储压力,还会影响系统的稳定性。
技术实现要素:
4.本技术提供一种etl数据处理方法、装置、电子设备和计算机存储介质,能够提升系统的稳定性。
5.本技术的技术方案是这样实现的:
6.本技术提供了一种etl数据处理方法,应用于后端服务器,所述方法包括:
7.接收前端发送的etl作业;
8.获取所述etl作业的相关信息,对所述etl作业的相关信息进行拆分,得到拆分后信息;所述拆分后信息包括数据源详情信息和作业详情信息;
9.将所述数据源详情信息存储至第一数据库,将所述作业详情信息存储至第二数据库;其中,所述第一数据库和所述第二数据库为不同的数据库;
10.在接收到针对所述etl作业的执行请求时,基于从所述第一数据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行。
11.在一些实施例中,所述接收前端发送的etl作业,包括:
12.接收所述前端发送的转换后的etl作业;所述转换后的etl作业是所述前端将根据用户操作指令生成的初始etl作业的格式转换成yaml格式后发送至所述后端服务器的。
13.在一些实施例中,所述拆分后信息还包括作业属性信息,所述方法还包括:
14.在将所述作业详情信息存储至所述第二数据库时,获取当前时间戳;
15.将所述当前时间戳确定为所述etl作业的版本信息,并将所述版本信息添加至所述作业属性信息中。
16.在一些实施例中,所述作业属性信息还包括所述etl作业的id和状态信息,所述方法还包括:
17.获取所述etl作业的id、状态信息以及所述版本信息;
18.根据所述etl作业的id、状态信息以及所述版本信息生成key值,并将所述key值存储至所述第一数据库;
19.所述将所述作业详情信息存储至第二数据库,包括:
20.将所述作业详情信息作为所述key值对应的vaule值存储至所述第二数据库。
21.在一些实施例中,所述基于从所述第一数据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行,包括:
22.通过调度引擎从所述第一数据库中获取所述数据源详情信息和所述key值,并根据所述key值,在所述第二数据库中获取所述作业详情信息;
23.通过所述调度引擎将所述数据源详情信息和所述作业详情信息提交给执行引擎,以通过所述执行引擎完成对所述etl作业的执行。
24.在一些实施例中,所述方法还包括:
25.将所述作业详情信息存储至所述第二数据库时,将所述作业详情信息备份至分布式缓存中。
26.在一些实施例中,所述方法还包括:
27.在所述第二数据库发生异常时,根据所述key值,在所述分布式缓存中获取所述作业详情信息。
28.本技术提供一种etl数据处理装置,所述装置包括接收模块、拆分模块、存储模块和执行模块,其中,
29.接收模块,用于接收前端发送的etl作业;
30.拆分模块,用于获取所述etl作业的相关信息,对所述etl作业的相关信息进行拆分,得到拆分后信息;所述拆分后信息包括数据源详情信息和作业详情信息;
31.存储模块,用于将所述数据源详情信息存储至第一数据库,将所述作业详情信息存储至第二数据库;其中,所述第一数据库和所述第二数据库为不同的数据库;
32.执行模块,用于在接收到针对所述etl作业的执行请求时,基于从所述第一数据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行。
33.本技术提供一种电子设备,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述一个或多个技术方案提供的etl数据处理方法。
34.本技术提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后能够实现前述一个或多个技术方案提供的etl数据处理方法。
35.本技术实施例提供一种etl数据处理方法、装置、电子设备和计算机存储介质,该方法应用于后端服务器,该方法包括:接收前端发送的etl作业;获取所述etl作业的相关信息,对所述etl作业的相关信息进行拆分,得到拆分后信息;所述拆分后信息包括数据源详情信息和作业详情信息;将所述数据源详情信息存储至第一数据库,将所述作业详情信息存储至第二数据库;其中,所述第一数据库和所述第二数据库为不同的数据库;在接收到针对所述etl作业的执行请求时,基于从所述第一数据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行。
36.可以看出,本技术实施例中,在接收到前端发送的etl作业后,通过对etl作业的相关信息进行拆分,并将拆分后得到的数据源详情信息和作业详情信息分别存储至不同的数据库中;如此,不仅能够有效降低因修改数据源详情信息造成etl作业执行失败的可能性,
还能够提升读取速度,尤其在大量etl作业周期调度并发运行时,能够减小数据库的压力,提升系统的稳定性,更好地满足应用需求。
附图说明
37.图1为本技术实施例的一种etl数据处理方法的流程示意图;
38.图2为本技术实施例提供的一种对etl作业拆分后信息存储的结构示意图;
39.图3为本技术实施例提供的另一种etl数据处理方法的流程示意图;
40.图4为本技术实施例提供的一种对作业详情信息进行备份的流程示意图;
41.图5为本技术实施例的etl数据处理装置的组成结构示意图;
42.图6为本技术实施例提供的电子设备的结构示意图。
具体实施方式
43.下面将结合本技术中的附图,对本技术中的技术方案进行清楚、完整地描述。
44.以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本技术,并不用于限定本技术。另外,以下所提供的实施例是用于实施本技术的部分实施例,而非提供实施本技术的全部实施例,在不冲突的情况下,本技术记载的技术方案可以任意组合的方式实施。
45.需要说明的是,在本技术中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其它要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素(例如方法中的步骤或者装置中的单元,例如的单元可以是部分处理器、部分程序或软件等等)。
46.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,c和/或d,可以表示:单独存在c,同时存在c和d,单独存在d这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括c、d、e中的至少一种,可以表示包括从c、d和e构成的集合中选择的任意一个或多个元素。
47.例如,本技术提供的etl数据处理方法包含了一系列的步骤,但是本技术提供的etl数据处理方法不限于所记载的步骤,同样地,本技术提供的etl数据处理装置包括了一系列模块,但是本技术提供的etl数据处理装置不限于包括所明确记载的模块,还可以包括为获取相关信息、或基于信息进行处理时所需要设置的模块。
48.本技术可以基于电子设备实现,这里,电子设备可以是瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统,等等。
49.终端设备、服务器等电子设备可以通过程序模块的执行实现相应的功能。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等。它们执行特定的任务或者实现特定的抽象数据类型。计算机系统可以在分布式云计算环境中实施,在分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
50.目前,比较常见的etl工具,通常将etl作业以js对象简谱(javascript object notation,json)的格式保存在关系型数据库中,例如mysql数据库、oracle数据库中。同时,etl作业的传输以及展示都是使用的json格式,每次都是由调度引擎从关系型数据库中读取出json格式文件,再提交到作业执行引擎,由执行引擎完成作业的执行;然而,关系型数据库并不适合储存json类型的数据,这是因为etl作业文件有的时候会很大,会超过mysql text类型规定的长度,同时会影响系统应用的每秒查询率(queries-per-second,qps)。同时,这些etl工具缺乏对流程文件的版本管理,etl作业文件在传输过程中,json格式文件自带很多标点符号,以及对象中的键都是标识符,这些都是多余的符号,会占用多余的带宽,降低数据传输速度。
51.另外,相关技术中,在对etl作业进行存储时,通常会将与elt作业相关的内容存储在同一数据库中,然而,在需要执行的etl作业数量较多的情况下,采用上述存储方式,不仅会增加数据库的存储压力,还会影响系统的稳定性。
52.针对上述问题,提出以下各实施例。
53.在本技术的一些实施例中,etl数据处理方法可以利用etl数据处理装置中的处理器实现,上述处理器可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程逻辑门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器中的至少一种。
54.图1为本技术实施例的一种etl数据处理方法的流程示意图,应用于后端服务器,如图1所示,该流程可以包括:
55.步骤100:接收前端发送的etl作业。
56.这里,前端即客户端,可以是运行在电脑端、移动端等浏览器上用于向用户展示内容或进行一些用户交互操作的页面;本技术实施例中,etl数据处理方法可以应用于后端服务器,也称后端或后台,指能够对上述前端提供某些服务的计算机系统,其中,服务的内容可以是向前端提供资源,保存前端数据等。
57.在一些实施例中,接收前端发送的etl作业,可以包括:接收前端发送的转换后的etl作业;其中,转换后的etl作业是前端将根据用户操作指令生成的初始etl作业的格式转换成yaml格式后发送至后端服务器的。
58.示例性地,用户操作指令可以是用户在前端页面进行拖、拉、拽等交互操作后生成的指令;前端在接收到用户操作指令后,可以根据该用户操作指令,生成对应的初始etl作业;接着,前端对该初始etl作业的格式进行转换,示例性地,可以将该初始etl作业的格式转换成yaml(yaml aint markup language)格式,进而,得到yaml格式的etl作业,即转换后的etl作业。
59.示例性地,在前端得到yaml格式的etl作业后,会将该etl作业传输至后端服务器,此时,后端服务器接收到前端发送的etl作业。
60.可以理解地,与相关技术中json格式的etl作业相比,本技术实施例在前端将etl作业转换成yaml格式进行表示,可以减少不必要的标识符,节省了作业传输带宽以及存储资源。
61.步骤101:获取etl作业的相关信息,对etl作业的相关信息进行拆分,得到拆分后信息。
62.示例性地,后端服务器接收到前端发送的etl作业后,会获取etl作业的相关信息;这里,etl作业的相关信息可以包括与etl作业相关的数据源信息以及与etl作业自身相关的信息;进一步地,在获取到etl作业的相关信息后,会对etl作业的相关信息进行拆分,得到拆分后信息。
63.示例性地,拆分后信息可以包括数据源详情信息和作业详情信息;因为etl作业主要作用是将一个数据源的数据抽取、经清洗转换后装载到另一个数据源,所以数据源详情信息是etl作业的一个重要组成部分;其中,数据源详情信息可以包括数据源的主键身份标识号(identity document,id)、网际互连协议(internet protocol,ip)、端口、用户名和密码等信息;作业详情信息可以包括etl作业后续执行所需的相关信息,例如,可以包括作业优先级、源数据源信息、目的数据源信息等。
64.在一些实施例中,拆分后信息还可以包括作业属性信息,其中,作业属性信息是对etl作业自身属性进行描述的信息,例如,可以包括作业的id、名称、路径、类型、状态信息、所属的项目组、调度信息的主键等。
65.本技术实施例中,对于etl作业的业务场景不作限定;可以理解地,对于在不同业务场景下获得的各个etl作业,它们对应的数据源详情信息、作业详情信息和作业属性信息可能不同。
66.步骤102:将数据源详情信息存储至第一数据库,将作业详情信息存储至第二数据库;其中,第一数据库和第二数据库为不同的数据库。
67.示例性地,第一数据库可以为关系型数据库,例如,mysql数据库、oracle数据库等;以mysql数据库为例进行说明,因为数据源详情信息通常是一些结构化数据,而mysql数据库是按照结构化的方法存储数据,每个数据表会对各个字段定义好,再以行和列的方式进行数据存储,所以使用mysql数据库对数据源详情信息进行存储将便于后续的读取和查询。
68.可以理解地,为确保实时获取到最新的数据源详情信息,在将数据源详情信息存储至关系型数据库时,可以将数据源的主键id和其它详情信息(例如,数据源的ip、端口、用户名和密码等信息)分开存储;示例性地,可以将数据源的主键id存储在关系型数据库中,其它详细信息则存储在单独的元数据管理模块,可以通过表征状态转移(representational state transfer,rest)接口访问。
69.在一些实施例中,由于拆分后信息还可以包括作业属性信息,而作业属性信息通常也是一些结构化数据,为便于后续的读取和查询,也可以将这部分信息存储至第一数据库中。
70.示例性地,第二数据库可以为内存数据库,例如,redis数据库、memcached数据库等;以redis数据库为例进行说明,因为作业详情信息是一些非结构化信息,不仅数据量大,还会被频繁操作,若将作业详情信息存储至关系型数据库,则每次请求访问数据库时,都存在着输入/输出(input/output,i/o)操作,如果反复频繁访问数据库,则会降低数据获取效率;而redis数据库是一款缓存数据库,用于存储使用频繁的数据,这样减少访问数据库的次数,提高运行效率;此外,redis数据库支持的数据存储类型比关系型数据库更丰富,包括
字符串(strings)、列表(lists)、集合(sets)和(sorted sets)等,便于存储作业详情信息这类非结构化数据。
71.可以理解地,通过将etl作业的作业详情信息存入了redis数据库中,可以提升数据读取速度,特别是大量作业周期调度并发运行的时候,很大的减少了关系型数据库的压力,提升了系统的稳定性。
72.在一些实施例中,上述方法还可以包括:在将作业详情信息存储至第二数据库时,获取当前时间戳;将当前时间戳确定为etl作业的版本信息,并将版本信息添加至作业属性信息中。
73.示例性地,当前时间戳是后端服务器生成的一个时间戳,用来描述etl作业的;后端服务器在获取到当前时间戳后,可以将当前时间戳作为etl作业的版本信息;并将该版本信息添加至作业属性信息中;如此,可以实现对etl作业的版本管理。
74.在一些实施例中,上述方法还可以包括:获取etl作业的id、状态信息以及版本信息;根据etl作业的id、状态信息以及版本信息生成key值,并将key值存储至第一数据库;
75.示例性地,在进行数据存储过程中,可以从作业属性信息中获取etl作业的id、状态信息以及版本信息,进而,根据获取到的etl作业的id、状态信息以及版本信息生成一个key值,该key值用于对存储至第二数据库中的作业详情信息进行读写操作;在得到该key值后,将该key值存储至第一数据库。
76.在一些实施例中,将作业详情信息存储至第二数据库,可以包括:将作业详情信息作为key值对应的vaule值存储至第二数据库。
77.示例性地,在确定上述key值后,可以将作业详情信息作为key值对应的vaule值存储至第二数据库。
78.可以理解地,因为数据源的信息可能会被修改,为了降低因数据源信息的修改导致后续etl作业执行失败,本技术实施例通过对etl作业的相关信息进行拆分,并将拆分后得到的数据源详情信息和作业详情信息分别存储至不同的数据库中,不仅能够提升数据读取速度,还能有效提升etl作业执行成功的可能性。
79.步骤103:在接收到针对etl作业的执行请求时,基于从第一数据库获取的数据源详情信息,以及从第二数据库获取的作业详情信息,完成对etl作业的执行。
80.示例性地,用户首先在前端发起针对etl作业的执行请求,前端在获取到该执行请求后会发送给后端服务器,这样,后端服务器可以接收到该执行请求。
81.示例性地,后端服务器还可以包括调度引擎和执行引擎,在后端服务器接收到该执行请求后,可以基于调度引擎从第一数据库和第二数据库分别获取数据源详情信息和作业详情信息,之后,执行引擎基于这两部分信息完成对etl作业的执行,下面进行具体说明。
82.在一些实施例中,基于从第一数据库获取的数据源详情信息,以及从第二数据库获取的作业详情信息,完成对etl作业的执行,可以包括:通过调度引擎从第一数据库中获取数据源详情信息和key值,并根据key值,在第二数据库中获取作业详情信息;通过调度引擎将数据源详情信息和作业详情信息提交给执行引擎,以通过执行引擎完成对etl作业的执行。
83.示例性地,调度引擎首先根据从第一数据库中获取的key值,从第二数据库中获取作业详情信息;然后,根据数据源的主键id,从第一数据库中获取数据源详情信息;将获取
到的数据源的ip、端口、用户名和密码等注入到yaml格式的作业详情信息后提交给执行引擎,最后由执行引擎完成对etl作业的执行。
84.在一些实施例中,上述方法还可以包括:将作业详情信息存储至第二数据库时,将作业详情信息备份至分布式缓存中。
85.示例性地,为降低因redis数据库发生数据丢失导致etl作业执行失败的可能性,可以在接收到针对etl作业的执行请求时,启动一个定时线程,将存储在第二数据库中的作业详情信息读取下来,保存到分布式缓存中;这里,对于分布式缓存的不作限定,例如,可以为分布式文件系统(hadoop distributed file system,hdfs)等。
86.示例性地,在作业详情信息保存到分布式缓存时,为节省存储空间,可以对作业详情信息进行打包压缩,并删除之前存储的压缩包。这样,当第二数据库服务发生异常时,可以根据key值从分布式缓存中读取作业详情信息,如此,可以有效确保etl作业信息的完整性,避免因第二数据库故障问题导致etl作业信息的丢失,提升etl作业执行的成功率。另外,当第二数据库服务发生异常时,还可以触发报警告知运维人员,以便对故障问题及时处理。
87.本技术实施例提供一种etl数据处理方法、装置、电子设备和计算机存储介质,该方法应用于后端服务器,该方法包括:接收前端发送的etl作业;获取etl作业的相关信息,对etl作业的相关信息进行拆分,得到拆分后信息;拆分后信息包括数据源详情信息和作业详情信息;将数据源详情信息存储至第一数据库,将作业详情信息存储至第二数据库;其中,第一数据库和第二数据库为不同的数据库;在接收到针对etl作业的执行请求时,基于从第一数据库获取的数据源详情信息,以及从第二数据库获取的作业详情信息,完成对etl作业的执行。可以看出,本技术实施例中,在接收到前端发送的etl作业后,通过对etl作业的相关信息进行拆分,并将拆分后得到的数据源详情信息和作业详情信息分别存储至不同的数据库中;如此,不仅能够有效降低因修改数据源详情信息造成etl作业执行失败的可能性,还能够提升读取速度,尤其在大量etl作业周期调度并发运行时,能够减小数据库的压力,提升系统的稳定性,更好地满足应用需求。
88.为了能够更加体现本技术的目的,在本技术上述实施例的基础上,进行进一步的举例说明。
89.图2为本技术实施例提供的一种对etl作业拆分后信息存储的结构示意图,如图2所示,拆分后信息包括数据源详情信息、作业属性信息和作业详情信息;其中,数据源详情信息、作业属性信息存储至在mysql数据库中,作业详情信息存储至在redis数据库中,同时将数据源详情信息备份至hdfs中。
90.在图2所示的存储方式的基础上,图3示出了本技术实施例提供的另一种etl数据处理方法的流程示意图,如图3所示,该流程可以包括:
91.步骤200:前端将yaml格式的etl作业传输给后台服务器。
92.示例性地,前端在获取到生成的初始etl作业后,会将该初始etl作业的格式转换成yaml格式,并传输给后端服务器,同时针对数据源详情信息只保存一个数据源主键id,保存在mysql数据库中,数据源的其它详情信息存储在单独的元数据管理模块,可以通过rest接口访问。
93.步骤201:通过时间戳生成版本信息,根据etl作业的id、状态信息以及版本信息生
成key值。
94.示例性地,在后台服务器对作业详情信息进行存储时,将后台服务器生成的当前时间戳作为etl作业的版本信息,同时根据etl作业的id、状态信息以及版本信息生成一个key值。
95.步骤202:将key值以及作业属性信息存储在mysql数据库中。
96.步骤203:将作业详情信息存储在redis数据库中。
97.步骤204:每次执行etl作业前,从redis数据库中获取作业详情信息,若确定redis发生故障则从hdfs中读取,然后从元数据管理模块注入最新的数据源详情信息再提交给执行引擎。
98.图4为本技术实施例提供的一种对作业详情信息进行备份的流程示意图,如图4所示,该流程可以包括:
99.步骤300:程序启动时启动定时线程读取redis数据库中的作业详情信息。
100.示例性地,为降低因redis数据库发生数据丢失导致etl作业执行失败的可能性,在后台服务器程序启动的时候启动一个定时线程,将redis数据库中的作业详情信息读取下来。
101.步骤301:将作业详情信息存储至hdfs。
102.步骤302:对存储至hdfs中的作业详情信息进行打包压缩。
103.示例性地,为节省存储空间,可以对存储至hdfs中的作业详情信息进行打包压缩,即,以压缩包的形式进行存储。
104.步骤303:删除之前存储的压缩包。
105.示例性地,在hdfs中存入新的压缩包后,对之前存储的压缩包进行删除;这样,当内存数据库redis服务异常的时候,可以从hdfs中读取作业详情信息,确保etl作业的成功执行;另外,还可以触发报警告知运维人员。
106.可以看出,本技术实施例将etl作业用yaml表示,相对json格式包括的很多标点符号,一定范围内的减少了作业文件的大小,减少了作业传输所占用的带宽;另外,将作业详情信息存入了redis中提升了读取速度,特别是大量作业周期调度并发运行的时候,很大的减少了关系型数据库的压力,提升了系统的稳定性;同时将数据源详情信息和作业详情信息分开存储,可以确保每次执行的时候从元数据管理模块注入数据源详情信息,从而避免了数据源信息的修改导致作业执行失败;进一步地,将hdfs作为备份存储介质的使用,很好的提升了作业文件完整性,避免因redis数据库发生问题导致作业信息的丢失,同时满足避免了微服务高可用的状态问题。
107.图5为本技术实施例的etl数据处理装置的组成结构示意图,如图5所示,该装置包括:接收模块400、拆分模块401、存储模块402和执行模块403,其中:
108.接收模块400,用于接收前端发送的etl作业;
109.拆分模块401,用于获取所述etl作业的相关信息,对所述etl作业的相关信息进行拆分,得到拆分后信息;所述拆分后信息包括数据源详情信息和作业详情信息;
110.存储模块402,用于将所述数据源详情信息存储至第一数据库,将所述作业详情信息存储至第二数据库;其中,所述第一数据库和所述第二数据库为不同的数据库;
111.执行模块403,用于在接收到针对所述etl作业的执行请求时,基于从所述第一数
据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行。
112.在一些实施例中,所述接收模块400,用于接收前端发送的etl作业,包括:
113.接收所述前端发送的转换后的etl作业;所述转换后的etl作业是所述前端将根据用户操作指令生成的初始etl作业的格式转换成yaml格式后发送至所述后端服务器的。
114.在一些实施例中,所述拆分后信息还包括作业属性信息,所述存储模块402,还用于:
115.在将所述作业详情信息存储至所述第二数据库时,获取当前时间戳;
116.将所述当前时间戳确定为所述etl作业的版本信息,并将所述版本信息添加至所述作业属性信息中。
117.在一些实施例中,所述作业属性信息还包括所述etl作业的身份证标识号id和状态信息,所述存储模块402,还用于:
118.获取所述etl作业的id、状态信息以及所述版本信息;
119.根据所述etl作业的id、状态信息以及所述版本信息生成key值,并将所述key值存储至所述第一数据库;
120.所述存储模块402,用于将所述作业详情信息存储至第二数据库,包括:
121.将所述作业详情信息作为所述key值对应的vaule值存储至所述第二数据库。
122.在一些实施例中,所述执行模块403,用于基于从所述第一数据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行,包括:
123.通过调度引擎从所述第一数据库中获取所述数据源详情信息和所述key值,并根据所述key值,在所述第二数据库中获取所述作业详情信息;
124.通过所述调度引擎将所述数据源详情信息和所述作业详情信息提交给执行引擎,以通过所述执行引擎完成对所述etl作业的执行。
125.在一些实施例中,所述存储模块402,还用于:
126.将所述作业详情信息存储至所述第二数据库时,将所述作业详情信息备份至分布式缓存中。
127.在一些实施例中,所述执行模块403,还用于:
128.在所述第二数据库发生异常时,根据所述key值,在所述分布式缓存中获取所述作业详情信息。
129.在实际应用中,上述接收模块400、拆分模块401、存储模块402和执行模块403均可以由位于电子设备中的处理器实现,该处理器可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。
130.另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
131.集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的
形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等多种可以存储程序代码的介质。
132.具体来讲,本实施例中的一种etl数据处理方法对应的计算机程序指令可以被存储在光盘、硬盘、u盘等存储介质上,当存储介质中的与一种etl数据处理方法对应的计算机程序指令被一电子设备读取或被执行时,实现前述实施例的任意一种etl数据处理方法。
133.基于前述实施例相同的技术构思,参见图6,其示出了本技术实施例提供的电子设备500,可以包括:存储器501和处理器502;其中,
134.存储器501,用于存储计算机程序和数据;
135.处理器502,用于执行存储器中存储的计算机程序,以实现前述实施例的任意一种etl数据处理方法。
136.在实际应用中,上述存储器501可以是易失性存储器(volatile memory),例如ram;或者非易失性存储器(non-volatile memory),例如rom、快闪存储器(flash memory)、硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);或者上述种类的存储器的组合,并向处理器502提供指令和数据。
137.上述处理器502可以为asic、dsp、dspd、pld、fpga、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的数据处理系统,用于实现上述处理器功能的电子器件还可以为其它,本技术实施例不作具体限定。
138.在一些实施例中,本技术实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
139.上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
140.本技术所提供的各方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
141.本技术所提供的各产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
142.本技术所提供的各方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
143.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
144.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
145.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
146.以上,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
技术特征:
1.一种etl数据处理方法,其特征在于,应用于后端服务器,所述方法包括:接收前端发送的etl作业;获取所述etl作业的相关信息,对所述etl作业的相关信息进行拆分,得到拆分后信息;所述拆分后信息包括数据源详情信息和作业详情信息;将所述数据源详情信息存储至第一数据库,将所述作业详情信息存储至第二数据库;其中,所述第一数据库和所述第二数据库为不同的数据库;在接收到针对所述etl作业的执行请求时,基于从所述第一数据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行。2.根据权利要求1所述的方法,其特征在于,所述接收前端发送的etl作业,包括:接收所述前端发送的转换后的etl作业;所述转换后的etl作业是所述前端将根据用户操作指令生成的初始etl作业的格式转换成yaml格式后发送至所述后端服务器的。3.根据权利要求1所述的方法,其特征在于,所述拆分后信息还包括作业属性信息,所述方法还包括:在将所述作业详情信息存储至所述第二数据库时,获取当前时间戳;将所述当前时间戳确定为所述etl作业的版本信息,并将所述版本信息添加至所述作业属性信息中。4.根据权利要求3所述的方法,其特征在于,所述作业属性信息还包括所述etl作业的id和状态信息,所述方法还包括:获取所述etl作业的id、状态信息以及所述版本信息;根据所述etl作业的id、状态信息以及所述版本信息生成key值,并将所述key值存储至所述第一数据库;所述将所述作业详情信息存储至第二数据库,包括:将所述作业详情信息作为所述key值对应的vaule值存储至所述第二数据库。5.根据权利要求4所述的方法,其特征在于,所述基于从所述第一数据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行,包括:通过调度引擎从所述第一数据库中获取所述数据源详情信息和所述key值,并根据所述key值,在所述第二数据库中获取所述作业详情信息;通过所述调度引擎将所述数据源详情信息和所述作业详情信息提交给执行引擎,以通过所述执行引擎完成对所述etl作业的执行。6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:将所述作业详情信息存储至所述第二数据库时,将所述作业详情信息备份至分布式缓存中。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:在所述第二数据库发生异常时,根据所述key值,在所述分布式缓存中获取所述作业详情信息。8.一种etl数据处理装置,其特征在于,应用于后端服务器,所述装置包括:接收模块,用于接收前端发送的etl作业;拆分模块,用于获取所述etl作业的相关信息,对所述etl作业的相关信息进行拆分,得
到拆分后信息;所述拆分后信息包括数据源详情信息和作业详情信息;存储模块,用于将所述数据源详情信息存储至第一数据库,将所述作业详情信息存储至第二数据库;其中,所述第一数据库和所述第二数据库为不同的数据库;执行模块,用于在接收到针对所述etl作业的执行请求时,基于从所述第一数据库获取的所述数据源详情信息,以及从所述第二数据库获取的作业详情信息,完成对所述etl作业的执行。9.一种电子设备,其特征在于,所述设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至7任一项所述的方法。10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
技术总结
本申请提供一种ETL数据处理方法、装置、电子设备和计算机存储介质,该方法应用于数据仓库技术领域,该方法包括:接收前端发送的ETL作业;获取ETL作业的相关信息,对ETL作业的相关信息进行拆分,得到拆分后信息;拆分后信息包括数据源详情信息和作业详情信息;将数据源详情信息存储至第一数据库,将作业详情信息存储至第二数据库;其中,第一数据库和第二数据库为不同的数据库;在接收到针对ETL作业的执行请求时,基于从第一数据库获取的数据源详情信息,以及从第二数据库获取的作业详情信息,完成对ETL作业的执行。如此,能够减小数据库的压力,提升系统的稳定性,更好地满足应用需求。更好地满足应用需求。更好地满足应用需求。
技术研发人员:吴文兵
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.06.10
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:显示设备、服务器以及频道推荐方法与流程 下一篇:穿戴式显示装置及投影装置的制作方法