CN111666326B - Etl调度方法及装置 - Google Patents
Etl调度方法及装置 Download PDFInfo
- Publication number
- CN111666326B CN111666326B CN202010475399.4A CN202010475399A CN111666326B CN 111666326 B CN111666326 B CN 111666326B CN 202010475399 A CN202010475399 A CN 202010475399A CN 111666326 B CN111666326 B CN 111666326B
- Authority
- CN
- China
- Prior art keywords
- target
- data
- identifier
- sql
- sql statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种ETL调度方法及装置,该方法包括:定时获取目标SQL语句列表,目标SQL语句列表包含多条SQL语句,各个SQL语句中包含有对应的语句类型标识;若根据各个SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则基于包含有子查询的SQL语句的源表的标识和目标表的标识生成血缘对照关系表;将血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使目标调度服务器根据映射关系表、目标数据平台信息、血缘对照关系表和目标SQL语句列表执行目标调度作业。本申请能够提高ETL调度的准确性、灵活性和效率,实现数据模型的动态修正以及调度结果的可视化显示,进而能够提高数据处理的可靠性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种ETL调度方法及装置。
背景技术
传统的ETL(Extraction-Transformation-Loading)调度是指将分散的数据和异构数据源中的数据进行数据清洗和集成后加载到大数据平台、数据平台、数据集市中,能够为联机分析处理和数据挖掘提供决策支持和数据支持。ETL调度流程非常复杂,不仅需要考虑各个步骤的先后顺序和依赖关系等,还需要考虑不同作业间的先后顺序和依赖关系。
在精准营销、产品创新、风险控制、市场分析和资源配置等领域,通过ETL调度对原始数据进行处理,能够为公司管理决策人员、风险管理人员、业务处理人员和客户等提供数据支持。目前,从对数据加工处理到可视化显示有以下两种途径:
(1)在数据仓库中建立数据集市,以ETL调度为基础,以业务需求为驱动,将开发人员开发指标加工作业和数据对接至各个应用平台,应用平台根据业务需求将原始数据的处理指标和处理结果进行可视化图表展示。
(2)通过现有的一些数据挖掘工具,例如,应用SAS EG、SAS Viya和SPSS等统计分析软件,对原始数据进行统计分析并将统计结果可视化显示。
第一种方式,人力成本高;开发周期长,每次需求变更或问题的修正,需要重新制定版本;难以满足动态高频变化的业务需求;第二种方式,为了保证数据的完整性,需要确定T-1或者T数据是否到期(T表示自然日),再对数据进行处理、统计和可视化显示;在频繁统计的情况下,增加了额外重复性的工作量,处理效率低;需要人工触发或定时触发,数据处理时效性低。
发明内容
针对现有技术中的问题,本申请提出了一种ETL调度方法及装置,能够提高ETL调度的准确性、灵活性和效率,进而能够提高数据处理的可靠性。
第一方面,本申请提供一种ETL调度方法,包括:
定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识;
若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识;
基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识;
将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业。
进一步地,所述基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,包括:若经判断得到所述血缘对照关系表中已存在将所述包含有子查询的SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述包含有子查询的SQL语句对应的第一新增有效记录,并删除所述历史记录;其中,所述第一新增有效记录中的目标表的标识为所述包含有子查询的SQL语句对应的目标表的标识,该第一新增有效记录中的源表的标识为所述历史记录中的源表的标识。
进一步地,在所述将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器之前,还包括:若根据各个所述SQL语句的语句类型标识确定所述目标SQL语句列表中包含有属于删除类型的SQL语句,则该属于删除类型的SQL语句中包含有待删除数据表的标识;删除所述血缘对照关系表中将所述SQL语句对应的待删除数据表的标识作为源表的标识和/或目标表的标识的历史记录。
进一步地,所述基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,包括:若经判断得到所述血缘对照关系表中不存在将所述SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述SQL语句对应的第二新增有效记录;其中,所述第二新增有效记录中的目标表的标识为所述SQL语句对应的目标表的标识,该第二新增有效记录中的源表的标识为所述SQL语句对应的源表的标识。
进一步地,所述根据该血缘对照关系表、预存储的映射关系表、预获取的目标数据平台信息和目标SQL语句列表执行目标调度作业,包括:所述目标调度服务器确定所述血缘对照关系表中与该目标SQL语句列表对应的源表的标识,并从所述预存储的映射关系表中获得将该源表的标识作为目标表的标识的依赖作业记录;所述目标调度服务器判断所述依赖作业记录对应的依赖作业,在预设时间段内是否处于已完成状态,若是,则向该目标调度服务器对应的数据服务器发送数据处理请求,以使该数据服务器根据该数据处理请求完成对应的数据处理过程。
进一步地,所述根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业,还包括:监控所述目标调度作业的作业状态,若目标调度作业的作业状态为已完成状态,则将所述目标ETL调度作业对应的目标表的数据输出显示。
进一步地,所述将所述目标ETL调度作业对应的目标表的数据输出显示,包括:若经判断确定本地存在所述目标表对应的数据模型,则根据所述目标表的当前数据更新该数据模型,该数据模型包括:所述目标表的元数据和表数据的存储地址;根据所述数据模型生成对应的目标数据表,并将该目标数据表输出显示,该目标数据表包括:所述目标表的元数据和表数据。
进一步地,所述将所述目标ETL调度作业对应的目标表的数据输出显示,包括:若经判断得到本地不存在所述目标表对应的数据模型,则根据所述目标表的当前数据创建所述数据模型,该数据模型包括:所述目标表的元数据和表数据的存储地址;根据所述数据模型生成对应的目标数据表,并将该目标数据表输出显示,该目标数据表包括:所述目标表的元数据和表数据。
进一步地,所述目标调度服务器为定时根据所述血缘对照关系表更新所述预存储的映射关系表的服务器。
第二方面,本申请提供一种ETL调度装置,包括:
定时获取模块,用于定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识;
第一判断模块,若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识;
生成模块,用于基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识;
执行模块,用于将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业。
进一步地,所述生成模块包括:第一新增单元,用于若经判断得到所述血缘对照关系表中已存在将所述包含有子查询的SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述包含有子查询的SQL语句对应的第一新增有效记录,并删除所述历史记录;其中,所述第一新增有效记录中的目标表的标识为所述包含有子查询的SQL语句对应的目标表的标识,该第一新增有效记录中的源表的标识为所述历史记录中的源表的标识。
进一步地,所述的ETL调度装置还包括:第二判断模块,用于若根据各个所述SQL语句的语句类型标识确定所述目标SQL语句列表中包含有属于删除类型的SQL语句,则该属于删除类型的SQL语句中包含有待删除数据表的标识;删除模块,用于删除所述血缘对照关系表中将所述SQL语句对应的待删除数据表的标识作为源表的标识和/或目标表的标识的历史记录。
进一步地,所述生成模块包括:第二新增单元,用于若经判断得到所述血缘对照关系表中不存在将所述SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述SQL语句对应的第二新增有效记录;其中,所述第二新增有效记录中的目标表的标识为所述SQL语句对应的目标表的标识,该第二新增有效记录中的源表的标识为所述SQL语句对应的源表的标识。
第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的ETL调度方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述的ETL调度方法。
由上述技术方案可知,本申请提供一种ETL调度方法及装置。其中,该方法包括:定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识;若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识;基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识;将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业,能够提高ETL调度的准确性、灵活性和效率,实现数据模型的动态修正以及调度结果的可视化显示,进而能够提高数据处理的可靠性;具体地,能够提高ETL调度过程中数据萃取的效率、实时性和ETL调度结果的可视化程度,并且还能够实现对可视化数据模型的动态修正;能够有效解决发版周期长的问题,并且能够保证数据处理和数据可视化显示的时效性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中ETL调度方法的流程示意图;
图2是本申请另一实施例中ETL调度方法的流程示意图;
图3是本申请又一实施例中ETL调度方法的流程示意图;
图4是本申请再一实施例中ETL调度方法的流程示意图;
图5是本申请实施例中ETL调度方法步骤401至步骤402的流程示意图;
图6是本申请实施例中ETL调度方法步骤411和步骤412的流程示意图;
图7是本申请实施例中ETL调度方法步骤413和步骤414的流程示意图;
图8是本申请实施例中ETL调度装置的结构示意图;
图9是本申请具体应用实例中ETL调度***的结构示意图;
图10是本申请具体应用实例中指标加工可视化集群与调度监控模块的连接关系示意图;
图11是本申请具体应用实例中自定义脚本模块的结构示意图;
图12是本申请具体应用实例中血缘关系分析的流程示意图;
图13是本申请具体应用实例中调度监控模块的结构示意图;
图14是本申请具体应用实例中模型管理模块的结构示意图;
图15是本申请具体应用实例中数据同步模块的结构示意图;
图16为本申请实施例的电子设备9600的***构成示意框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在应用现有的数据挖掘工具时,使用工具人员无法预测ETL调度数据批量日,为了保证数据的完整性,需要采用人工触发或定时触发的方式以确保T-1或者T数据到期;采用人工触发的方式需要等待执行结果,数据处理时效性不够高,可视化结果滞后;采用定时触发的方式,需根据经验设定数据批量日(一般为T-n,T为自然日),这种方式,可以避免手工操作,但是还是无法解决数据处理时效性低的问题,即无法确保数据全部到齐后,立马做数据处理,从而造成结果滞后。除此外,经验设定批量日期同样存在数据偏差的风险。
基于此,本申请考虑从改变现有的ETL调度方式入手,提出一种ETL调度方法及装置,通过SQL语句解析做表的血缘性分析,动态获取表对应的依赖作业,基于ETL调度准实时响应自定义作业,能够提高数据的处理速度和时效性;利用模型动态监控变化,能够提高动态视图的自适应性,同时将外部表作为可视化展现介质,能够避免数据加载时造成的可视化展现延迟,进而提高可视化显示的时效性。
为了提高ETL调度的准确性、灵活性和效率,进而提高数据处理的可靠性,本实施例提供一种执行主体是ETL调度装置的ETL调度方法,该ETL调度装置包括但不限于服务器,可以是应用指标加工和可视化集群中的多个服务器中的至少一个,如图1所示,该方法具体包含有如下内容:
步骤100:定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识。
具体地,所述语句类型标识可以是基于SQL语言的语法规则确定的SQL语句中用于表示SQL语句类型的英文单词和/或词组,如:查询类型标识“SELECT”、操作类型标识“CREATE”和删除类型标识“DELETE”等,用于区分不同的语句类型。SQL语句列表与调度作业为一一对应关系。所述SQL语句列表可以是一自定义脚本。
步骤200:若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识。
具体地,所述源表的标识可以是所述源表的表名,用于区分不同的数据表;所述目标表的标识可以是所述目标表的表名,用于区分不同的数据表;所述源表和目标表均为数据仓库中的数据表。举例来说,若所述SQL语句为“CREATE...A AS SELECT...FROM B,C”,那么该SQL语句中的语句类型标识为“CREATE”和“AS SELECT”,源表的标识为B和C,目标表的标识为A,根据“CREATE”和“AS SELECT”可知该SQL语句为包含有子查询的操作类型的SQL语句。
步骤300:基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识。
具体地,所述生成血缘对照关系表包含有创建血缘对照关系表,以及更新、删除和新增原血缘关系表中的ETL调度作业记录中的至少一种。一个ETL调度作业可以对应多条ETL调度作业记录。若所述血缘对照关系表只包含有一条ETL调度作业记录,则该ETL调度作业记录为所述目标调度作业对应的ETL调度作业记录。
步骤400:将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业。
具体地,所述映射关系表为预先存储在ETL调度服务器中的映射关系表,包含目标表和调度作业之间的映射关系。用以标识,何作业生成何表。所述目标数据平台信息可以预先存储在本地,可以是目标数据平台的唯一标识信息,目标数据平台可以是数据集市。
为了通过血缘分析,生成可靠的血缘对照关系表,进而应用可靠的血缘对照关系表提高ETL调度的效率和准确性,在本申请一个实施例中,参见图2,步骤300包含有:
步骤310:若经判断得到所述血缘对照关系表中已存在将所述包含有子查询的SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述包含有子查询的SQL语句对应的第一新增有效记录,并删除所述历史记录;其中,所述第一新增有效记录中的目标表的标识为所述包含有子查询的SQL语句对应的目标表的标识,该第一新增有效记录中的源表的标识为所述历史记录中的源表的标识。
具体地,所述历史记录为预设存储在所述血缘对照关系表中的ETL调度作业记录,所述第一新增有效记录为根据所述包含有子查询的SQL语句和历史记录,在所述血缘关系对照表中新增的ETL调度作业记录;删除所述历史记录的方式可以是物理删除,即直接删除血缘对照关系表中的该历史记录,还可以是逻辑删除,即在血缘对照关系表中将该历史记录的状态设置为无效状态。
举例来说,若所述血缘对照关系表中已存在的历史记录如表1所示,所述包含有子查询的SQL语句为“CREATE...A AS SELECT...FROM B”,则如表2所示,根据该历史记录和包含有子查询的SQL语句,将作业记录中的状态设置为无效“1”;同时,新增记录,在新增记录中,目标表为A,源表为D,状态为有效“0”。
表1
作业名称 | 作业目标表 | 作业源表 | 状态 |
1 | B | D | 0 |
表2
为了进一步提高血缘对照关系表的准确性,并且节省血缘对照关系表占用的内存空间,在本申请一个实施例中,参见图3,在步骤400之前还包含有:
步骤021:若根据各个所述SQL语句的语句类型标识确定所述目标SQL语句列表中包含有属于删除类型的SQL语句,则该属于删除类型的SQL语句中包含有待删除数据表的标识。
具体地,所述待删除数据表的标识可以是待删除数据表的表名,用于区分不同的数据表,所述待删除数据表为数据仓库中的数据表。举例来说,所述属于删除类型的SQL语句为“DROP…E”,其中,E为待删除数据表的标识。
步骤022:删除所述血缘对照关系表中将所述SQL语句对应的待删除数据表的标识作为源表的标识和/或目标表的标识的历史记录。
具体地,删除所述血缘对照关系表中将所述SQL语句对应的待删除数据表的标识作为源表的标识的历史记录;以及删除所述血缘对照关系表中将所述SQL语句对应的待删除数据表的标识作为目标表的标识的历史记录。
为了生成可靠的血缘对照关系表,进而应用可靠的血缘对照关系表提高ETL调度的效率和准确性,在本申请一个实施例中,参见图4,步骤300包含有:
步骤320:若经判断得到所述血缘对照关系表中不存在将所述SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述SQL语句对应的第二新增有效记录;其中,所述第二新增有效记录中的目标表的标识为所述SQL语句对应的目标表的标识,该第二新增有效记录中的源表的标识为所述SQL语句对应的源表的标识。
具体地,所述第二新增有效记录为根据所述包含有子查询的SQL语句,在所述血缘关系对照表中新增的ETL调度作业记录。
为了实时监控依赖作业的状态,并根据依赖作业的状态触发目标调度作业,进而提高ETL调度的效率和准确性,在本申请一个实施例中,参见图5,步骤400中的所述根据该血缘对照关系表、预存储的映射关系表、预获取的目标数据平台信息和目标SQL语句列表执行目标调度作业,包含有:
步骤401:所述目标调度服务器确定所述血缘对照关系表中与该目标SQL语句列表对应的源表的标识,并从所述预存储的映射关系表中获得将该源表的标识作为目标表的标识的依赖作业记录。
具体地,在所述映射关系表中,一个依赖作业可以对应多条依赖作业记录。
步骤402:所述目标调度服务器判断所述依赖作业记录对应的依赖作业,在预设时间段内是否处于已完成状态,若是,则向该目标调度服务器对应的数据服务器发送数据处理请求,以使该数据服务器根据该数据处理请求完成对应的数据处理过程。
具体地,所述依赖作业是指在目标调度作业执行前执行的调度作业,当依赖作业执行完成且成功,则执行目标调度作业。可以将在当前时间点前的一时间段内,作业状态由未完成状态更新为已完成状态的调度作业作为目标调度作业的依赖作业。所述预设时间段可根据实际情况进行设置,本申请对此不作限制。当所述数据服务器根据该数据处理请求完成对应的数据处理过程可以相当于执行完成目标调度作业,即所述目标调度作业的作业状态为已完成状态。
进一步地,所述数据处理请求包含有预获取的目标数据平台信息和目标SQL语句列表;相对应的,该数据服务器根据该数据处理请求完成对应的数据处理过程包含有:所述数据服务器根据所述目标SQL语句列表完成数据仓库中对应的源表数据的处理,并将处理后得到的目标表数据发送至所述预获取的目标数据平台信息对应的目标数据平台。数据仓库是企业管理和决策过程中产生的面向主题的、集成的、与时间相关的、且不可修改的数据集合。存储有ETL调度从源端抽取、转换和加载的数据。依次执行所述目标SQL语句列表中的各个SQL语句,能够实现对所述目标调度作业对应的源表数据的处理。所述目标数据平台可以是所述数据服务器中的数据集市。
为了在提高ETL调度的准确性和效率的基础上,实现对ETL调度的监控,提高调度结果可视化显示的准确性、效率和实时性,在本申请一个实施例中,步骤400还包含有:
步骤410:监控所述目标调度作业的作业状态,若目标调度作业的作业状态为已完成状态,则将所述目标ETL调度作业对应的目标表的数据输出显示。
具体地,可以定时将目标调度作业的运行状态存储在预存储的作业状态表中,ETL调度装置查询作业状态表,获得目标调度作业的作业状态。
为了提高获取数据模型的准确性和效率,实现数据模型的动态修正,进而提高调度结果可视化显示的准确性和效率,在本申请一个实施例中,参见图6,步骤410中所述将所述目标ETL调度作业对应的目标表的数据输出显示包含有:
步骤411:若经判断确定本地存在所述目标表对应的数据模型,则根据所述目标表的当前数据更新该数据模型,该数据模型包括:所述目标表的元数据和表数据的存储地址。
具体地,若所述目标调度作业的作业状态为已完成状态,则所述ETL调度装置可以接收所述目标调度作业对应的目标表的元数据和表数据的存储地址。所述元数据是表的属性数据,如字段信息,表数据是数据表中的数据。更新后的数据模型包含有目标表当前的元数据的存储地址和表数据的存储地址。
步骤412:根据所述数据模型生成对应的目标数据表,并将该目标数据表输出显示,该目标数据表包括:所述目标表的元数据和表数据。
具体地,可以根据所述数据模型中的元数据的存储地址和表数据的存储地址从数据服务器中确定对应的元数据和表数据,以生成对应的目标数据表。
为了提高获取数据模型的准确性和效率,实现数据模型的动态修正,进而提高调度结果可视化显示的准确性和效率,在本申请一个实施例中,参见图7,步骤410包含有:
步骤413:若经判断得到本地不存在所述目标表对应的数据模型,则根据所述目标表的当前数据创建所述数据模型,该数据模型包括:所述目标表的元数据和表数据的存储地址。
所述数据模型包含有所述目标表当前的元数据的存储地址和表数据的存储地址。
步骤414:根据所述数据模型生成对应的目标数据表,并将该目标数据表输出显示,该目标数据表包括:所述目标表的元数据和表数据。
为了获得可靠的映射关系表,进而应用可靠的映射关系表执行调度作业,提高调度作业的可靠性和效率,在本申请一个实施例中,所述目标调度服务器为定时根据所述血缘对照关系表更新所述预存储的映射关系表的服务器。
具体地,可以定时判断所述映射关系对照表中是否存在血缘对照关系表中的各个ETL调度作业记录的目标表的标识和作业记录名称的对应关系,若否,则根据该条ETL调度作业记录中的目标表的标识和作业记录名称生成一条依赖作业记录并更新至所述映射关系表中。
从软件层面来说,为了提高ETL调度的准确性、灵活性和效率,进而提高数据处理的可靠性,本申请还提供一种用于实现所述ETL调度方法中全部或部分内容的ETL调度装置的实施例,参见图8,所述ETL调度装置具体包含有如下内容:
定时获取模块10,用于定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识。
第一判断模块20,若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识。
生成模块30,用于基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识。
执行模块40,用于将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业。
在本申请一个实施例中,所述生成模块,包括:
第一新增单元,用于若经判断得到所述血缘对照关系表中已存在将所述包含有子查询的SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述包含有子查询的SQL语句对应的第一新增有效记录,并删除所述历史记录;其中,所述第一新增有效记录中的目标表的标识为所述包含有子查询的SQL语句对应的目标表的标识,该第一新增有效记录中的源表的标识为所述历史记录中的源表的标识。
在本申请一个实施例中,所述的ETL调度装置,还包括:
第二判断模块,用于若根据各个所述SQL语句的语句类型标识确定所述目标SQL语句列表中包含有属于删除类型的SQL语句,则该属于删除类型的SQL语句中包含有待删除数据表的标识。
删除模块,用于删除所述血缘对照关系表中将所述SQL语句对应的待删除数据表的标识作为源表的标识和/或目标表的标识的历史记录。
在本申请一个实施例中,所述生成模块包括:
第二新增单元,用于若经判断得到所述血缘对照关系表中不存在将所述SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述SQL语句对应的第二新增有效记录;其中,所述第二新增有效记录中的目标表的标识为所述SQL语句对应的目标表的标识,该第二新增有效记录中的源表的标识为所述SQL语句对应的源表的标识。
本说明书提供的ETL调度***的实施例具体可以用于执行上述ETL调度方法的实施例的处理流程,其功能在此不再赘述,可以参照上述ETL调度方法实施例的详细描述。
为了进一步说明本方案,本申请提供一种ETL调度方法的具体应用实例,在本具体应用实例中,该方法主要包含有两部分内容,一、通过血缘分析,生成血缘对照关系表;二、感知元数据变化,快速修正可视化数据模型,提供可视化的基础,能够提高ETL调度快速处理数据以及可视化数据模型动态修正;具体描述如下:
图9为用于执行本具体应用实例中ETL调度方法的ETL调度***的结构示意图,由图9可知,ETL调度***包含有:大数据ETL调度***1,数据仓库2,数据集市3和应用指标加工和可视化集群4。该ETL调度***实现的功能主要包含有:S1部署自定义脚本;S2:调度触发数据加工;S3:加工结果存入数据集市;S4:使用datax或sqoop做数据同步;S5:获取自定义运行脚本状态;S6:获取元数据信息;S7:获取数据文件。
大数据ETL调度***1用于执行将数据从源端经过抽取、转换和加载到目的端。调度服务器独立于数据服务器,提供数据加工服务,该服务是在以上面所述的数据为基础。
数据仓库2是企业管理和决策过程中面向主题的、集成的、与时间相关的、且不可修改的数据集合。存储有大数据ETL调度***从源端抽取、转换和加载的数据。
数据集市3,是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标和维度的层次等,生成面向决策分析需求的数据立方体。这里主要用于自定义指标加工的数据存储。
具体地,数据仓库和数据集市是数据基础,相当于数据存储的仓库,存储于数据服务器中。
应用指标加工和可视化集群4,将自定义指标加工的作业做血缘分析,快速部署自定义作业。通过监控作业运行状态,快速同步数据模型和数据,以便做可视化显示。可视化集群调用调度服务器提供的服务获取状态。可视化集群中的各个服务器中分别根据脚本生成血缘表,定时将各个血缘表中信息和脚本发送至调度服务器,更新调度服务器中的映射关系表中。具体步骤如下:
步骤S01:应用指标加工和可视化集群通过自定义作业模块,快速将作业部署至ETL调度服务器,ETL调度以任务流的形式做数据处理,自定义作业模块可以按预设规则依赖对应任务流,待对应任务流结束,启动自定义模块部署的脚本任务。
步骤S02:调度服务器调起自定义指标作业,加工数据仓库数据。
步骤S03:调度服务器将数据仓库数据做自定义指标加工并存放至数据集市。
步骤S04:调度作业结束后,应用datax或sqoop获取数据文件并发送至调度服务器2或预设目标服务器。
其中,datax是一种离线数据同步工具;sqoop是一种将分布式文件***Hadoop(Hadoop Distributed File System)和关系型数据库中的数据相互转移的工具。另外,还可以以点对点或GTP(GPRSTunnelingProtocol,GPRS隧道协议)等方式获取数据文件。
步骤S05:监控自定义脚本作业的运行完成情况。
步骤S06:根据运行完成情况获取数据表元数据信息,以更新数据模型。
如图10所示,应用指标加工和可视化集群包括自定义作业模块41、调度监控模块42、模型管理模块43、数据同步模块44和可视化模块45。
如图11所示,自定义作业模块分为参数配置单元4101、SQL解析单元4102、血缘分析单元4103和同步注册调度作业单元4104。
参数配置单元4101,用于配置作业的数据平台类型、频度、偏移量和作业脚本内容等作业属性。
SQL语句解析单元4102,用于将SQL语句文本解析为语法树,提取表名,根据预设和自定义获取源表和目标表。
血缘分析单元4103,用于记录SQL语句解析单元输出的源表和目标表,生成作业血缘对照关系表,表结构如表3所示:
表3
作业名称 | 作业目标表 | 作业源表 | 状态 |
1、失效0、有效 |
另外,根据分析的源表信息,按照预设规则,去找到对应源表的加载生成作业。图12为具体的血缘分析单元4103的逻辑处理示意图。具体步骤如下:
步骤S11:接收输入参数,包括用户提交的DDL和DML多段脚本。
步骤S12:判断所有SQL语句是否已处理;具体地,判断脚本中的所有SQL语句是否均被处理,如果存在未处理语句,执行步骤S13提取单条SQL语句,否则结束处理流程,进入步骤S112。
步骤S13:提取单条SQL语句;具体地,从已解析的SQL语句列表中按顺序提取单条未处理的语句。
步骤S14:判断SQL语句类型,是否为生成表数据的操作;具体地,判断是否为CREATE或者INSERT语句,如果是,则进入步骤S15,否则进入步骤S19。
步骤S15:判断用户数据表操作是否包含子查询;具体地,判断是否包含有SELECT查询,即判断该SQL语句的格式是否为“CREATE...AS SELECT...”和“INSERTINTO...SELECT...”等。
步骤S16:提取查询的数据表作为源表,记为源表B;提取创建和/或***的数据表作为目标表,记为目标表A。
具体地,根据预设规则,从SQL语句中提取源表信息和目标表信息。例如,“CREATE...A AS SELECT...FROM B,C”;“INSERT INTO A...SELECT...FROM B,C”,其中,A作为目标表,B和C作为源表。
步骤S17:判断源表B是否在历史记录中作为目标表;具体地,根据源表B遍历业血缘对照关系表,判断是否存在作为目标表出现的记录。如果有,则执行步骤S18,否则,则执行步骤S19。
步骤S18:将历史记录设置为失效状态并新增记录,新增记录的源表为历史记录的源表,目标表为目标表A。步骤S18执行结束后,执行步骤S110。
参见表1,如果血缘对照关系表中存在根据“CREATE...B AS SELECT...FROM D”创建的有效历史记录,且SQL列表中的SQL语句包含有“CREATE...A AS SELECT...FROM B”,则如表2所示,将有效历史记录的状态更改为无效状态“1”,同时新增记录,在新增的记录中,目标表为A,源表为D,状态为有效状态“0”。
步骤S19:根据SQL语句中的源表和目标表,新增记录。
步骤S110:判断是否为DDL中的删表操作。具体地,判断SQL语句是否为用户DDL删除表的语句,如果是,则进入步骤S111,否则,结束本次血缘分析过程,返回步骤12,对下一条SQL语句进行血缘分析。
步骤S111:提取DDL中的表对象,进入步骤S112。
步骤S112:删除对应的源表、目标表记录;根据表对象,删除该表为目标表或者源表的记录。
根据上述处理过程获取作业的源表信息,以及ETL调度提供的作业和目标表之间的映射关系,获取该自定义作业对应的ETL调度作业。
同步注册调度作业单元4104,将自定义指标加工作业的脚本、频度和平台类型等信息联机注册到ETL调度服务器。作为ETL调度的作业的一部分。
图13为调度监控模块42的结构示意图,调度监控模块42包含有调度作业监控单元4201和通知处理单元4202。调度作业监控单元4201,用于监控自定义指标加工作业的作业状态和最新批量日期等信息。通知处理单元4202,用于将作业运行完成的状态通知模型管理模块和数据同步模块,以便后续操作。
图14为模型管理模块43的结构示意图,用于根据可视化表对象生成对应的数据模型。包括第一监听单元4301和数据模型处理单元4302。第一监听单元4301监听通知处理单元4202的通知,如果下一条作业中的SQL语句的批量运行成功,则流转入数据模型处理单元4302。
数据模型处理单元4302,当数据表的表结构发生变化时,根据先前存储的数据模型存在数据表的配置信息,在原有数据模型的基础上做增减,具体步骤如下:
步骤一:获取需要处理的数据表记录,进入步骤二。
步骤二:判断数据表记录对应的数据模型是否已经创建,如果是,则进入步骤三,否则,进入步骤十二,所述的数据模型是存储目标表结构的数据表,用于存储目标表的元数据(如字段信息)和表数据的存储位置,以及数据展示。
步骤四:判断A1和A2是否都为空集,如果都为空集,则表示元数据并未更新。数据模型不需要修改,结束该处理。否则,则进入步骤五。
步骤五:判断A1是否为空集,如果A1≠φ,则表示有数据表新增列操作,进入步骤六,否则进入步骤七。
步骤六:数据模型更新,新增模型列,进入步骤七。
步骤七:判断A2是否为空集,如果A2≠φ,则表示有数据表删除列操作,进入步骤八,否则进入步骤十一。
步骤八:数据模型更新,删除模型列,进入步骤九。
步骤九:若是删除表,即M为空集,则将数据模型所有列删除,并同步删除对应的外部表,否则进入步骤十。
步骤十:由于有数据表结构更新,同步更新完数据模型列的同时,同步更新外部表定义。
步骤十一:若是新增表,则创建所有模型列,并创建对应的外部表。
图15为数据同步模块44的结构示意图,数据同步模块主要包括第二监听单元4401、数据同步单元4402和数据清理单元4403。第二监听单元4401主要监听数据模型处理单元是否执行完成,以分配接下来的操作。数据同步单元4402主要是接收由sqoop和datax等方式生成的数据文件。数据清理单元4403主要是设置清理周期,根据设定规则,清理数据文件。
由上述描述可知,本申请提供的ETL调度方法及装置,能够提高ETL调度的准确性、灵活性和效率,实现数据模型的动态修正以及调度结果的可视化显示,进而能够提高数据处理的可靠性;具体地,在ETL为联机分析处理、数据挖掘提供决策支持的数据后,实现准实时数据的萃取以及可视化显示;能够提高数据时效性,进而能够帮助公司管理决策人员、风险管理人员和业务处理人员等快速获取一手资料,在实现准确且快速地做业务决策的同时节约人力开销。
从硬件层面来说,为了提高ETL调度的准确性、灵活性和效率,实现数据模型的动态修正以及调度结果的可视化显示,进而提高数据处理的可靠性,本申请提供一种用于实现所述ETL调度方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现所述ETL调度装置以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述ETL调度方法的实施例及用于实现所述ETL调度装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图16为本申请实施例的电子设备9600的***构成的示意框图。如图16所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图16是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在本申请一个或多个实施例中,ETL调度作业功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
步骤100:定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识。
步骤200:若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识。
步骤300:基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识。
步骤400:将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业。
从上述描述可知,本申请的实施例提供的电子设备,能够提高ETL调度的准确性、灵活性和效率,实现数据模型的动态修正以及调度结果的可视化显示,进而能够提高数据处理的可靠性。
在另一个实施方式中,ETL调度装置可以与中央处理器9100分开配置,例如可以将ETL调度装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现ETL调度作业功能。
如图16所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图16中所示的所有部件;此外,电子设备9600还可以包括图16中没有示出的部件,可以参考现有技术。
如图16所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
上述描述可知,本申请的实施例提供的电子设备,能够提高ETL调度的准确性、灵活性和效率,实现数据模型的动态修正以及调度结果的可视化显示,进而能够提高数据处理的可靠性。
本申请的实施例还提供能够实现上述实施例中的ETL调度方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的ETL调度方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识。
步骤200:若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识。
步骤300:基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识。
步骤400:将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够提高ETL调度的准确性、灵活性和效率,实现数据模型的动态修正以及调度结果的可视化显示,进而能够提高数据处理的可靠性。
本申请中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本申请中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种ETL调度方法,其特征在于,包括:
定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识;
若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识;
基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识;
将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业。
2.根据权利要求1所述的ETL调度方法,其特征在于,所述基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,包括:
若经判断得到所述血缘对照关系表中已存在将所述包含有子查询的SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述包含有子查询的SQL语句对应的第一新增有效记录,并删除所述历史记录;
其中,所述第一新增有效记录中的目标表的标识为所述包含有子查询的SQL语句对应的目标表的标识,该第一新增有效记录中的源表的标识为所述历史记录中的源表的标识。
3.根据权利要求1所述的ETL调度方法,其特征在于,在所述将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器之前,还包括:
若根据各个所述SQL语句的语句类型标识确定所述目标SQL语句列表中包含有属于删除类型的SQL语句,则该属于删除类型的SQL语句中包含有待删除数据表的标识;
删除所述血缘对照关系表中将所述SQL语句对应的待删除数据表的标识作为源表的标识和/或目标表的标识的历史记录。
4.根据权利要求1所述的ETL调度方法,其特征在于,所述基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,包括:
若经判断得到所述血缘对照关系表中不存在将所述SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述SQL语句对应的第二新增有效记录;
其中,所述第二新增有效记录中的目标表的标识为所述SQL语句对应的目标表的标识,该第二新增有效记录中的源表的标识为所述SQL语句对应的源表的标识。
5.根据权利要求1所述的ETL调度方法,其特征在于,所述目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业,包括:
所述目标调度服务器确定所述血缘对照关系表中与该目标SQL语句列表对应的源表的标识,并从所述预存储的映射关系表中获得将该源表的标识作为目标表的标识的依赖作业记录;
所述目标调度服务器判断所述依赖作业记录对应的依赖作业,在预设时间段内是否处于已完成状态,若是,则向该目标调度服务器对应的数据服务器发送数据处理请求,以使该数据服务器根据该数据处理请求完成对应的数据处理过程。
6.根据权利要求1所述的ETL调度方法,其特征在于,所述根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业,还包括:
监控所述目标调度作业的作业状态,若目标调度作业的作业状态为已完成状态,则将所述目标ETL调度作业对应的目标表的数据输出显示。
7.根据权利要求6所述的ETL调度方法,其特征在于,所述将所述目标ETL调度作业对应的目标表的数据输出显示,包括:
若经判断确定本地存在所述目标表对应的数据模型,则根据所述目标表的当前数据更新该数据模型,该数据模型包括:所述目标表的元数据和表数据的存储地址;
根据所述数据模型生成对应的目标数据表,并将该目标数据表输出显示,该目标数据表包括:所述目标表的元数据和表数据。
8.根据权利要求6所述的ETL调度方法,其特征在于,所述将所述目标ETL调度作业对应的目标表的数据输出显示,包括:
若经判断得到本地不存在所述目标表对应的数据模型,则根据所述目标表的当前数据创建所述数据模型,该数据模型包括:所述目标表的元数据和表数据的存储地址;
根据所述数据模型生成对应的目标数据表,并将该目标数据表输出显示,该目标数据表包括:所述目标表的元数据和表数据。
9.根据权利要求1所述的ETL调度方法,其特征在于,所述目标调度服务器为定时根据所述血缘对照关系表更新所述预存储的映射关系表的服务器。
10.一种ETL调度装置,其特征在于,包括:
定时获取模块,用于定时获取目标SQL语句列表,其中,所述目标SQL语句列表中包含有多条SQL语句,且各个所述SQL语句中均包含有对应的语句类型标识;
第一判断模块,若根据各个所述SQL语句的语句类型标识确定属于操作类型的SQL语句中包含有子查询,则该包含有子查询的SQL语句中还包含有用于获取待处理数据的源表的标识以及用于存储处理后的数据的目标表的标识;
生成模块,用于基于所述包含有子查询的SQL语句的源表的标识和目标表的标识,生成血缘对照关系表,该血缘对照关系表包含有至少一条ETL调度作业记录,且各条ETL调度作业记录中包括:包含有子查询的SQL语句对应的所述源表和所述目标表的标识;
执行模块,用于将所述血缘对照关系表和目标SQL语句列表发送至目标调度服务器,以使该目标调度服务器根据预存储的映射关系表、目标数据平台信息、所述血缘对照关系表和目标SQL语句列表执行目标调度作业。
11.根据权利要求10所述的ETL调度装置,其特征在于,所述生成模块,包括:
第一新增单元,用于若经判断得到所述血缘对照关系表中已存在将所述包含有子查询的SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述包含有子查询的SQL语句对应的第一新增有效记录,并删除所述历史记录;
其中,所述第一新增有效记录中的目标表的标识为所述包含有子查询的SQL语句对应的目标表的标识,该第一新增有效记录中的源表的标识为所述历史记录中的源表的标识。
12.根据权利要求10所述的ETL调度装置,其特征在于,还包括:
第二判断模块,用于若根据各个所述SQL语句的语句类型标识确定所述目标SQL语句列表中包含有属于删除类型的SQL语句,则该属于删除类型的SQL语句中包含有待删除数据表的标识;
删除模块,用于删除所述血缘对照关系表中将所述SQL语句对应的待删除数据表的标识作为源表的标识和/或目标表的标识的历史记录。
13.根据权利要求10所述的ETL调度装置,其特征在于,所述生成模块,包括:
第二新增单元,用于若经判断得到所述血缘对照关系表中不存在将所述SQL语句对应的源表的标识作为目标表的标识的历史记录,则在所述血缘对照关系表中创建一条与所述SQL语句对应的第二新增有效记录;
其中,所述第二新增有效记录中的目标表的标识为所述SQL语句对应的目标表的标识,该第二新增有效记录中的源表的标识为所述SQL语句对应的源表的标识。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至9任一项所述的ETL调度方法。
15.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至9任一项所述的ETL调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010475399.4A CN111666326B (zh) | 2020-05-29 | 2020-05-29 | Etl调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010475399.4A CN111666326B (zh) | 2020-05-29 | 2020-05-29 | Etl调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666326A CN111666326A (zh) | 2020-09-15 |
CN111666326B true CN111666326B (zh) | 2023-03-14 |
Family
ID=72385146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010475399.4A Active CN111666326B (zh) | 2020-05-29 | 2020-05-29 | Etl调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666326B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347122B (zh) * | 2020-11-10 | 2024-06-21 | 西安宇视信息科技有限公司 | Sql工作流处理方法、装置、电子设备和存储介质 |
CN112527816B (zh) * | 2020-12-03 | 2023-06-02 | 平安科技(深圳)有限公司 | 数据血缘关系解析方法、***、计算机设备及存储介质 |
CN112445600A (zh) * | 2020-12-15 | 2021-03-05 | 北京首汽智行科技有限公司 | 一种离线数据处理任务发布方法及*** |
CN112434046B (zh) * | 2020-12-16 | 2021-09-17 | 杭州天均科技有限公司 | 一种数据血缘分析方法、装置、设备及存储介质 |
CN112506957A (zh) * | 2020-12-18 | 2021-03-16 | 杭州数梦工场科技有限公司 | 工作流依赖关系的确定方法及装置 |
CN112948486A (zh) * | 2021-02-04 | 2021-06-11 | 北京淇瑀信息科技有限公司 | 批量数据同步方法、***及电子设备 |
CN113282599A (zh) * | 2021-05-31 | 2021-08-20 | 平安国际智慧城市科技股份有限公司 | 数据同步方法及*** |
CN113626285A (zh) * | 2021-07-30 | 2021-11-09 | 平安普惠企业管理有限公司 | 基于模型的作业监控方法、装置、计算机设备和存储介质 |
CN114168942A (zh) * | 2021-12-06 | 2022-03-11 | 北京天融信网络安全技术有限公司 | 语句提取方法、装置、电子设备和计算机可读存储介质 |
CN117472530B (zh) * | 2023-10-25 | 2024-04-05 | 上海宽睿信息科技有限责任公司 | 一种基于集中管理的数据智能调度方法及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2013CH06122A (zh) * | 2013-12-27 | 2015-07-03 | Capillary Technologies Internat Pte Ltd | |
CN109325078A (zh) * | 2018-09-18 | 2019-02-12 | 拉扎斯网络科技(上海)有限公司 | 基于结构数据的数据血缘确定方法及装置 |
CN109669983B (zh) * | 2018-12-27 | 2020-11-10 | 杭州火树科技有限公司 | 可视化多数据源etl工具 |
CN111125229B (zh) * | 2019-12-24 | 2024-06-28 | 杭州数梦工场科技有限公司 | 数据血缘生成方法、装置、电子设备 |
-
2020
- 2020-05-29 CN CN202010475399.4A patent/CN111666326B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111666326A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111666326B (zh) | Etl调度方法及装置 | |
CN110908997B (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
CN111339171B (zh) | 数据查询的方法、装置及设备 | |
CN111597257A (zh) | 数据库的同步方法、装置、存储介质及终端 | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
WO2012155643A1 (zh) | 基于数据库的配置台实现方法、配置台及*** | |
CN112765152B (zh) | 用于合并数据表的方法和装置 | |
CN110781183B (zh) | Hive数据库中增量数据的处理方法、装置以及计算机设备 | |
CN111858760A (zh) | 一种异构数据库的数据处理方法及装置 | |
CN110941629B (zh) | 元数据处理方法、装置、设备及计算机可读存储介质 | |
CN112084270A (zh) | 一种数据血缘处理方法、装置、存储介质及设备 | |
CN112015722A (zh) | 数据库管理方法、数据血缘分析方法以及相关装置 | |
CN110198327B (zh) | 一种数据传输方法及相关设备 | |
CN112416991A (zh) | 一种数据处理方法、装置以及存储介质 | |
CN110580293A (zh) | 实体关系的存储方法及装置 | |
CN110928681A (zh) | 数据的处理方法和装置、存储介质及电子装置 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
CN114185991A (zh) | 基于分布式数据库实现数据同步的方法及相关装置 | |
CN111752939A (zh) | 用于多个***的数据处理方法、装置、计算机***、介质 | |
CN116956381A (zh) | 一种bim项目数据定制化表单配置方法及装置 | |
CN113722337B (zh) | 业务数据确定方法、装置、设备及存储介质 | |
CN110737662A (zh) | 一种数据分析方法、装置、服务器及计算机存储介质 | |
CN112100168A (zh) | 一种确定数据关联关系的方法和装置 | |
CN115357606A (zh) | 数据源查询方法、***、计算机设备和存储介质 | |
CN114707953A (zh) | 一种主数据全生命周期管理方法、***、引擎及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |