CN111581207B - Azkaban项目的文件生成方法、装置及终端设备 - Google Patents

Azkaban项目的文件生成方法、装置及终端设备 Download PDF

Info

Publication number
CN111581207B
CN111581207B CN202010284390.5A CN202010284390A CN111581207B CN 111581207 B CN111581207 B CN 111581207B CN 202010284390 A CN202010284390 A CN 202010284390A CN 111581207 B CN111581207 B CN 111581207B
Authority
CN
China
Prior art keywords
file
database operation
data table
azkaban
operation file
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
Application number
CN202010284390.5A
Other languages
English (en)
Other versions
CN111581207A (zh
Inventor
陈杰华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yunzhirong Technology Co ltd
Original Assignee
Shenzhen Yunzhirong Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Yunzhirong Technology Co ltd filed Critical Shenzhen Yunzhirong Technology Co ltd
Priority to CN202010284390.5A priority Critical patent/CN111581207B/zh
Publication of CN111581207A publication Critical patent/CN111581207A/zh
Application granted granted Critical
Publication of CN111581207B publication Critical patent/CN111581207B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请适用于大数据技术领域,提供了Azkaban项目的文件生成方法、装置及终端设备,包括:获取目标项目的数据库操作文件;获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息;根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系;根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件。本申请实施例能够自动生成Azkaban项目的文件。

Description

Azkaban项目的文件生成方法、装置及终端设备
技术领域
本申请属于大数据技术领域,尤其涉及一种Azkaban项目的文件生成方法、装置及终端设备。
背景技术
Azkaban是Linkedln开源的一个非常受欢迎的任务调度系统,将一个项目对应的脚本文件上传至Azkaban平台运行,便可实现对该项目的任务调度。
在现有技术中,通常需要手工为项目中的每个操作文件写出对应的任务脚本文件,这种方式操作繁琐且花费时间长,而且极可能忽略掉了其中某个文件的依赖配置,导致最终项目运行错误。
发明内容
有鉴于此,本申请实施例提供了Azkaban项目的文件生成方法、装置及终端设备,以解决现有技术中如何自动生成Azkaban项目的文件的问题。
本申请实施例的第一方面提供了一种Azkaban项目的文件生成方法,包括:
获取目标项目的数据库操作文件;
获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息;
根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系;
根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件。
可选地,所述获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息,包括:
根据每个所述数据库操作文件中的查表操作关键字,获取对应的查询数据表信息;
根据每个所述数据库操作文件中的建表操作关键字和插入操作关键字,获取对应的存入数据表信息。
可选地,第一数据库操作文件和第二数据库操作文件分别为不同的数据库操作文件,对应地,所述根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系,包括:
若所述第一数据库操作文件对应的查询数据表信息与所述第二数据库操作文件对应的存入数据表信息中存在相同的数据表信息,则确定所述第一数据库操作文件依赖于所述第二数据库操作文件。
可选地,在所述根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系之后,还包括:
根据所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系。
可选地,第三数据库操作文件和第四数据库操作文件分别为不同的数据库操作文件所述根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件,包括:
根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件;其中,若第三数据库操作文件依赖于第四数据库操作文件,则所述第三数据库操作文件对应的Azkaban文件包括添加的依赖配置信息,所述依赖配置信息包含所述第四数据库操作文件对应的Azkaban文件的文件名信息。
可选地,第三数据库操作文件和第四数据库操作文件分别为不同的数据库操作文件所述根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件,包括:
根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件;其中,若第三数据库操作文件依赖于第四数据库操作文件,则所述第三数据库操作文件对应的Azkaban文件包括添加的依赖配置信息,所述依赖配置信息包含所述第四数据库操作文件对应的Azkaban文件的文件名信息。
可选地,在所述根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件之后,还包括:
将目标项目的数据库操作文件和对应的所述Azkaban文件进行打包压缩,生成目标项目对应的目标文件。
本申请实施例的第二方面提供了一种Azkaban项目的文件生成装置,包括:
第一获取单元,用于获取目标项目的数据库操作文件;
第二获取单元,用于获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息;
依赖关系确定单元,用于根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系;
Azkaban文件生成单元,用于根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件。
本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得终端设备实现如所述Azkaban项目的文件生成方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得终端设备实现如所述Azkaban项目的文件生成方法的步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的Azkaban项目的文件生成方法。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,由于能够自动获取目标项目中每个数据库操作文件中对应的查询数据表信息及存入数据表信息,并根据这两个信息自动确定数据库操作文件之间的依赖关系,最终生成每个数据库操作文件对应的Azkaban文件,因此能够准确地配置数据库操作文件之间的依赖关系,准确生成目标项目的Azkaban文件,实现Azkaban项目的文件的自动生成,节约人工成本及时间成本,提高Azkaban项目文件生成的效率及准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的第一种Azkaban项目的文件生成方法的实现流程示意图;
图2是本申请实施例提供的第二种Azkaban项目的文件生成方法的实现流程示意图;
图3是本申请实施例提供的Azkaban项目的文件生成装置的示意图;
图4是本申请实施例提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一:
图1示出了本申请实施例提供的第一种Azkaban项目的文件生成方法的流程示意图,本申请实施例中的Azkaban项目的文件生成方法的执行主体为终端设备,详述如下:
在S101中,获取目标项目的数据库操作文件。
本申请实施例中的目标项目为需要通过Azkaban平台进行任务调度的项目,该目标项目包含一个以上的数据库操作文件,每个数据库操作文件中包含至少一条数据库操作代码。一个目标项目的所有数据库操作文件存放于同一存储路径下,通过访问该存储路径,即可获取该目标项目的数据库操作文件。具体地,该存储路径信息可以预先写入参数脚本文件中,通过读取该脚本文件中的该存储路径信息执行访问操作指令,访问对应的存储路径。
在S102中,获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息。
本申请实施例中的查询数据表信息包含一个数据库操作文件中的所有查表操作的操作对象的数据表名称;存入数据表信息包含一个数据库操作文件中的所有存表操作的操作对象的数据表名称。其中,存表操作至少包括用于创建数据表的建表操作、用于往已有数据表插入数据的插入操作。
根据每个数据库操作文件中的数据库操作代码信息,确定每个数据库操作文件对应的查询数据表信息及存入数据表信息。
可选地,所述步骤S102包括:
根据每个所述数据库操作文件中的查表操作关键字,获取对应的查询数据表信息;
根据每个所述数据库操作文件中的建表操作关键字和插入操作关键字,获取对应的存入数据表信息。
在数据库操作文件中的数据库操作代码中,对于数据表的每种操作都有对应的操作关键字。根据数据库操作文件中的操作关键字,查询对应的查询数据表信息和存入数据表信息。具体地,根据每个数据库操作文件中的查表操作关键字“select from”定位“from”后的信息为查询数据表信息;根据每个数据库操作文件中的建表操作关键字“createtable”、插入操作关键字“insert into”“insert overwrite table”定位存入数据表信息。
例如,设数据库操作文件中包含以下数据库操作代码:
insert overwrite table contract
select contractNo from contract_a
union all
select contractNo from contract_b;
获取插入操作关键字“insert overwrite table”后的信息“contract”,确定存入数据表信息包括名称为“contract”的数据表;获取查表操作关键字“select from”后的信息“contract_a”和“contract_b”,确定查询数据表信息包括名称为“contract_a”的数据表和名称为“contract_b”的数据表。
可选地,可以将获取每个数据库操作文件对应的查询数据表信息和存入数据表信息存储至一个目标表格中。例如,设目标项目包括三个数据库操作文件A、B、C,其中数据库操作文件A的查询表信息包括数据表x,存入数据表信息包括数据表a;数据库操作文件B的查询表信息包括数据表a,存入数据表信息包括数据表b;数据库操作文件C的查询表信息包括数据表b,存入数据表信息包括数据表c,则目标表格的内容如下:
表1:
数据库操作文件 查询数据表信息 存入数据表信息
A x a
B a b
C b c
本申请实施例中,由于根据查表操作关键字能够准确获取查询数据表信息,根据建表操作关键字和插入操作关键字能够准确获取存入数据表信息,因此能够使得之后的依赖关系确定更加准确,提高生成的Azkaban文件的准确性。
在S103中,根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系。
在目标项目中,对于同一个数据表,如果既存在着对该数据表的存储操作,又存在着对该数据表的查表操作,则优先执行对该数据表的存储操作,再执行对该数据表的查表操作,从而使得查询得到的数据表的数据为最新、最准确的数据。即对于同一数据表,让其查表操作依赖于其存储操作的执行。通过获取到的查询数据表信息和存入数据表信息,可以获取每个数据库操作文件中的查表操作所对应的数据表、存入操作所对应的数据表,从而确定每个数据库操作文件之间的依赖关系。
具体地,所述步骤S103包括:
若第一数据库操作文件对应的查询数据表信息与第二数据库操作文件对应的存入数据表信息中存在相同的数据表信息,则确定所述第一数据库操作文件依赖于所述第二数据库操作文件。
本申请实施例中的第一数据库操作文件和第二数据库操作文件为目标项目中的任意两个数据库操作文件。若第一数据库操作文件对应的查询数据表信息和第二数据库操作文件对应的存入数据表信息中存在相同的数据表信息,则该相同的数据表既为第一数据库操作文件中查表操作的操作对象,又为第二数据库操作文件中存表操作的操作对象,而由于对于同一数据表的查表操作依赖于其存表操作的执行,因此可建立第一数据库操作文件和第二数据库操作文件的依赖关系,确定第一数据库操作文件依赖于第二数据库操作文件。示例性地,如表1所示,数据库操作文件B的查询数据表信息与数据库操作文件A的存入数据表信息都包含数据表a,则确定数据库操作文件B依赖于数据库操作文件A;数据库操作文件C的查询数据表信息与数据库操作文件B的存入数据表信息都包含数据表b,则确定数据库操作文件C依赖于数据库操作文件B。
本申请实施例中,通过查找不同数据库操作文件的查询数据表信息、存入数据表信息中存在的相同的数据表信息,能够准确地确定不同数据库操作文件的依赖关系。
可选地,在所述步骤S103之后,还包括:
根据所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系。
本申请实施例的存入数据表信息具体包括创建数据表信息及插入数据表信息,对应地,所述根据所述存入数据信息,确定每个所述数据库操作文件之间的依赖关系,包括:
若第五数据库操作文件对应的插入数据表信息与第六数据库操作文件对应的创建数据表信息中存在相同的数据表,则确定所述第五数据库操作文件依赖于所述第六数据库操作文件,其中第五数据库操作文件和第六数据库操作文件分别为不同的数据库操作文件。
本申请实施例中的第五数据库操作文件和第六数据库操作文件为目标项目中的任意两个数据库操作文件。本申请实施例中的存入数据表信息具体包括创建数据表信息和插入数据表信息,其中创建数据表信息包含一个数据库操作文件中的所有建表操作的操作对象的数据表名称;插入数据表信息包含一个数据库操作文件中的所有插入操作的操作对象的数据表名称。若第五数据库操作文件对应的插入数据表信息和第六数据库操作文件对应的创建数据表信息中存在相同的数据表信息,则该相同的数据表既为第五数据库操作文件中插入操作的操作对象,又为第六数据库操作文件中建表操作的操作对象,而由于对于同一数据表的插入操作依赖于其建表操作的执行,因此可建立第五数据库操作文件和第六数据库操作文件的依赖关系,确定第五数据库操作文件依赖于第六数据库操作文件。如以下的表2所示,数据库操作文件E的插入数据表信息与数据库操作文D的创建数据表信息都包含数据表m,则确定数据库操作文件E依赖于数据库操作文件D。
表2:
本申请实施例中,由于能够基于数据表的建表操作优先于数据表的数据插入操作的规律,通过查找不同数据库操作文件的创建数据表信息、插入数据表信息中存在的相同的数据表信息,进一步准确地确定数据库操作文件的依赖关系,因此能够使得之后生成的Azkaban文件中的依赖配置更加全面、准确。
在S104中,根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件。
为了使目标项目能够在Azkaban平台上进行多个数据库操作文件的任务调度运行,需要根据目标项目中的数据库操作文件生成对应的Azkaban文件,具体为生成对应的后缀名为.job的Azkaban脚本文件。本申请实施例中,在生成数据库操作文件对应的Azkaban文件时,依据步骤S103确定的依赖关系,为数据库操作文件对应的Azkaban文件进行依赖配置,以使数据库操作文件能够按照对应的Azkaban文件的依赖配置按照准确地顺序调度执行,使得目标项目的运行结果更加准确。
具体地,所述步骤S104包括:
根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件;其中,若第三数据库操作文件依赖于第四数据库操作文件,则所述第三数据库操作文件对应的Azkaban文件包括添加的依赖配置信息,所述依赖配置信息包含所述第四数据库操作文件对应的Azkaban文件的文件名信息。
本申请实施例中的第三数据库操作文件和第四数据库操作文件为目标项目中的任意两个数据库操作文件。若从步骤S103中确定第三数据库操作文件依赖于第四数据库操作文件,则为第三数据库操作文件对应的Azkaban文件添加依赖配置信息,该依赖配置信息指示第三数据库操作文件依赖于第四数据库操作文件的执行;具体地,该第三数据库操作文件中的依赖配置信息包括第四数据库操作文件对应的Azkaban文件的文件名信息。示例性地,如上述表1所示,若根据步骤S103确定数据库操作文件B依赖于数据库操作文件A,则在数据库操作文件B对应的Azkaban文件B.job中添加依赖配置信息“dependencies=A”,其中数据库操作文件A对应的Azkaban文件为A.job,即依赖配置信息中的“A”为数据库操作文件A对应的Azkaban文件的文件名。
可选地,在所述步骤S104之前,还包括:
获取每个所述数据库操作文件对应的数据库引擎类型和/或传入参数信息;
对应地,所述步骤S104包括:
根据所述依赖关系,以及所述数据库引擎类型和/或传入参数信息,生成每个所述数据库操作文件对应的Azkaban文件。
本申请实施例中的数据库引擎类型至少包括hive类型和spark类型,不同的数据库操作文件所用的数据库操作引擎类型不同,每个数据库操作文件对应的数据库操作引擎类型可以预先存储在参数脚本文件中,通过该参数脚本文件获取每个数据库操作文件对应的数据库引擎类型。之后,在步骤S104中根据依赖关系和数据库操作文件对应的数据库操作引擎类型,确定每个数据库操作文件对应的Azkaban文件中的数据库操作文件调用指令代码,生成对应的Azkaban文件。具体地,若数据库操作文件对应的数据库操作引擎类型为hive类型,则对应的数据库操作文件调用指令代码包括指令关键字“hive-f”;若数据库操作文件对应的数据库操作引擎类型为spark类型,则对应的数据库操作文件调用指令代码包括指令关键字“spark-f”。例如,设依赖于数据库操作文件A的数据库操作文件B(即“B.sql”)的数据库引擎类型为hive,则其对应的Azkaban文件B.job中的代码如下:
type=command
command=hive-f'B.sql'
dependencies=A
本申请实施例中的传入参数信息为Azkaban调度执行数据库操作文件时可以传入数据库操作文件中的参数,例如该传入参数信息可以为时间参数,用于指示查询或者存入指定时间点的数据。具体地,每个数据库操作文件对应的传入参数的参数名可以预先存储在参数脚本文件中,传入参数的参数值可以存储在该参数脚本文件中,也可以在Azkaban平台中执行目标项目时再在Azkaban平台上设定传入参数的参数值。之后,在步骤S104中根据该传入参数信息(具体为传入参数的参数名),生成对应的Azkaban文件。例如,设依赖于数据库操作文件A的数据库操作文件B(即“B.sql”)的数据库引擎类型为hive,传入参数的参数名为p,则其对应的Azkaban文件B.job中的代码如下:
type=command
command=hive-f'B.sql'${p}
dependencies=A
本申请实施例中,由于除了根据依赖关系,还能够根据每个数据库操作文件对应的数据库引擎类型和传入参数信息来灵活配置Azkaban文件中的信息,从而能够支持多种数据库操作文件的Azkaban文件自动生成,提高Azkaban项目的文件生成的灵活性和扩展性。
本申请实施例中,由于能够自动获取目标项目中每个数据库操作文件中对应的查询数据表信息及存入数据表信息,并根据这两个信息自动确定数据库操作文件之间的依赖关系,最终生成每个数据库操作文件对应的Azkaban文件,因此能够准确地配置数据库操作文件之间的依赖关系,准确生成目标项目的Azkaban文件,实现Azkaban项目的文件的自动生成,节约人工成本及时间成本,提高Azkaban项目文件生成的效率及准确性。
可选地,如图2所示,在所述步骤S104之后,还包括:
S105:将目标项目的数据库操作文件和对应的所述Azkaban文件进行打包压缩,生成目标项目对应的目标文件。
本申请实施例中,在步骤S104之后,还将目标项目的所有数据库操作文件(后缀名为.sql的文件)和对应的Azkaban文件(具体为后缀名为.job的Azkaban脚本文件)进行打包压缩,生成目标项目对应的目标文件(具体为后缀名为.zip)的文件,该生成的目标文件为可以直接上传至Azkaban平台使得目标项目得以调度运行的文件。例如,设目标项目Project1下的所有数据库操作文件包括:A.sql、B.sql、C.sql,对应的Azkaban文件为:A.job、B.job、C.job,将这6个文件进行打包压缩,生成目标项目对应的目标文件Project1.zip。可选地,在所述将目标项目的数据库操作文件和对应的所述Azkaban文件进行打包压缩,生成目标项目对应的目标文件之后,还包括:将所述目标文件上传至Azkaban平台。
本申请实施例中,由于在生成每个所述数据库操作文件对应的Azkaban文件之后,还能够将所有数据库操作文件及对应的Azkaban文件自动压缩打包,生成能够直接上传至Azkaban平台的目标文件,因此能够完全实现Azkaban项目的文件生成的自动化,进一步节约人工成本及时间成本。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例二:
图3示出了本申请实施例提供的一种Azkaban项目的文件生成装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:
该Azkaban项目的文件生成装置包括:第一获取单元31、第二获取单元32、依赖关系确定单元33、Azkaban文件生成单元34。其中:
第一获取单元,用于获取目标项目的数据库操作文件。
第二获取单元,用于获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息。
可选地,所述第二获取单元包括查询数据表信息获取模块及存入数据表信息获取模块:
查询数据表信息获取模块,用于根据每个所述数据库操作文件中的查表操作关键字,获取对应的查询数据表信息;
存入数据表信息获取模块,用于根据每个所述数据库操作文件中的建表操作关键字和插入操作关键字,获取对应的存入数据表信息。
依赖关系确定单元,用于根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系。
可选地,所述依赖关系确定单元,具体用于若所述第一数据库操作文件对应的查询数据表信息与所述第二数据库操作文件对应的存入数据表信息中存在相同的数据表信息,则确定所述第一数据库操作文件依赖于所述第二数据库操作文件。
可选地,所述依赖关系确定单元,还用于根据所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系。
Azkaban文件生成单元,用于根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件。
可选地,所述Azkaban文件生成单元,具体用于根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件;其中,若第三数据库操作文件依赖于第四数据库操作文件,则所述第三数据库操作文件对应的Azkaban文件包括添加的依赖配置信息,所述依赖配置信息包含所述第四数据库操作文件对应的Azkaban文件的文件名信息。
可选地,所述Azkaban项目的文件生成装置还包括:
第三获取单元,用于获取每个所述数据库操作文件对应的数据库引擎类型和/或传入参数信息;
对应地,所述Azkaban文件生成单元,具体用于根据所述依赖关系,以及所述数据库引擎类型和/或传入参数信息,生成每个所述数据库操作文件对应的Azkaban文件。
可选地,所述Azkaban项目的文件生成装置还包括:
打包单元,用于将目标项目的数据库操作文件和对应的所述Azkaban文件进行打包压缩,生成目标项目对应的目标文件。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例三:
图4是本申请一实施例提供的终端设备的示意图。如图4所示,该实施例的终端设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42,例如Azkaban项目的文件生成程序。所述处理器40执行所述计算机程序42时实现上述各个Azkaban项目的文件生成方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图3所示单元31至34的功能。
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述终端设备4中的执行过程。例如,所述计算机程序42可以被分割成第一获取单元、第二获取单元、依赖关系确定单元和Azkaban文件生成单元,各单元具体功能如下:
第一获取单元,用于获取目标项目的数据库操作文件。
第二获取单元,用于获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息。
依赖关系确定单元,用于根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系。
Azkaban文件生成单元,用于根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件。
所述终端设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的示例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。所述存储器41也可以是所述终端设备4的外部存储设备,例如所述终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (6)

1.一种Azkaban项目的文件生成方法,其特征在于,包括:
获取目标项目的数据库操作文件;
获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息;
根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系;
根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件;
其中,所述获取每个所述数据库操作文件对应的查询数据表信息及存入数据表信息,包括:
根据每个所述数据库操作文件中的查表操作关键字,获取对应的查询数据表信息;
根据每个所述数据库操作文件中的建表操作关键字和插入操作关键字,获取对应的存入数据表信息;
所述查询数据表信息包含一个数据库操作文件中的所有查表操作的操作对象的数据表名称;所述存入数据表信息包含一个数据库操作文件中的所有存表操作的操作对象的数据表名称,所述存表操作至少包括用于创建数据表的建表操作、用于往已有数据表插入数据的插入操作;
第一数据库操作文件和第二数据库操作文件分别为不同的数据库操作文件,对应地,所述根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系,包括:
若所述第一数据库操作文件对应的查询数据表信息与所述第二数据库操作文件对应的存入数据表信息中存在相同的数据表信息,则确定所述第一数据库操作文件依赖于所述第二数据库操作文件;
在所述根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件之前,还包括:
获取每个所述数据库操作文件对应的数据库引擎类型和/或传入参数信息;
对应地,所述根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件,包括:
根据所述依赖关系,以及所述数据库引擎类型和/或传入参数信息,生成每个所述数据库操作文件对应的Azkaban文件。
2.如权利要求1所述的Azkaban项目的文件生成方法,其特征在于,在所述根据所述查询数据表信息及所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系之后,还包括:
根据所述存入数据表信息,确定每个所述数据库操作文件之间的依赖关系。
3.如权利要求1所述的Azkaban项目的文件生成方法,其特征在于,第三数据库操作文件和第四数据库操作文件分别为不同的数据库操作文件所述根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件,包括:
根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件;其中,若第三数据库操作文件依赖于第四数据库操作文件,则所述第三数据库操作文件对应的Azkaban文件包括添加的依赖配置信息,所述依赖配置信息包含所述第四数据库操作文件对应的Azkaban文件的文件名信息。
4.如权利要求1至3任意一项所述的Azkaban项目的文件生成方法,其特征在于,在所述根据所述依赖关系,生成每个所述数据库操作文件对应的Azkaban文件之后,还包括:
将目标项目的数据库操作文件和对应的所述Azkaban文件进行打包压缩,生成目标项目对应的目标文件。
5.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,当所述处理器执行所述计算机程序时,使得终端设备实现如权利要求1至4任一项所述方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,使得所述计算机可读存储介质实现如权利要求1至4任一项所述方法的步骤。
CN202010284390.5A 2020-04-13 2020-04-13 Azkaban项目的文件生成方法、装置及终端设备 Active CN111581207B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010284390.5A CN111581207B (zh) 2020-04-13 2020-04-13 Azkaban项目的文件生成方法、装置及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010284390.5A CN111581207B (zh) 2020-04-13 2020-04-13 Azkaban项目的文件生成方法、装置及终端设备

Publications (2)

Publication Number Publication Date
CN111581207A CN111581207A (zh) 2020-08-25
CN111581207B true CN111581207B (zh) 2023-12-29

Family

ID=72126334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010284390.5A Active CN111581207B (zh) 2020-04-13 2020-04-13 Azkaban项目的文件生成方法、装置及终端设备

Country Status (1)

Country Link
CN (1) CN111581207B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484520A (zh) * 2016-10-17 2017-03-08 北京集奥聚合科技有限公司 一种基于数据血缘关系的智能调度方法及系统
CN107885587A (zh) * 2017-11-17 2018-04-06 清华大学 一种大数据分析流程的执行计划生成方法
CN109388403A (zh) * 2018-09-26 2019-02-26 广州视源电子科技股份有限公司 依赖注入方法、装置、设备和存储介质
CN110609740A (zh) * 2019-09-19 2019-12-24 深圳前海微众银行股份有限公司 一种确定任务间依赖关系的方法及装置
CN110647387A (zh) * 2019-08-29 2020-01-03 武汉天喻教育科技有限公司 一种教育云大数据任务调度方法与系统
CN110766341A (zh) * 2019-10-31 2020-02-07 北京东软望海科技有限公司 优化作业调度的控制方法、装置、计算机设备及存储介质
CN110795455A (zh) * 2019-09-06 2020-02-14 中国平安财产保险股份有限公司 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN110795479A (zh) * 2019-10-08 2020-02-14 中国建设银行股份有限公司 基于数据的分布式etl调度的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5178852B2 (ja) * 2011-01-12 2013-04-10 株式会社東芝 情報処理装置およびプログラム
US20150332195A1 (en) * 2014-05-13 2015-11-19 Linkedln Corporation Facilitating performance monitoring for periodically scheduled workflows

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484520A (zh) * 2016-10-17 2017-03-08 北京集奥聚合科技有限公司 一种基于数据血缘关系的智能调度方法及系统
CN107885587A (zh) * 2017-11-17 2018-04-06 清华大学 一种大数据分析流程的执行计划生成方法
CN109388403A (zh) * 2018-09-26 2019-02-26 广州视源电子科技股份有限公司 依赖注入方法、装置、设备和存储介质
CN110647387A (zh) * 2019-08-29 2020-01-03 武汉天喻教育科技有限公司 一种教育云大数据任务调度方法与系统
CN110795455A (zh) * 2019-09-06 2020-02-14 中国平安财产保险股份有限公司 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN110609740A (zh) * 2019-09-19 2019-12-24 深圳前海微众银行股份有限公司 一种确定任务间依赖关系的方法及装置
CN110795479A (zh) * 2019-10-08 2020-02-14 中国建设银行股份有限公司 基于数据的分布式etl调度的方法和装置
CN110766341A (zh) * 2019-10-31 2020-02-07 北京东软望海科技有限公司 优化作业调度的控制方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111581207A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN108427705B (zh) 电子装置、分布式系统日志查询方法及存储介质
CN110309125B (zh) 数据校验方法、电子装置及存储介质
CN111352902A (zh) 日志处理方法、装置、终端设备及存储介质
CN110795455A (zh) 依赖关系解析方法、电子装置、计算机设备及可读存储介质
CN113220657B (zh) 数据处理方法、装置及计算机设备
CN113010116A (zh) 一种数据处理方法、装置、终端设备及可读存储介质
CN110598993B (zh) 数据加工方法及装置
CN110865828A (zh) 数据升级方法、装置、设备及计算机可读存储介质
CN110765750A (zh) 报表数据录入方法及终端设备
CN108920601B (zh) 一种数据匹配方法及装置
CN114139161A (zh) 一种批量检测漏洞的方法、装置、电子设备及介质
CN112597192A (zh) 数据查询方法、装置、服务器及介质
CN111581207B (zh) Azkaban项目的文件生成方法、装置及终端设备
CN113434582B (zh) 业务数据处理方法、装置、计算机设备和存储介质
CN115757174A (zh) 一种数据库的差异检测方法及装置
CN114896161A (zh) 基于人工智能的文件构造方法、装置、计算机设备及介质
CN115643172A (zh) 一种异常检测方法、装置、终端设备及存储介质
CN111045983B (zh) 核电站电子文件管理方法、装置、终端设备及介质
CN113760237A (zh) 编译地址的更新方法、装置、终端设备及可读存储介质
CN113868138A (zh) 测试数据的获取方法、系统、设备及存储介质
CN112711584A (zh) 一种数据检查方法、检查装置、终端设备及可读存储介质
CN112597162A (zh) 数据集采集方法、系统、设备及存储介质
CN112612773A (zh) 数据库同步测试方法、装置、计算机设备及存储介质
CN103761247A (zh) 一种出错文件的处理方法及装置
CN111475505A (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